조도 센서(Photoresistor)
- 빛의 세기에 따라 저항 값이 변하는 전자부품이다. 빛이 많이 들어오면 저항이 작아지고 적게 들어오면 저항이 커지는 황화 카드뮴(Cadmium Sulfide)이라는 화합물을 사용한다.
- 단자가 두 개이다.
- 저항처럼 극성이 없기 때문에 전원과 그라운드의 방향에 상관없이 연결할 수 있다.
- 조도 센서값은 빛의 세기와 반비례한다. 빛이 약할수록(어두울수록) 조도 센서값은 커진다.
개요
조도 센서값이 기준보다 크면 어둡다고 판단하여 LED를 켜고, 조도 센서값이 기준보다 작거나 같으면 밝다고 판단하여 LED를 끈다.
아두이노 회로

- 회로 배선
- 조도 센서: 조도 센서의 값을 읽기 위해, 아날로그 입력 핀 'A0'와 '조도 센서와 저항이 만나는 지점'을 연결한다.
조도센서에서 신호를 측정할 수 있는 단자는 총 세 부분이며 그라운드에 연결된 단자, 저항에 연결된 단자, 저항을 거쳐 전원에 연결된 단자이다.
그라운드에 연결된 단자를 아날로그 핀(A0)에 연결하면 항상 0V에 해당하는 0의 값만 측정할 수 있으며, 저항을 거쳐 전원에 연결된 단자에 아날로그 핀(A0)을 연결하면 항상 5V에 해당하는 1,023의 값만 측정할 수 있다. 따라서 조도센서와 저항이 연결된 단자에서 정상적인 신호를 측정할 수 있다. 빛의 세기에 따라 조도센서의 저항 값이 변하면, 조도센서와 저항이 연결된 단자에서 측정하는 전압도 달라지기 때문이다.
- LED: LED의 전류는 양극에서 음극으로 흐르므로, 전원 공급을 제어하기 위한 디지털 13번 핀은 LED의 양극(애노드)에 연결한다. LED의 음극(캐소드)은 저항(220옴)을 거쳐 브레드 보드의 접지에 연결한다.
스케치 코드
// c# code
//
void setup()
{
Serial.begin(9600); // 시리얼 통신 초기화
// 1초에 9600비트로 데이터 전송
pinMode(13, OUTPUT); // 13번 디지털 핀을 출력 모드로 설정
}
// loop() 함수 :
// 컴퓨터에서 실행 중인 C# 프로그램에서 전달된 명령에 따라 LED를 켜고 끄는 코드
void loop()
{
int photoresistor = analogRead(A0); // 조도 센서값 측정
Serial.println(photoresistor); // 조도 센서값 출력
if(photoresistor > 100)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13,LOW);
}
}
- 조도 센서값은 빛의 세기와 반비례한다. 빛이 약할수록(어두울수록) 조도 센서값은 커진다. 따라서 조도 센서 값이 100보다 크면 어두울 것으로 판단하여 LED가 켜지고, 조도 센서의 값이 100보다 작으면 밝다고 판단하여 LED가 꺼지게 작성하였다.
실행
