반응형

포토레지스터는 광량에 따라 저항의 값을 변화 시킨다. 

주변이 밝을 수록 저항의 값이 증가하며 반대로 어두울수록 저항이 낮아진다.

이의 값을 측정해 아두이노의 아날로그 단자에 입력시켜 광량을 측정 할 수 있다.

이를 통해 어두워지면 불을 켜고 밝아지면 끄고 하는 등의 동작을 제어할 수 있다.


포토레지스터의 모습 (극성은 없다.)



포토레지스터와 아두이노의 연결, 어두워지면 LED가 켜지고 밝으면 꺼진다.

포토레지스터 5V 전원연결부에 저항(10K)을 달아주었다.






##소스##

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int lightPin = 0;  //포토레지스터 신호를 받는 핀 번호
int threshold = 250;  //감도 설정, 숫자를 높이면 감도가 떨어짐(더 어두워야 LED HIGH)
 
void setup(){
    Serial.begin(9600);  //시리얼 모니터
    pinMode(13, OUTPUT);  //LED연결핀
}
 
void loop(){
    Serial.println(analogRead(lightPin)); 
 
    //A0 핀의 저항값 읽어서 threshold 보다 크면(어두우면) LED HIGH, 작으면(밝으면) LED LOW
    if(analogRead(lightPin) > threshold ){    
        digitalWrite(13, HIGH);
        Serial.println("high"); 
    }else{
        digitalWrite(13, LOW);
        Serial.println("low"); 
    }
    delay(1000);
}
cs



##결과##
포토레지스터의 빛을 가릴 경우 LED가 켜지고 반대의 경우 꺼지는 것을 볼 수 있다.



반응형

+ Recent posts