아두이노 - 전압 측정 | Arduino - Measure Voltage

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

아두이노 전압 센서

Hardware Preparation

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | Amazon
1×Voltage Sensor Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

전압 센서 소개

전압 센서는 간소화된 전압 측정을 위해 정밀 저항기를 사용하는 사전 조립된 전압 분배 회로입니다. 이는 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

Wiring Diagram

아두이노 전압 센서 배선도

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

아두이노 코드

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * 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); }

Detailed Instructions

  • 아두이노를 전압 센서에 연결하세요
  • 아두이노를 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을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

다음 코드를 사용하세요:

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * 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); }

Video Tutorial

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

관련 튜토리얼

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!