오늘은 아두이노 보드에서 조도 센서를 사용해보려 합니다.
이번 회로는 저번보다 매우 간단할 거에요.
많이 연결할 부품도 없구요. 필요한 부품도 크게 복잡하지 않습니다.
여기에서 가장 핵심이 되는 조도 센서는 카드뮴과 황이 결합된 황화카드뮴으로 만들어져 있습니다.
회로를 보시면 조도 센서에 저항이 달려있는데요.
만약, 저항이 연결되어 있지 않은 상태에서 전원을 켰다면 실제 회로에서는 조도 센서가 타버릴 수 있습니다.
왜냐하면 저항이 없기 때문에 5V 전압이 센서에 그대로 전해지게 됩니다.
따라서, 센서에 저항을 연결해주어야 보드에서 안정적으로 값을 읽어낼 수 있습니다.
또, 중요한 특성이 하나있는데요. 광량과 저항이 반비례 관계라는 것입니다.
조도, 즉 광량이 적을수록 저항이 커져서 전기가 통하기 힘들어지게 됩니다.
반대로, 조도가 높을수록 저항은 낮아져서 전기가 훨씬 잘 통하게 됩니다.
이 센서의 특성을 고려해서 코드를 작성해야 합니다.
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print("Photocell Value : ");
Serial.println(analogRead(A0));
delay(100);
}
시리얼 모니터로 조도 센서에서 값을 어떻게 읽어오고 있는 지
보기 위해 Serial.begin으로 보우 레이트(Baud rate)를 9600으로 설정해주었습니다.
또 loop 함수에서는 계속 쉴 새없이 결과값이 출력되면 오히려 보기 힘들기 때문에 delay로 100을 설정했습니다.
위와 같은 코드로 아두이노 보드를 실행하게 되면 아래와 같은 결과가 나옵니다.
보시면 제가 지금 사용하는 저항이 1kΩ이기 때문에 저렇게 최댓값이 679가 나오고 최솟값은 6이 나왔습니다.
저는 다른 저항값을 써봤는데 저항 값에 따라 시리얼 모니터에 나오는 값이 달라졌습니다.
당연히 저항이 높아지면 조도가 높아도 전기가 잘 안 통하겠죠?
반대로 저항이 낮아지면 조도가 낮아도 전기가 흐를 겁니다.
시리얼 모니터에 나오는 결과 값이 어떻게 저렇게 나오는 지는 저번에 다루었지만 한 번 더 다루자면,
Serial.print문으로 Photocell Value : 가 지속적으로 같은 줄에 출력되게 하고
Serial.println문으로 A0 핀에 아날로그 값을 읽어와 출력하고 다음 줄로 변경하는 동작을 설정했습니다.
이번 포스팅은 단순히 조도 센서를 사용해보고, 센서의 특성을 이해하는 데 중점을 두었습니다.
아마도 다음 포스팅은 가변저항을 사용해서 LED의 밝기를 조절해보는 회로를 만들어 보겠습니다.
글 읽어주신 모든 분들께 감사하구요. 다음 포스팅에서 또 뵙겠습니다.
'Dev > C언어' 카테고리의 다른 글
아두이노 DC모터와 멀티미터 사용하기 (0) | 2020.08.25 |
---|---|
아두이노 가변저항으로 밝기 제어하기 (0) | 2020.08.24 |
아두이노 충돌 경보기 만들기 (0) | 2020.08.12 |
아두이노 초음파 센서 사용하기 (0) | 2020.08.09 |
아두이노 Text LCD 사용하기 (0) | 2020.08.02 |