아두이노 전압 측정

이 튜토리얼에서는 전압 센서를 사용하여 0V부터 25V까까지 전압을 측정하는 방법을 탐구할 것입니다. 자세히 살펴볼 내용은 다음과 같습니다:

아두이노 전압 센서

준비물

1×아두이노 우노 R3 쿠팡 | 아마존
1×USB 2.0 타입 A-to-B 케이블 (USB-A PC용) 쿠팡 | 아마존
1×USB 2.0 타입 C-to-B 케이블 (USB-C PC용) 아마존
1×Voltage Sensor 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

전압 센서 소개

전압 센서는 간소화된 전압 측정을 위해 정밀 저항기를 사용하는 사전 조립된 전압 분배 회로입니다. 이는 30 KΩ와 7.5 KΩ의 두 저항기로 구성되어 있습니다. ADC의 기준 전압이 5V인 경우, 센서는 0에서 25V DC까지의 전압을 측정할 수 있습니다. ADC의 기준 전압이 3.3V인 경우, 센서는 0에서 16.5V DC까지의 전압을 측정할 수 있습니다.

핀배열

전압 센서는 두 세트의 핀을 가지고 있습니다:

  • 입력 인터페이스(전압을 측정하고자 하는 지점에 연결):
    • VCC 핀: 이것은 양극입니다. 더 높은 전압이 있는 지점에 연결하세요.
    • GND 핀: 이것은 음극입니다. 더 낮은 전압이 있는 지점에 연결하세요.
  • 출력 인터페이스(Arduino에 연결):
    • Vout 핀(S): 이것은 신호 핀입니다. Arduino의 아날로그 핀에 연결하세요.
    • NC 핀(+): 이것은 사용되지 않습니다. 연결하지 마세요.
    • GNC 핀(-): 이것은 접지 핀입니다. Arduino의 GND(0V)에 연결하세요.
    전압 핀배열
    image source: diyables.io

선연결

아두이노 전압 센서 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 코드

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-measure-voltage */ // define analog input #define ANALOG_IN_PIN A0 #define REF_VOLTAGE 5.0 #define ADC_RESOLUTION 1024.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

자세한 사용 방법

  • 아두이노를 전압 센서에 연결하세요
  • 아두이노를 USB 케이블로 PC에 연결하세요
  • 아두이노 IDE를 열고, 올바른 보드와 포트를 선택하세요
  • 위의 코드를 복사하고 아두이노 IDE로 열세요
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 아두이노에 업로드하세요
  • 아두이노에서 5V와 3.3V를 측정하여 테스팅하세요
  • 시리얼 모니터에서 결과를 확인하세요.
COM6
Send
Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

측정 결과가 잘몬되었거나 실제 값과 크게 다를 수 있음을 알 수 있습니다. 이에 대해 전압 센서 모듈을 탓하지 마십시오. 기본 전압 참조가 5V이므로, 이는 불안정하고 전원 공급에 따라 달라질 수 있어 측정값에 편차가 발생할 수 있습니다. 이 문제에 대한 몇 가지 해결책은 다음과 같습니다:

  • 아두이노에 충분한 전압을 제공하는 전원 공급 장치를 사용하십시오. 전압계를 사용하여 아두이노의 5V 핀이 5V를 출력하는지 확인할 수 있습니다.
  • 외부 전압 참조로 3.3V를 사용하십시오. 그러나 이 방법을 사용하면 0에서 16.5V DC까지의 전압만 측정할 수 있습니다.

3.3V 기준 전압 측정

이 방법을 사용하려면 하드웨어와 코드를 설정해야 합니다. 하드웨어의 경우, 아래 다이어그램에 표시된 대로 아두이노의 AREF 핀을 3.3V에 연결하세요.

아두이노 전압 측정 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

다음 코드를 사용하세요:

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-measure-voltage */ #define ANALOG_IN_PIN A0 #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 1024.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); analogReference(EXTERNAL); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

관련 튜토리얼