BASIC4MCU | 질문게시판 | 아두이노 코딩 초음파센서
페이지 정보
작성자 아두이노초보66 작성일2019-11-23 13:39 조회8,814회 댓글1건본문
안녕하세요! 저번에 올린글에 답변을 해주셔서 감사드립니다.
근데 제가 long t,t1,t2;
t1=t2=millis();
bool flag=0;
t1=t2=millis(); 이런것들을 안배워서 잘모르는데 혹시 delay (딜레이)함수를 이용하여서 코딩 부탁드려도될까요? ㅠㅠ
초음파 센서를 사용하여 침입자를 탐지하고 경보 발생하기
1.초음파 센서에서 침입자 판단 기준 거리: 20[cm]
-20[cm]이내: 침입자 발생
-20[cm]초과: 침입자 없음
2.침입자가 발생하 경우경고음,경광등,경고 메시지 발생
-경고음: 부저음발생(BuzzerON)
-경광등: 빨간색 LED ON
-경고 메시지: 아래 메시지를 시리얼 모니터로 1초 마다 전송
“ Warning: Intruder Occurrence“
3.침입자가 없는 경우 경고음,경광등해제 및해제 메시지 발생
-경고음: 부저음소거(BuzzerOFF)
-경광등: 빨간색 LED OFF
-메시지: 아래 메시지를 시리얼 모니터로 1초 마다 전송
“ Normal: No Intruder“
#include <HC_SR04.h>
#define TRIG_PIN 84
#define ECHO_PIN 83
#define BUZ_PIN 11
#define R_LED 26
HC_SR04 ultra;
//
int dist;
bool flag=0;
lomg t,t1,t2;
//
void setup(){
ultra.begin(TRIG_PIN,ECHO_PIN);
pinMode(BUZ_PIN,OUTPUT);
Serial.begin(9600);
t1=t2=millis();
}
//
void loop(){
t=millis();
//
if((t-t1)>=100){ t1=t; // 100ms 마다 실행
dist=ultra.ReadDistanceCentimeter();
if(dist<=20){ flag=1; } // 20[cm]이내: 침입자 발생
else { flag=0; } // 20[cm]초과: 침입자 없음
}
//
if(flag){ tone(BUZ_PIN,300); digitalWrite(R_LED,HIGH); } // 20[cm]이내: 침입자 발생
else { noTone(BUZ_PIN); digitalWrite(R_LED,LOW ); } // 20[cm]초과: 침입자 없음
//
if((t-t2)>=1000){ t2=t; // 1000ms 마다 실행
if(flag){ Serial.println(“ Warning: Intruder Occurrence“); } // 20[cm]이내: 침입자 발생
else { Serial.println(“ Normal: No Intruder“); } // 20[cm]초과: 침입자 없음
}
}
출처 :https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=10813
댓글 1
조회수 8,814master님의 댓글
master 작성일
millis() 함수는 어차피 배워야 할 내용이므로
나중으로 미루지말고 지금 공부하세요