BASIC4MCU | 질문게시판 | 아두이노 PIR센서 이용 출입 카운트 하기(소스코드)
페이지 정보
작성자 GSUGAH 작성일2019-12-01 22:49 조회4,554회 댓글0건본문
int ledPin1 = 6; // blue(1번) LED
int ledPin2 = 7; // red(2번) LED
int ledPin3 = 8; // green(3번) LED
int inputPin1 = 4; // PIR센서1 신호핀
int inputPin2 = 5; // PIR센서2 신호핀
int pirState1 = LOW; // PIR1 초기상태(움직임이 없음을 가정)
int pirState2 = LOW; // PIR2 초기상태(움직임이 없음을 가정)
int val1 = 0; // 신호1 입력값
int val2 = 0; // 신호2 입력값
int count = 0; // 카운터 초기값void setup() {
pinMode(ledPin1, OUTPUT); // 6번 LED를 출력으로 설정
pinMode(ledPin2, OUTPUT); // 7번 LED를 출력으로 설정
pinMode(ledPin3, OUTPUT); // 8번 LED를 출력으로 설정
pinMode(inputPin1, INPUT); // 센서1 입력 설정
pinMode(inputPin2, INPUT); // 센서2 입력 설정Serial.begin(9600); // 시리얼 통신, 속도는 9600
}
void loop() {val1 = digitalRead(inputPin1); // 1센서값 읽어와 val1에 저장
val2 = digitalRead(inputPin2); // 2센서값 읽어와 val2에 저장if (val1 == HIGH) //센서1 신호값이 HIGH면( 인체감지시)
{
if (val2 == HIGH) //센서2 신호값이 HIGH면( 인체감지시)
{
digitalWrite(ledPin1, HIGH); // 1번 LED ON
digitalWrite(ledPin2, LOW); // 2번 LED off
digitalWrite(ledPin3, LOW); // 3번 LED offif (pirState2 == LOW) //PIR2 초기상태(움직임이 없음을 가정)
{
count = count + 1;
Serial.println("in"); // 시리얼모니터에 메세지 출력
Serial.println(count); // 카운트숫자 표시
delay(800);
}
}else // 센서2 신호값이 LOW면(인체감지 없을시)
{
digitalWrite(ledPin1, LOW); // 1번 LED Off
digitalWrite(ledPin2, HIGH); // 2번 LED on
digitalWrite(ledPin3, LOW); // 3번 LED off
count = count;
delay(800);
}
}
else if (val2 == HIGH) // 센서2 신호값이 HIGH면(인체감지시)
{
if (val1 == HIGH) // 센서1 신호값이 HIGH면(인체감지시)
{
digitalWrite(ledPin3, HIGH); //3번 LED ON
digitalWrite(ledPin2, LOW); //2번 LED off
digitalWrite(ledPin1, LOW); //1번 LED off
if (pirState1 == LOW) //PIR1초기상태(움직임이 없음을 가정)
{
count = count - 1;
Serial.println("out"); // 시리얼모니터에 메세지 출력
Serial.println(count); // 카운트숫자 표시
delay(800);}
}
else //센서1 신호값이 LOW면(인체감지 없을시)
{
digitalWrite(ledPin3, LOW); //3번 LED Off
digitalWrite(ledPin2, HIGH); //2번 LED on
digitalWrite(ledPin1, LOW); //1번 LED offcount = count;
delay(800);
}
}else
{
digitalWrite(ledPin3, LOW); // 3번 LED OFF
digitalWrite(ledPin2, HIGH); //2번 LED on
digitalWrite(ledPin1, LOW); //1번 LED Off
count = count;
delay(800);
}
}
PIR센서 2개를 이용하여 센서 1,센서 2 순서로 인식되면 +1 카운트
센서2, 센서1 순서로 인식되면 -1 카운트 하려고 하는데 in만 인식하고 out이 안되는데 어떻게 수정해야 할까요?ㅜㅠ
댓글 0
조회수 4,554등록된 댓글이 없습니다.