코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-10-24 11:48:24
혹시 휴대용 전압 측정기를 가지고 계신가요?
가끔 작동이 되지 않을 때 각 부분별로 전류가 잘 흘러가는 지를 측정할 때 유용하게 쓰입니다.
위 사진은 INA219 DC 전류 센서 입니다. 전압과, 전류를 1%의 오차범위내로 정확하게 측정한다고 합니다.
본문에서는 INA219 DC 전류 센서를 사용해
여러 LED와 연결된 회로의 전압과 전류를 측정해 보겠습니다.
NO | 부품명 | 수량 | 상세설명 |
1 | 오렌지 보드 | 1 | |
2 | 브레드 보드 | 1 | |
3 | 여러 LED | 1 | 측정하고 싶은 LED를 선택하세요. 본문에서는 DFRobot의 seven cycles를 사용했습니다. |
4 | 전류 측정 센서 | 1 | INA219 High Side DC Current Sensor 를 사용하였습니다. |
5 | 점퍼 케이블 | 10 | |
7 | 9V 배터리 | 1 | 3.3V 이상이면 됩니다. |
부품명 | 오렌지 보드 | 브레드 보드 | LED | 전류 측정 센서 | 점퍼 케이블 |
사진 | x1 | x1 | x1 | x1 | X10 |
부품명 | 한글 LCD | 9V 배터리 |
사진 | X1 | X1 |
1. 센서와 측정 센서 연결방법
INA219 센서에는 V- 와 V+라는 부분이 있습니다.
V+에는 공급되는 전원의 +와 연결합니다.
V-에는 측정할 센서의 +부분과 연결합니다.
측정할 센서의 -부분과 전원의 -를 연결한 후 GND와 연결합니다.
* INA219 센서에는 다른 센서를 연결하는 곳이 2군데 있습니다.
브레드 보드에 연결하기 용이 하지 않다면 센서의 윗부분을 이용하세요.
보드 번호 | 주소 | 주소 바꾸는 방법 |
0 | 0x40 | 아무런 납땜을 하지 않는다. |
1 | 0x41 | A0부분 납땜 |
2 | 0x42 | A1 부분 납땜 |
3 | 0x43 | A0과 A1 부분 둘 다 납땜 |
아래의 스케치를 아두이노에 업로드 하세요.
/* 이 스케치는 ardafruit 및 여러 커뮤니티를 참고하여 작성되였습니다. ardafruit : https://learn.adafruit.com/adafruit-ina219-current-sensor-breakout?view=all#overview */ #include <Wire.h> #include <Adafruit_INA219.h> Adafruit_INA219 ina219; void setup(void) { uint32_t currentFrequency; Serial.begin(115200); Serial.println("Hello!"); Serial.println("Measuring voltage and current with INA219 ..."); ina219.begin(); //초기화 } void loop(void) { float shuntvoltage = 0; float busvoltage = 0; float current_mA = 0; float loadvoltage = 0; shuntvoltage = ina219.getShuntVoltage_mV(); //Shunt 전압측정 busvoltage = ina219.getBusVoltage_V(); //Bus 전압측정 current_mA = ina219.getCurrent_mA(); //전류 측정 loadvoltage = busvoltage + (shuntvoltage / 1000); //Load 전압계산 Serial.print("Bus Voltage: "); Serial.print(busvoltage); Serial.println(" V"); //Bus 전압 출력 Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV"); //Shunt 전압 출력 Serial.print("Load Voltage: "); Serial.print(loadvoltage); Serial.println(" V"); //Load 전압 출력 Serial.print("Current: "); Serial.print(current_mA); Serial.println(" mA"); //전류 출력 Serial.println(""); delay(2000); }
INA219 DC current sensor는 3V/5V의 전압이 공급되어도 + 26VDC까지, 하이 사이드 전류 측정을 처리 할 수 있습니다.
또한 배터리에 대해 하이 사이드 전압도 측정할 수 있습니다.
#include <Adafruit_INA219.h>
본 스케치를 사용하기 위해서는 다음의 라이브러리가 필요합니다.
다음 링크를 통해 다운로드 받으세요.
ina219.begin(); //초기화
초기화 하는 함수입니다.
#include <Wire.h> #include <Adafruit_INA219.h> Adafruit_INA219 ina219_A; Adafruit_INA219 ina219_B(0x41); void setup(void) { ina219_A.begin(); // Initialize first board (default address 0x40) ina219_B.begin(); // Initialize second board with the address 0x41 }
만약 여러개를 사용할 경우 위와 같이 보드와 주소를 지정하고 사용하시면 됩니다.
shuntvoltage = ina219.getShuntVoltage_mV(); //shunt 전압측정 busvoltage = ina219.getBusVoltage_V(); //bus 전압측정 current_mA = ina219.getCurrent_mA(); //전류 측정 loadvoltage = busvoltage + (shuntvoltage / 1000);
위 라이브러리의 함수를 통해 쉽게 측정된 전압, 전류 값을 가져올 수 있습니다.
BusVoltage는 GND와 V- 사이의 전압입니다.
ina219.getBusVoltage_V()으로 값을 측정하고 가져올 수 있습니다.
ShuntVoltage는 INA219 DC current sensor에 V- 부터 V+ 사이의 전압입니다.
getCurrent()는 위의 shuntVoltage를 옴에 법칙에 대입하여 구해진 전류입니다.
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!