int LED = 8; // LED 변수 선언하고 연결한 핀 번호로 초기화
int PIR = 7; // 센서 변수 선언하고 연결한 핀 번호로 초기화
int state = 0; // 센서 상태 값 저장 변수(0: LOW, 1: HIGH)
void setup() {
pinMode(LED, OUTPUT); // LED를 출력으로 설정
pinMode(PIR, INPUT); // 센서를 입력으로 설정
Serial.begin(9600); // 시리얼 통신, 속도는 9600
}
void loop() {
state = digitalRead(PIR); // PIR 센서값 입력받음
digitalWrite(LED, LOW); // 초기 LED값을 0FF로 설정해주기
if (state == 0){ // 센서 값이 0 이라면
Serial.println("ON"); // 시리얼 통신에 센서값 출력
digitalWrite(LED, HIGH); // LED ON
}
else { // 센서 값이 1 이라면
Serial.println("OFF"); // 시리얼 통신에 센서값 출력
digitalWrite(LED, LOW); // LED OFF
}
delay(100); // 0.1초 대기(1000ms = 1s)
}
위의 것이 해당 센서의 예제입니다. (참고로 예제에 LED가 led로 기재된 오타가 있습니다.)
예제의 회로도와 코드를 똑같이 만들었는데
움직임이 없을때 불이 켜지고
움직임이 있으면 불이 잠시 꺼집니다
왜이럴까요?
또한 PIR 센서 자체에 있는 센서 감도조정 가변저항, Delay 시간조정 가변저항을 조절할 때에 있어서 어느 쪽으로 돌리면 값이 줄어드는지 혹은 늘어나는지 또한 최소,최대 값은 얼마인지도 알고싶습니다.