아두이노 기본예제인 ReadAnalogVoltage를 활용하여 정확한 전압을 읽는 예제입니다.

/*
  ReadAnalogVoltage

  Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
*/

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(115200);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.print(sensorValue);
  Serial.print("\t");
  Serial.println(voltage);
  delay(100);
}

변경내용은 sensorValue값을 출력하고, delay(100)을 주었습니다.

5V핀을 A0핀에 직접 연결한 후의 시리얼모니터 출력결과는

float voltage = sensorValue * (5.0 / 1023.0) = 1023 * (5.0 / 1023.0) = 5.0

5V 핀의 실제 전압을 멀티테스터로 확인결과 4.86V로 확인되었습니다.

소스코드중 float voltage = sensorValue * (5.0 / 1023.0); 을

float voltage = sensorValue * (4.86 / 1023.0); 으로 바꾸면

아날로그 입력핀 A0에서 읽은 값은 1023으로 동일하지만 5.0에서 4.86으로 실제 전압을 적용하면

voltage값도 그에 맞추어 변경됩니다.

아두이노 기본예제인 ReadAnalogVoltage를 이용하여 아날로그 입력핀으로 정확한 전압값을 읽기위해서는

float voltage = sensorValue * (4.86 / 1023.0); 부분에서 4.86값을 아두이노 보드의 5V핀의 실제전압을

적용해주어야 합니다.

+ Recent posts