dc 모토에 연결된 프로펠러를 회전시켜 생산되는 전류를 측정하고 싶은데요 아두이노로 측정할 수 있다면 코드를 어떻게 짜야 할까요?
안녕하세요
dc 모토에 연결된 프로펠러를 회전시켜 생산되는 전류를 측정하고 싶은데요
아두이노로 측정할 수 있다면 코드를 어떻게 짜야 할까요?
안녕하세요. 서종현 전문가입니다.
DC 모터에 연결된 프로펠러가 회전할대 발생하는 전류를 아두이노로 측정하려면 전류센서(예:ACS712)를 사용하시는것이 가장 일반적입니다.
기본 원리는 모터에 흐르는 전류를 센서가 감지해 아날로그 신호로 변환하면, 아두이노가 이 값을 읽어 실제 전류값으로 계산하는 방식입니다.
아래는 ACS712전류 센서를 사용한 간단한 아두이노 코드 예시입니다.
const int sensorPin = A0 ; // ACS712 출력 연결 핀
const float sensitivity = 0.066 ; //ACS712 30A 모델의 감도V/A)
const float Vcc = 5.0; // 아두이노 전압
const int zeroCurrentVoltage = 2500; // 2.5V (ADC 512) 기준 전압
void setup() { Serial.begin(9600); } void loop()
{ int sensorValue = analogRead(sensorPin);
float voltage = (sensorValue / 1023.0) * Vcc; // 센서 출력 전압 계산
float current = (voltage - (Vcc / 2)) / sensitivity; // 전류 계산 (A 단위)
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
delay(500);
센서 출력 전압은 2.5V(무부하 시 )기준으로, 이보다 높으면 양(+)전류, 낮으면 음(-)전류입니다.
sensitivity 값은 사용하는 ACS712모델에 따라 다르니 데이터시트를 참고하세요
전류 측정시 모터 전원과 센서 연결을 정확히 해야 하며 센서 출력은 아두이노 아날로그 입력에 연결합니다.
이방법으로 프로펠러 회전에 따른 모터 전류 변화를 실시간으로 모니터링 할수있습니다.
안녕하세요. 김상규 전문가입니다.
아두이노 측정 시
일반적인
전류측정 소스코드는
#define CURRENT 20
void setup() {
Serial.begin(9600);
}
void loop() {
float volt = analogRead(A0) * (5.0 / 1024);
float current = (volt - 2.5) * (CURRENT / 2);
Serial.print("volt: \t");
Serial.print(volt);
Serial.print(" current: \t");
Serial.print(current);
Serial.println();
delay(100);
}
로 알고있습니다
// CURRENT 의 20 대신 30A 나 5A제품의 경우, 30 또는 5를 적어 주시면 됩니다.