[아두이노] 가변저항(포텐셔미터) 사용해보기


안녕하세요 대짜이찐입니다.


가변저항(포텐셔미터,Potentiometer)은
전자회로에서 저항값을 임의로 바꿀수 있는 저항입니다.
내부에 저항이 들어있고, 핀이 3개로 나뉘어져 있습니다.
저항은 두께와 길이에 비례하기 때문에 양쪽가변저항의 노브를 돌리게 되면,
1-2번 사이의 저항 값, 2-3번 사이의 저항 값을 변화 시킬 수 있습니다.
또한 1-3번의 저항값을 측정하면 전체 가변 저항의 값을 알 수 있습니다.

아래 예제는 가변저항의 값을 아날로그 입력으로 아두이노로 받은후
저항값으로 변환해서 시리얼 모니터로 출력하는 예제입니다.
준비물: 아두이노 우노, 점퍼선, 브레드보드, 가변저항 10kΩ 1개

/*
potentiometer_value
가변저항으로 값을 시리얼 모니터로 출력하는 예제
http://www.devicemart.co.kr/
*/

#define R 10000 // 가변저항의 총 저항값 정의

void setup()
{
Serial.begin(9600); // 9600bps로 시리얼 통신 시작
Serial.println("Serial Com start"); // 시리얼 통신 시작 문자 출력
}

void loop()
{
int val=analogRead(A0); // 아날로그 A0에서 값을 읽어서 변수 val에 저장
int resistor=map(val,0,1023,0,R); // map함수를 사용해서 아날로그값을 저항 값으로 변환
// 저항값 출력
Serial.print("Resistor value: ");
Serial.print(resistor);
Serial.println("ohm");
delay(200);
}

소스 코드중에
-#define은 전처리기로 미리 값을 정의할 수 있습니다.
이번 예제에서는 10kΩ 가변저항을 써서 R 값을 10,000으로 넣었습니다.

-analogRead()함수는 analogRead(pin)로 사용합니다.
입력된 핀 번호에 해당하는 핀으로부터 아날로그 신호를 0~1023의 값으로 읽어오는 함수 입니다.

-map()함수는 숫자를 한 범위에서 다른 범위로 변환하는 함수로,
문법은 map(value, fromLow, fromHigh, toLow, toHigh)입니다.
fromLow의 값은 toLow로 변환되고,
fromHigh의 값은 toHigh로 그 사이의 값들은 비례적으로 변환됩니다.



감사합니다.

아래는 가변저항 구매링크입니다.
http://www.devicemart.co.kr/goods/catalog?code=000300010007


댓글 쓰기

0 댓글