LED 핀으로 PWM을 지원하는 6번 핀을 사용했다.
아두이노의 analogWrite() 함수는 실제 아날로그 출력이 아니라, PWM 방식을 이용해 빠르게 ON/OFF를 반복하여 아날로그 출력을 흉내 내는 방식이다.
A0 핀의 값을 읽으려면, 아날로그 핀이기 때문에 기존에 사용하던 digitalRead() 함수가 아니라 analogRead() 함수를 사용해야 한다.
또한, 아날로그 입력값은 0~1023 범위를 가지지만, 전위차계(또는 LED 밝기 조절에 사용될 값 디지털 값)는 0~255 범위를 사용한다. 따라서 map() 함수를 활용해 큰 범위(0~1023)를 작은 범위(0~255)로 변환해 주어야 한다.

오늘은 전위차계(Potentiometer)를 사용하여 LED 불빛을 조절해보았다.
처음에는 analogRead() 함수를 이용해 값을 변수에 저장한 뒤, 그대로 LED 밝기를 조절하면 될 것 같아서 시도해봤다. 하지만 LED가 밝아졌다가 갑자기 꺼지는 현상이 반복되었다.
이유를 생각해보니, 아날로그 입력값(0~1023)과 디지털 출력값(0~255)의 범위가 다르기 때문이었다. 그래서 map() 함수를 활용해야 한다는 것을 직접 실험을 통해 깨달을 수 있었다.