BASIC4MCU | 질문게시판 | 빗방울 감지센서 코드 맞나 확인해주세요
페이지 정보
작성자 메이트 작성일2022-09-18 17:48 조회3,539회 댓글2건본문
제가 자동문에 빗방울 감지 센서를 연결해서 비가 감지되면 자동으로 문이 열릴때 비 가림막도 같이 나오게 하는 걸 만들려 하거든요.
제가 직접 구동해보면 좋겠지만 아직 택배가 도착을 안해서 전문가분들이 먼저 검토 해주시면 좋을 것 같아서 올리게 됬습니다.
일단 컴파일을 했을 때는 오류가 없다고 떴는데 구동을 해보기 전까진 제가 생각하는 대로 될지 몰라서 올립니다. 제가 생각하는 것은 인체감지센서에서 사람이 감지되면 빗방울 감지센서 값을 읽고 빗방울 감지센서 값이 1이면 문이랑 비 가림막이 같이 나오고, 빗방울 감지센서 값이 0이면 문만 나오는 게 하는 거예요. 긴 글 읽어주셔서 감사하고요 코드 오류 있는지 한번 봐주시고 수정해야 할 부분도 알려주시면 감사하겠습니다.
#include <Servo.h>
Servo myservo1; //자동차 문
Servo myservo2; //비가림막
int rainingPin = 7; //빗방울 감지센서
int pir = 4; //인체감지센서
void setup() {
pinMode(rainingPin, INPUT);
pinMode(pir, INPUT);
myservo1.attach(9);
myservo2.attach(10);
}
void loop() {
int value = digitalRead(rainingPin); //빗방울 감지센서 값
int state = digitalRead(pir); // 인체감지센서 값
if(state == HIGH){
digitalRead(value);
if(value == 1){
myservo1.write(120);
myservo2.write(120);
delay(500);
myservo1.write(0);
myservo2.write(0);
}
else if(value == 0){
myservo1.write(120);
delay(500);
myservo1.write(0);
}
}
}
댓글 2
조회수 3,539master님의 댓글
master 작성일
digitalRead(value);
이 코드는 삭제해야 하고요
서보모터가 돌아간 후의 딜레이 0.5초는 너무 작은 값 같습니다.
몇초 정도는 해야지 사람이 나가겠죠?
#include <Servo.h>
Servo myservo1; //자동차 문
Servo myservo2; //비가림막
//
int rainingPin = 7; //빗방울 감지센서
int pir = 4; //인체감지센서
//
void setup() {
pinMode(rainingPin, INPUT);
pinMode(pir, INPUT);
myservo1.attach(9);
myservo2.attach(10);
}
//
void loop() {
int value = digitalRead(rainingPin); // 빗방울 감지센서 값
int state = digitalRead(pir); // 인체감지센서 값
//
if(state == HIGH){
if(value == 1){
myservo1.write(120); myservo2.write(120); delay(3000);
myservo1.write( 0); myservo2.write( 0); delay(3000);
}
else{ // if(value == 0)
myservo1.write(120); delay(3000); myservo1.write(0); delay(3000);
}
}
}
메이트님의 댓글
메이트 작성일감사합니다 좋은 하루 보내세요 ㅎㅎ