이번 예제는 가변저항(potentiometer)을 이용하여 아두이노가 아날로그 입력을 어떻게 읽어오는지 보여줍니다. potentiometer는 달려있는 손잡이를 돌리면 저항의 값을 변경할 수 있는 전자 부품입니다.
전압을 가변저항을 거쳐 아두이노의 아날로그 입력핀으로 흐르게 함으로써 가변저항의 저항을 측정할 수 있습니다. 이렇게 측정된 값을 읽어서 시리얼 통신을 통해 피시에 실행중인 IDE의 시리얼 모니터에 값을 출력하게 할 수 있습니다.
참조한 원본 글은 http://arduino.cc/en/Tutorial/AnalogReadSerial입니다.
제가 구입한 가변저항은 드라이버를 이용해서 돌리는 타입과 손잡이가 달린 두가지 타입입니다. 후자의 경우 빵판에 안꽂힐까봐 걱정했는데 다행이 핀 규격이 맞는걸 구입했네요. 둘 다 동일하게 10K옴짜리 입니다.
가변저항의 양쪽 끝에 있는 다리에 테스터기의 지시봉 두개를 대고 재보니 대략 10k옴 정도가 나옵니다. 그리고 한쪽 끝에 있는 다리와 중간에 있는 다리를 각각 테스터기의 지시봉으로 대고 손잡이를 이러저리 돌리며 재보니 0에서 10K옴 사이의 값이 나오는 군요.
가변저항을 아두이노에 연결할 회로도는 다음과 같습니다.
가변저항의 한쪽끝에 있는 다리 하나는 그라운드에 연결하고 나머지 끝에 있는 다리 하나는 5V에 연결했습니다. 그리고는 가변저항의 중간 다리는 아날로그 핀 A0에 연결해주었습니다. 가변저항도 저항이다 보니 무극성이라 그런지 전원과 그라운드를 서로 바꾸어 연결해도 동작에는 상관없더군요.
소스코드는 다음과 같습니다.
- void setup() {
- // 9600bps로 시리얼 속도를 설정
- Serial.begin(9600);
- }
- void loop() {
- // 아날로그핀 A0로부터 아날로그 값을 읽어와서 sensorValue 변수에 저장
- int sensorValue = analogRead(A0);
- //피시의 시리얼 모니터를 통해 해당값 확인가능하도록 추력
- Serial.println(sensorValue);
- delay(1);
- }
가변저항의 손잡이를 5V쪽으로 돌렸을 때의 중앙핀에서 측정된 저항의 값은 0옴에 가까워지고 가변저항의 중앙에서 측정되는 아날로그 전압값은 5V에 가까워집니다.
아두이노 내부에 있는 아날로그-디지털 변환기라 불리는 회로가 이 전압값에 비례하여 0~1023사이의 숫자를 analogRead 함수의 반환값으로 돌려줍니다. 중앙핀에 5V의 아날로그 전압이 흘렀기 때문에 여기에서는 1023이 출력됩니다.
가변저항을 그라운드쪽으로 돌렸을 때의 측정된 저항의 값은 10K옴에 가까워지고 가변저항의 중앙에서 측정되는 아날로그 전압의 값은 0V에 가까워집니다. 마찬가지로 중앙다리에 0V의 전압이 흘러서 0이 출력됩니다.
'Arduino Uno' 카테고리의 다른 글
arduino uno에서 ds18b20온도 센서값과 RTC(날짜,시간)값을 MYSQL에 데이터 넣기 (30) | 2016.06.10 |
---|---|
Arduino Mega 2560에 TFT LCD 연결하기 (0) | 2016.05.30 |
아두이노에 LM35 온도 센서 연결하여 온도 측정하기 (0) | 2015.12.13 |
아두이노에서 3축 가속도 자이로 센서 사용해보기 ( MPU-6050 ) (0) | 2015.12.11 |
아두이노 부트로더 컴파일해서 업로드 시켜보기 (0) | 2015.12.10 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!