본문 바로가기
코딩/아두이노

아두이노로 AC 전류를 측정해보자 (AC 전류센서 [SEN0211] 사용예제)

by DIYver 2021. 3. 22.

 

 

 

<목표>

 

 

- 우리가 흔히 사용하는 220V AC 전원의 전류를 측정하여 전자기기의 사용 전력을 측정해보자


<준비물>

 

 

- 아두이노(나노, 우노, 메가), AC전류센서 SEN0211

 

 

 


<회로도>

 

 

모듈에서 빨간색 친 부분을 아두이노에 연결해주어야 한다.

 

A는 아날로그 A0에 연결

+는 3.3V 또는 5V 에 연결

- 는 GND 에 연결

 

 

<DFROBOT 에서 제시하는 사용방법>

 

 


<코드>

 

 

 

int sensorPin = A0;    
int sensorValue = 0;  

void setup() {
  // declare the ledPin as an OUTPUT:
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);
  Serial.print(" D : ");
  Serial.println(sensorValue);

  float A = map(sensorValue,0,573,0,20000);
  Serial.print(" A : ");
  Serial.println(A*0.001);
 
  Serial.print(" W : ");
  Serial.println(220*A*0.001);

}

<실행 결과>

 

AC전선에서 접지선을 제외한 선 하나를 물려야 한다.

AC는 극성이 없이 때문에 두가닥 중 아무거나 물려도 된다.

보통 접지선은 노랑,초록색 피복으로 씌여져 있다.

 

테스트해보고 안 된다면 선을 바꿔서 껴보면 된다.

제일 겉 피복을 벗길때 멀티탭에 전원을 분리하고 작업을 하도록 하고

혹시라도 겉 피복을 벗기다가  속 피복에 흠을 낸 경우 절연테이프로 감아서 사용하거나

장갑을 끼고 사용해야 한다.

 

안전이 먼저다.

 

D : 아두이노에서 아날로그 인풋값으로 읽은 모듈의 DC전압 아웃풋(output)

A : 아날로그 신호로 읽은 직류 전압의 값을 교류 전원의 전류로 변환

W : 실사용 전압 220V 에 전류값을 곱한 전력값

 

테스트한 헤어드라이어의 경우 약 1360W 의 사용전력을 보여주고 있음을 확인할 수 있었다.

 

 

드라이기에 표시된 사용전력은 1500W 이지만 측정된 전력은 그에 살짝 못미치는 전력이다.

뭐가 맞는지는 정확한 멀티미터기로 측정을 해봐야 알 수 있겠지만 

이번에는 사용법만 다뤄보기로 하고,

다음에 더 자세하게 사용해보도록 하자.

 

 

 

 

막간을 이용해서 센서의 원리에 대해서 알아보자.

센서 내부를 뜯어보면 아래와 같이 생겼다.

진짜 별거 없는데 드럽게 비싸다.

 

 

프로브를 해부해보면 내부에 코일이 있고

그 코일이 회색갈의 금속체를 감싸고 있다.

 

 

센서에서는 분리되어 있는데, 실제로 전선에 물려서 사용하게 되면 위의 그림과 같은 회로가 완성된다.

자기코어를 관통하는 AC 교류 전선으로인해 주변에 전자기장이 생기게 된다.

그림에서는 측정 전류에 의한 자속으로 방향이 표시되어 있다.

 

자기코어에는 그 전자기장을 상쇄시키는 방향으로 자속이 생기게 된다.

그림에서보면 빨간색 화살표가 그 방향이다.

2차 전류에 의한 자속이 그 표시다.

반대 자속이 생기면서 동시에 권선에 유도전류가 흐르게 된다.

이 때에는 교류 전류가 흐르게 되는데

권선을 얼마만큼 감았냐에 따라서 그 비율이 달라진다.

흔히 권선비라고 말하는 부분이 이 부분이다.

 

 

 

요약을 하자면

AC 전선에 교류가 흐를때, 그 교류의 전류의 세기에 비례해서 센서의 자기코어에 많은 자속이 발생하게 된다.

자기코어 내부에서 전선의 전류에 의한 자속을 상쇄하기 위해 내부적으로 반대되는 자속이 발생하게 되며,

그 자속으로 인해서 권선내부에 유도전류가 발생한다.

 

션트 저항이 있어야지만 전압이 걸리게 되므로 꼭 필요하다.

 

 

 

출력은 교류전류가 발생하므로 교류 전압으로 출력된다.

아두이노에서 교류신호를 사용하기에는 까다로우므로 우리는 AC to DC 모듈을 사용해야 한다.

이 모듈이 그 역할을 해주는데,

사양을 보면 아래와 같다.

 

모듈은 3.3V ~ 5.5V 로 전원을 공급해주어야 하고,

AC 전압의 입력 범위는 0~1 V 이다.

입력받은 AC 전압을 내부 회로를 거쳐서 DC전압으로 출력해주는데 그 범위는 0.2~2.8V 이다.

 

 

 

위의 센서가 AC 전류 측정 센서이고

프로브라고 부른다. 

 

상세 스펙은 위의 내용대로인데,

AC 신호 출력 범위가 0~1V AC 라고 되어있다.

전류를 0~20A 까지 측정 가능한데 권선비를 통해서 0~1V (AC) 로 출력해준다는 것이다.

 

 

 

 

이것도 요약해보자면

프로브에서 전선에 흐르는 전류의 세기에 따라서 0~1V (AC) 전압으로 신호를 출력한다.

그 교류 신호를 모듈이 수신해서 DC전압으로 바꿔주는데, 그 값은 0.2~2.8V (DC)이다.

아두이노에서는 최종 출력값인 0.2~2.8V (DC)전압을 통해 현재 전기제품이 얼마의 전류를 사용하고 있는지 측정할 수 있다.

 

아두이노 아날로그 포트에서 최대로 감지할 수 있는 전압은 5V이므로

2.8V는 아두이노 상에서 573 으로 신호를 읽게 된다.

(5V를 감지했을 경우 센서값은 1023으로 읽기 때문에, 2.8/5*1023 = 572.88)

 

즉, 최종적으로 아두이노에서 전압값을 읽어왔을 때, 그 값이 573 이면 20A의 전류가 흐르고 있는 것이다.

 

 

 

 

 

 


※ 궁금하시거나 질문사항이 있으시면 댓글로 작성해주시면 답변해 드릴 수 있는 부분에서 친절히 답변드리겠습니다!

 

 

 

 

댓글