반응형


이번 예제는 가변저항(potentiometer)을 이용하여 아두이노가 아날로그 입력을 어떻게 읽어오는지 보여줍니다.  potentiometer는 달려있는 손잡이를 돌리면 저항의 값을 변경할 수 있는 전자 부품입니다.


전압을 가변저항을 거쳐 아두이노의 아날로그 입력핀으로 흐르게 함으로써 가변저항의 저항을 측정할 수 있습니다. 이렇게 측정된 값을 읽어서 시리얼 통신을 통해 피시에 실행중인 IDE의 시리얼 모니터에 값을 출력하게 할 수 있습니다.


참조한 원본 글은 http://arduino.cc/en/Tutorial/AnalogReadSerial입니다.

  

제가 구입한 가변저항은 드라이버를 이용해서 돌리는 타입과 손잡이가 달린 두가지 타입입니다. 후자의 경우 빵판에 안꽂힐까봐 걱정했는데 다행이 핀 규격이 맞는걸 구입했네요. 둘 다 동일하게 10K옴짜리 입니다.


가변저항의 양쪽 끝에 있는 다리에 테스터기의 지시봉 두개를 대고 재보니 대략 10k옴 정도가 나옵니다. 그리고 한쪽 끝에 있는 다리와 중간에 있는 다리를 각각 테스터기의 지시봉으로 대고 손잡이를 이러저리 돌리며 재보니 0에서 10K옴 사이의 값이 나오는 군요.

 

가변저항을 아두이노에 연결할 회로도는 다음과 같습니다.




가변저항의 한쪽끝에 있는 다리 하나는 그라운드에 연결하고 나머지 끝에 있는 다리 하나는 5V에 연결했습니다. 그리고는 가변저항의 중간 다리는 아날로그 핀 A0에 연결해주었습니다. 가변저항도 저항이다 보니 무극성이라 그런지 전원과 그라운드를 서로 바꾸어 연결해도 동작에는 상관없더군요.

 

소스코드는 다음과 같습니다.

  1. void setup() {  
  2.   // 9600bps로 시리얼 속도를 설정  
  3.   Serial.begin(9600);  
  4. }  
  5.   
  6. void loop() {  
  7.   // 아날로그핀 A0로부터 아날로그 값을 읽어와서 sensorValue 변수에 저장  
  8.   int sensorValue = analogRead(A0);  
  9.     
  10.   //피시의 시리얼 모니터를 통해 해당값 확인가능하도록 추력  
  11.   Serial.println(sensorValue);  
  12.     
  13.   delay(1);  
  14. }  

 


가변저항의 손잡이를  5V쪽으로 돌렸을 때의  중앙핀에서 측정된 저항의 값은 0옴에 가까워지고 가변저항의 중앙에서 측정되는 아날로그 전압값은 5V에 가까워집니다.

아두이노 내부에 있는 아날로그-디지털 변환기라 불리는 회로가 이 전압값에 비례하여 0~1023사이의 숫자를 analogRead 함수의 반환값으로 돌려줍니다. 중앙핀에 5V의 아날로그 전압이 흘렀기 때문에 여기에서는 1023이 출력됩니다.


 

가변저항을 그라운드쪽으로 돌렸을 때의 측정된 저항의 값은 10K옴에 가까워지고 가변저항의 중앙에서 측정되는 아날로그 전압의 값은 0V에 가까워집니다. 마찬가지로 중앙다리에 0V의 전압이 흘러서  0이 출력됩니다.



반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts