티스토리 뷰

조도센서 Cds 모듈을 이용해서 LED 밝기를 조정해보았습니다.

주변이 어두워지면 LED가 밝아지는 테스트입니다.

 

조도센서 모듈에서 밝기에 따른 Analog 출력을 받아서

아두이노 보드에 Analog 입력을 하고,

2번부터 6번핀을 디지털 출력 (Digital Output)으로 해서 LED 밝기를 조정합니다.

 

우선 밝기에 따라 Analog 출력을 뽑기 위해

조도센서 모듈 4번핀에 점퍼선을 연결합니다.

 

조도센서 모듈 테스트 : https://robotamin.tistory.com/7

 

 

아두이노 우노 보드와 조도센서 모듈을 먼저 연결합니다.

 

아두이노 5V -- 조도센서 VCC

아두이노 GND -- 조도센서 GND

아두이노 A0 -- 조도센서 AO

 

 

그리고 빵판에 LED를 꽂습니다.

오늘은 우리 딸 추천으로 빨주노초파 LED 입니다.

220 옴 저항도 하나씩 달아줍니다. 

 

 

아두이노 Digital 2번 -- 빨 LED (+) --빨 LED (-) -- 저항 -- 아두이노 GND

 

아두이노 Digital 3번 -- 주 LED (+) --주 LED (-) -- 저항 -- 아두이노 GND

 

아두이노 Digital 4번 -- 노 LED (+) --노 LED (-) -- 저항 -- 아두이노 GND

 

아두이노 Digital 5번 -- 초 LED (+) --초 LED (-) -- 저항 -- 아두이노 GND

 

아두이노 Digital 6번 -- 파 LED (+) --파 LED (-) -- 저항 -- 아두이노 GND

 

최종 연결 모습입니다. (점퍼선까지도 색상을 잘 맞췄네요.)

 

 

다음은 프로그램 (스케치)를 작성합니다.

 

프로그램 방법은 사람마다 다르니까 참고만 하시기 바랍니다.

프로그램을 더 효율적으로 짤 수 있는 분들도 있겠죠.

저는 그냥 저의 방법으로 작성했습니다. 

 

 

 

일단 조도센서를 통해 들어오는 Analog Input은 cdsValue라는 변수에 입력됩니다.

전압의 크기에 따라 0~1023 으로 들어옵니다.

 

저는 이 수치를 바로 LED의 켜짐 시간으로 사용했습니다.

 

조도센서는 어두울 때 높은 전압이 나오므로

어두울 때 1000에 가까운 수치가 발생하며 이 값이 cdsValue에 들어갑니다.

이 cdsValue를 바로 Delay 값으로 사용하면 약 1초간 LED가 켜집니다.

 

반면, 밝을 때는 낮은 전압이 나옵니다.

예를 들어 200 정도 수치가 발생하고, 이 값을 바로

Delay 값으로 사용한다면 0.2초간 LED가 켜지는 것이죠.

 

켜짐 대 꺼짐 시간 비율이 높으면 LED는 밝게 보일 것이고,

켜짐 대 꺼짐 시간 비율이 낮으면 LED는 어둡게 보일 것이므로

 

켜짐, 커짐 총 주기를 cycle이라고 정한 다음,

On 길이는 조도센서에서 받은 수치를 사용하고 

Off 길이는 cycle에서 On 길이를 뺀 값을 사용해 보았습니다.

 

예) cycle = 1023, 조도센서값 cdsValue = 1000

On 길이 1000 ms, Off 길이 23 ms --> 밝아 보임 

 

예) cycle = 1023, 조도센서값 cdsValue = 200

On 길이 200 ms, Off 길이 823 ms --> 어두워 보임

 

그런데 저는 5개 LED가 동시에 밝아지고 동시에 어두워지는 모습이 필요해서

Delay 시간을 줄여야 했습니다.

그래서 cdsvalue를 그대로 사용하지 않고 1000 을 나눠 사용했고요,

소수점이 나오기 때문에 float 를 사용했습니다.

 

무사히 컴파일을 마치고 업로딩도 완료했습니다. 

 

손바닥으로 조도센서를 감싸니 LED 불이 밝아지는 것을 확인할 수 있었습니다.

 

주변을 밝게 해도 LED에 불이 살짝 들어오는데,

조도센서 모듈에서 주변이 밝아도 1.2~1.4 V 정도 출력을 내기 때문인 것 같습니다.

완전히 꺼진 모습을 보이려면 프로그램으로 보정을 좀 해야할 것 같네요.   

 

[손바닥 위에 조도센서를 올려만 놓은 상태] - 큰 딸 손 찬조 출연!

 

[손바닥으로 조도센서를 완전히 감싼 상태]

 

https://youtu.be/DVX9wXwXPn4?si=nez1pgM8CGQ5pXxA

 

 

 

 

 

 

 

이상, 조도센서 모듈을 사용한 LED 밝기 변화 테스트였습니다.

 

19.02.16 추가 : float 수식 사용에 오류가 있었습니다.

아래 링크에서 내용 확인하세요~

 

https://robotamin.tistory.com/10

댓글
공지사항
최근에 올라온 글