HW 공작소

아두이노3: 광센서 밝기에 따라 LED 제어하기

kusson 2017. 5. 9. 16:58
반응형
728x170

아날로그 입력과 시리얼 모니터, 그리고 광센서 밝기에 따라 LED 제어하기

 

 

 아두이노 우노 보드에는 6개의 아날로그 입력핀이 있다. 보드에서 A0, A1, A2, A3, A4, A5로 표시된 부분이다.

6개의 입력신호를 동시에 처리할 수 있으며 0에서 5V사이의 값을 읽어서 0부터 1023까지 1024개의 숫자로

나타내 준다. 광센서나 저항등으로 아날로그 회로를 만들고 그 입력을 받아 제작자의 필요에 따라 처리할 수

있다. 아래 그림은 광센서에 10KΩ의 저항을 연결해서 구성한 광센서 회로이다.

 

 

 먼저 아두이노 우노보드에 광센서를 연결한다. 광센서는 우노보드의 A0 핀에 연결하고 10KΩ의 보호저항을 연결해

 5V를 전압을 인가하고 다른핀은 GND에 연결한다. 그리고 아두이노 IDE에 다음과 같은 스케치 프로그램을 입력한다.

 

void setup() {
 Serial.begin(9600);                             //보 레이트를 9600으로 설정한다.
}

void loop() {
int sensorValue = analogRead(A0);       //아두이노 보드의 A0에서 아날로그 값을 읽어 sensorValue에 저장한다.
Serial.println(sensorValue);                  //시리얼 모니터에  sensorValue값을 출력한다.

delay(200);                                      //0.2초의 지연 시간을 준다.
}

 

 툴바의 오른쪽에 있는 "시리얼 모니터"를 클릭하면 시리얼 모니터를 열어서 빛의 밝기를 수치로 나타내 준다.

1초에 5회씩 0~1023사이의 값을 출력해 준다. 낮은 수치일수록 광센서가 밝은 빛에 노출되어서 센서의 저항값이

줄어든다는 의미이고 광센서를 손으로 덮어서 빛을 차단해 주면 센서의 저항값이 올라가 값이 커진다.

 

 

 시리얼 모니터는 USB 케이블로 아두이노와 컴퓨터가 대화하는 창이다. 서로 값을 주고 받을 수 있다.

밝은 상태와 어두운 상태에 따라 시리얼 모니터의 값이 달라지는 것을 알 수 있다. 밝은 상태에서는

저항의 값이 줄어들어 숫자가 230 정도까지 떨어지는 것을 볼 수 있고 손으로 광센서를 가리면 다시

저항값이 올라가 600이상까지 수치가 상승하는 것을 볼 수 있다.

 

이제 광센서의 밝기에 따라 아두이노 보드에 꽂아둔 LED를 제어해 보자. 광센서를 손으로 가려서

어두워지면 LED가 켜지고 손을 치워 다시 밝아지면 LED가 꺼지도록 다음과 같이 스케치 프로그램을 작성하자.

 

 

void setup() {
   Serial.begin(9600);
   pinMode(13, OUTPUT);                         //아두이노 보드의 13번 핀을 출력으로 설정한다.
}

 

void loop() {
   int sensorValue = analogRead(A0);                  //A0 핀에서 아날로그 값을 읽어 sensorValue에 저장한다.
   if(sensorValue >250) digitalWrite(13,HIGH);       //값이 250보다 크면 13번 핀으로 5V를 출력해 LED를 켠다.
   else                       digitalWrite(13,LOW);       //그외의 조건에서는 LED를 끈다.

   delay(200);
}

 

 

반응형
그리드형