Arduino/LED 제어 하기
조도 센서의 값을 읽어서 LED의 밝기 조절하기
DesignatedRoom
2020. 10. 16. 17:50
이번에 다룰 내용은 조도 센서의 값을 읽어서 LED의 밝기 조절하는 부분이다.
이번 내용은 아래의 내용과 이어지는 부분이다. 참고하자.
designatedroom87.tistory.com/188
조도 센서의 값을 읽어서 LED를 켜고 끄기
이번에 다룰 내용은 조도 센서의 값을 읽어서 LED를 켜고 끄기를 할 것이다. 아래 내용의 이어지는 부분이니, 잘 모르면 보고 오자. designatedroom87.tistory.com/187 조도 센서의 값을 읽어오기 조도 센서
designatedroom87.tistory.com
소스 코드
// 예제3 조도 센서의 값을 읽어서 LED의 밝기 조절
// '시리얼 모니터' 라는 돋보기 모양의 아이콘을 선택하면 시리얼 통신 창이 뜬다.
// 조도 센서를 손으로 가리면 sensor 값이 작아짐을 볼 수 있다.
// 밝으면 조도 센서값이 커진다.
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600); // Serial객체에 begin함수호출. 수신할 수 있는 비트율(bps)
pinMode(5,OUTPUT); // 5번핀을 출력으로 쓴다. 5번핀은 아날로그 핀이다.
}
void loop()
{
// put your main code here, to run repeatedly:
int sensor = analogRead(A0); // A0핀에 있는 값을 아날로그 값으로 읽어온다.
// sensor값은 0~1023의 값을 갖는다.
// LED는 0~255까지의 값을 갖는다.
int led = ((float)sensor / 1023) * 255;
Serial.println(led,HEX); // BIN은 binary로, led값을 이진수로 출력
// HEX는 16진수
// 어두워 졌을 때, 밝아져야 하므로 LED의 최대값에서 led값을 뺀다.
analogWrite(5,255-led);
delay(100);
}
위의 소스에서 Serial.println함수에서 값을 출력할 때, 이진수와 16진수로 표현하고 있음을 볼 수 있다.
이는 블루투스로 통신할 때, 이진수 혹은 16진수를 이용해서 유용하게 이용할 수 있다.
출력 방식을 알아두자.