# 어두워지면 LED 켜기
목표 : 어두워지면 LED 켜기
준비물 : 조도센서, LED, 10K옴 저항(갈검주), 220옴 저항(빨빨갈) 케이블, 보드, 브래드보드
입출력 설명
입력 : 조도센서 값(아날로그 값, 0~1023)
처리 : 조도센서 값을 읽어(analogRead), 최소, 최대값을 LED 밝기의 최소 최대 값의 범위로 변환(map)
출력 : LED 밝기(아날로그 값, 0~255)
## 하드웨어
LED의 +극 선은 디지털 13번 핀에 연결
조도센서 입력선 아날로그 0번 핀에 연결
## 코드
int ledPin = 13;
int sensorPin = 0;
void setup(){
pinMode(ledPin, OUTPUT);
// Serial.begin(9600);
}
void loop(){
int val = analogRead(sensorPin);
// Serial.println(val);
if(val < 300) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
## 시뮬레이션
# 조도센서로 감지한 값을 LED 밝기 제어하기
목표 : 조도센서로 감지한 값을 LED 밝기 제어하기
준비물 : 조도센서, LED, 10K옴 저항(갈검주), 220옴 저항(빨빨갈) 케이블, 보드, 브래드보드
입출력 설명
입력 : 조도센서 값(아날로그 값, 0~1023)
처리 : 조도센서 값을 읽어(analogRead), 최소, 최대값을 LED 밝기의 최소 최대 값의 범위로 변환(map)
출력 : LED 밝기(아날로그 값, 0~255)
## 회로도
}
Serial.print(", post-cdsValue: ");
Serial.println(cdsValue);
## 코드
// 주변의 밝기량에 따라 LED 밝기 제어하기
int ledPin = 13;
int cdsPin = 0;
int cdsValue = 0;
void setup() {
pinMode(cdsPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
cdsValue = analogRead(cdsPin);
Serial.print("pre-cdsValue: ");
Serial.print(cdsValue);
cdsValue = map(cdsValue, 300, 500, 0, 255);
analogWrite(ledPin, cdsValue);