BASIC4MCU | 질문게시판 | cds 질문
페이지 정보
작성자 기사공부힘들당 작성일2020-11-05 17:41 조회2,738회 댓글2건본문
가변저항, led, cds 를 이용해서 가변저항의 전압값 < 조도센서의 전압값이면 크면 LED가 켜지고, 작으면 off 하는 것인데
cds를 아무리 만져도 값이 미세하게만 변동하네요 어디가 잘못된 것 일까요?
#define Volt 5 //5볼트 전압 사용
int led1 = 11;
int reg = A0;
int light = A3;
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(reg, INPUT);
pinMode(light, INPUT);
}
void loop() {
int bright;
int regReading = analogRead(reg);
int lightReading = analogRead(light);
bright = map(lightReading,350,1023,0,300);
Serial.print("registor : ");
Serial.print(regReading/4);
Serial.print(", light intensity : ");
Serial.println(bright);
delay(100);
if(regReading < lightReading) digitalWrite(led1, HIGH);
else digitalWrite(led1, LOW);
}
댓글 2
조회수 2,738master님의 댓글
master 작성일
bright = map(lightReading,350,1023,0,300);
이 공식으로 bright 값이 290 근처라면 A3 입력은 989 정도에서 변화가 적겠습니다.
브레드보드 접속이 안 좋은지 체크하시고
CDS에 연결되어 있는 풀업저항(또는 풀다운저항)이 없는 것은 아닌지도 체크하세요
CDS를 시리얼모니터로 체크하려면
Serial.println(bright); 이 코드대신 Serial.println(lightReading); 이렇게 하면 되겠죠
master님의 댓글
master 작성일
if(regReading < lightReading)
if문에서는 lightReading을 사용하는데 bright = map(lightReading,350,1023,0,300); 이 변환은 뭐 때문에 했을까요?
단지 시리얼모니터 출력용인가요?