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진수를 이용해서 유용하게 이용할 수 있다.

출력 방식을 알아두자.