[아두이노] 아날로그 입력으로 전압값 읽기
analogRead() 입력을 전압값으로 변환하기
아두이노의 아날로그 A0 핀에 입력으로 들어오는 전압값을 아두이노 IDE 시리얼 모니터로 출력해 보겠습니다. 필요한 항목은 아두이노 우노 보드와 10KΩ 가변저항입니다.
사용하는 가변저항에 맞게 배선을 합니다. 가변저항에 인가된 아두이노의 5V전압은 가변저항의 출력핀을 통해 0~5V의 전압이 출력됩니다. 가변저항을 거쳐 A0핀을 통해 인가된 5V전압은 아두이노 내부 ADC(analog-digital-converter) 회로에 의해 0~1023 사이의 정수값으로 변환됩니다. 이 값은 analogRead() 함수를 통해 접근할 수 있으며, 적절한 수식을 통해 다시 전압값으로 변환해서 시리얼 모니터로 출력하려 합니다.void setup() {
// 시리얼 통신 설정
Serial.begin(9600);
}
void loop() {
// A0를 핀을 통한 아날로그 값 받기 (0~1023 사이 정수)
int sensorValue = analogRead(A0);
// 0~1023 사이 정수 값을 (0~5V의 전압 값으로 다시 변환
float voltage = sensorValue * (5.0 / 1023.0);
// 아두이노 IDE 시리얼 모니터로 출력
Serial.println(voltage);
}
코드해석
우선 아래 코드로 시리얼 통신을 위한 설정을 합니다. 통신 속도는 9600bps입니다.Serial.begin(9600);
그 다음, 메인 루프에서 아날로그 입력핀 A0를 통해 가변저항의 값을 변수로 저장합니다.
int sensorValue = analogRead(A0);
전압값을 저장할 변수, 가변저항의 값을 다시 변환할 약간의 수식이 필요합니다.
float voltage= sensorValue * (5.0 / 1023.0);
이렇게 구해진 전압값을 아두이노 IDE 시리얼 모니터(단축키 Ctrl+Shift+M)로 확인할 수 있도록 시리얼 출력을 합니다.
Serial.println(voltage)
가변저항을 돌리면 변화하는 전압값을 시리얼 모니터로 볼 수 있게 되었습니다.
끝.
댓글
댓글 쓰기