답변 : 아두이노 질문
페이지 정보
작성자 master 작성일18-06-12 17:34 조회7,659회 댓글0건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-06-12 오후 5:36:31
// by Ok-Hyun Park
적외선 센서에 손을 3초동안 유지된 후에 그 값이 지속되어야 하는데 센서에 손이 떨어지면 그 값이 지속되지 않습니다.
한번 값을 읽으면 그 값이 유지되도록 어떻게 코드를 짜야할까요??
//
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
SoftwareSerial mySerial(10,11); // RX,TX
//
int IRPin=8;
int ledPin=13;
//
char flag=0;
int count;
//
void setup(){
pinMode(3,OUTPUT);
pinMode(13,OUTPUT);
pinMode(8,INPUT);
Serial.begin(9600);
mySerial.begin(9600);
//
mp3_set_serial(mySerial); // set softwareSerial for DFPlayer-mini mp3 module
delay(1); // delay 1ms to set volume
mp3_set_volume(1); // value 0~30
}
//
void loop(){
sensor_timer();
//
digitalWrite(3,digitalRead(IRPin)); //read state of the PIR
delay(1000);
//
boolean play_state=digitalRead(3); // connect Pin3 to BUSY pin of player
if(play_state==HIGH){ mp3_next(); }
}
//
void sensor_timer(){
count=0;
if(!digitalRead(IRPin)){
if(flag==0){ flag=1;
while(!digitalRead(IRPin)){
delay(100);
if(++count>=30){ Serial.println("3sec"); digitalWrite(ledPin,HIGH); break; }
}
}
}
else{ flag=0; digitalWrite(ledPin,LOW); }
}
유지하는 것은 어렵지 않지만
같은 동작을 다시 하기 위해서는
값을 초기화 시켜야하는데
초기화 시키는 조건도 정해야합니다.
댓글 : 0
조회수 : 7,659
등록된 댓글이 없습니다.