BASIC4MCU | 질문게시판 | 이 코드를 최적화 할 수 있을까요?
페이지 정보
작성자 아두이노마스터 작성일2019-11-21 11:27 조회6,201회 댓글1건본문
const int trig1=2,echo1=3;
const int trig2=4,echo2=5;
const int buz1=8,buz2=7;
//
int distance1,distance2;
//
void setup(){
pinMode(echo1,INPUT); pinMode(trig1,OUTPUT);
pinMode(echo2,INPUT); pinMode(trig2,OUTPUT);
pinMode(buz1,OUTPUT); pinMode(buz2,OUTPUT);
}
//
void loop(){
digitalWrite(trig1,HIGH); delayMicroseconds(10); digitalWrite(trig1,LOW);
distance1=pulseIn(echo1,HIGH)*340/2/10000;
//
if (distance1<250){ tone(buz1, 200,20); delay(distance1*2); }
if (distance2<180){ tone(buz1, 400,100); delay(distance1*1); }
if(distance1< 110){tone(buz1,400,200); delay(distance1*0.8);}
if(distance1< 50){tone(buz1,200,1000); delay(1000);}
else { noTone(buz1); }
//
delay(100);
//
digitalWrite(trig2,HIGH); delayMicroseconds(10); digitalWrite(trig2,LOW);
distance2=pulseIn(echo2,HIGH)*340/2/10000;
//
if (distance2<250){ tone(buz2, 200,20); delay(distance2*2); }
if (distance2<180){ tone(buz2, 400,100); delay(distance2*1); }
if(distance2< 110){tone(buz2,400,200); delay(distance2*0.8);}
if(distance2< 50){tone(buz2,200,1000); delay(1000);}
else { noTone(buz2); }
//
delay(100);
}
초음파 센서 2개와 부저 2개를 이용해서 안경을 만들고 있습니다.
250cm내로 인식이 되면 소리가 울리기 시작해서 가까워 질수록 부저톤이 올라가고 점점 빨라지다가 50cm 이내로 들어오면 계속 울리게 하는 코드인데요
실제로 사용해보니 반응속도가 느리거나 렉이 걸리기도 해서 코드 수정으로 해결 가능한지 여쭙고 싶습니다.
댓글 1
조회수 6,201master님의 댓글
master 작성일
delay(100);
거리 측정 후 100ms 딜레이는 50ms로 변경 가능합니다.
(측정 오차는 조금 증가합니다.)
//
부저용 딜레이는 딜레이를 사용하지말고 구동해보세요