가변저항은 간단하게 컴퓨터로 보낸 값을 체크할 때 좋은 부품입니다.
이걸 이용해서 테스트한 다음 다른 센서를 붙여보면 디버깅하기가 좋죠.
보드를 구성하기 전에 가변저항의 구조를 보도록 하겠습니다.
다행히 쓰여있는 데로 꼽으시면 됩니다 ㅎㅎ
LED는 평상시처럼 13번 핀에 꽂았습니다.
전 그라운드(GND)는 하얀색으로 꽂습니다.
가변저항은 돌리기 쉬운 곳에 꽂아서 테스트 합시다 ㅎㅎㅎ
완성
가변저항의 값을 받기 위해 'A0'의 값을 읽어야 하는데
아날로그 입력을 받을 때 사용하는 함수가 'analogRead([읽을 포트])' 입니다.
#define LED 13
#define ANALOG A0
//가변저항값
int nA0_Value = 0;
void setup()
{
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop()
{
nA0_Value = analogRead(ANALOG);
analogWrite(LED, nA0_Value / 4);
//컴퓨터에 신호를 준다.
Serial.println(nA0_Value);
delay(10);
}
시리얼 포트로 값을 넘기기 위해 'Serial.println([넘길 값])'을 사용했는데 시리얼 포트를 확인하여 가변저항값을 보려고 넣은 코드입니다.
LED에 값을 줄 때 나누기 4를 한 것은 가변저항의 값은 1024까지인데 LED의 밝기값은 256까지다 보니 LED의 밝기가 꺼졌다 켜졌다 하는것처럼 보여서입니다.
이 값을 4로 나누면 천천히 밝아지는 효과도 있습니다.
가변저항을 돌려 봅시다.
만약 LED는 켜지는데 밝기조절이 안 된다면 PWM 포트에 LED를 연결해야 합니다.
(3,5,6,9,10,11번 포트가 PWM 포트입니다.)
가변저항으로 코드를 테스트하고 필요한 센서를 붙여 다시 테스트하면 좋습니다.
문제는 가끔 가변저항은 말짱한데 센서값이 안 나오는 경우가....