조도 센서(CDS)
빛이 밝을수록 저항값이 작아지는 센서입니다.
필요 하드웨어
연결
LED를 사용하지 않더라도, 조도 센서 측정 값을 시리얼 모니터로 확인하실 수 있습니다.
예제 코드
조도 센서 값을 시리얼 모니터로 출력하고, 센서 값에 따라 LED의 밝기가 변하는 예제입니다.
#define A_cds A0
void setup()
{
//시리얼 통신 보드레이트 설정
Serial.begin(9600);
}
void loop()
{
//analogRead로 들어오는 전압값을 읽습니다.
//analogRead는 0~5V의 전압을 0~1024의 정수값으로 대응시킵니다.
double value = analogRead(A_cds);
Serial.print("value : ");
Serial.println(value);
delay(1000);
}
실행결과
고등학교 정보교과서(씨마스) 예제
P. 211 스스로 해결하기① (조도 센서, LED)
본 예제는 교과서 내용에 따라 엔트리파이선을 사용합니다.
아두이노 사용 방법 문서에서 엔트리파이선을 활용 방법을 참고하세요.
연결
예제 코드
조도 센서 값에 따라 켜지는 LED 개수가 달라집니다.
사용 환경에 따라 var 값의 기준을 변경해주세요.
import Entry
import Arduino
def when_start():
while True:
var = Arduino.analogRead("A0")
if var > 0:
Arduino.digitalWrite(8,"HIGH")
else:
Arduino.digitalWrite(8,"LOW")
if var > 30:
Arduino.digitalWrite(9,"HIGH")
else:
Arduino.digitalWrite(9,"LOW")
if var > 60:
Arduino.digitalWrite(10,"HIGH")
else:
Arduino.digitalWrite(10,"LOW")
if var > 90:
Arduino.digitalWrite(11,"HIGH")
else:
Arduino.digitalWrite(11,"LOW")
if var > 120:
Arduino.digitalWrite(12,"HIGH")
else:
Arduino.digitalWrite(12,"LOW")
간단한 반복문을 추가한 코드입니다. 동작은 위 코드와 동일합니다.
import Entry
import Arduino
def when_start():
while True:
ledpin = 8
k = 0
var = Arduino.analogRead("A0")
for i in range(5):
if var > k:
Arduino.digitalWrite(ledpin,"HIGH")
else:
Arduino.digitalWrite(ledpin,"LOW")
ledpin += 1
k += 30