정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

초음파 센서로 장애물 감지에 따른 소리 출력 문의 합니다.
seonseon | 2015-06-05

초음파 센서를 이용해서 장애물이 감지 되면 소리를 출력하는데 장애물이 가까워질수록 소리출력이 빨라지고 멀어질 수록 소리출력이 느려지는 기능을 나타내었습니다. 근데 장애물이 120cm이하에서만 소리 출력을 나타내고 싶은데 지금 상태에서는... 장애물 감지 전에도 계속 소리출력이 됩니다.......이 문제는 어떻게 해결해야하나요?ㅜ

#define TRIG 2
#define ECHO 3

void setup(){
pinMode(TRIG,OUTPUT);
pinMode(ECHO,INPUT);
}

void loop(){
digitalWrite(TRIG,LOW);
delayMicroseconds(2);
digitalWrite(TRIG,HIGH);
delayMicroseconds(10);
digitalWrite(TRIG,LOW);;

long distance = pulseIn(ECHO, HIGH)/58.2;

tone(8, 1000, 20);
delay(100);
tone(8, 1000, 20);

delay(distance);
}

 

소스입니다.

프로필사진

SaBo 2015-06-05 15:04:45

질문자님께서 말씀하신대로 장애물이 가까워질수록 소리 출력이 빨라지고

장애물이 멀어질 수록 소리출력이 느려지는 소스는 잘 넣으셨네요~

하지만 원하시는 동작 중 하나인 120cm 이상일 때 울리지 않게 하는 내용은 없네요~

 

거리에 따라 소리를 내는 함수를 120cm 이하에서만 동작하도록 조건문을 달아 주시면 됩니다.

#define TRIG 2
#define ECHO 3

void setup(){
pinMode(TRIG,OUTPUT);
pinMode(ECHO,INPUT);
}

void loop(){
digitalWrite(TRIG,LOW);
delayMicroseconds(2);
digitalWrite(TRIG,HIGH);
delayMicroseconds(10);
digitalWrite(TRIG,LOW);;

long distance = pulseIn(ECHO, HIGH)/58.2;

if(distance < 120)

{

tone(8, 1000, 20);
delay(100);
tone(8, 1000, 20);

delay(distance);

}
}

프로필사진

Klant 2015-06-05 15:11:16

Sabo 님께서 친절히 답변해주셨네요^^

소스를 보면 알겠지만, 조건문이 없었기 때문에 계속 소리가 난 것입니다

프로필사진

seonseon 2015-06-05 15:18:20

감사합니다!!

이전글   |    아두이노 회로 프로그램 Fritzing 관련 질문 2015-06-04
다음글   |    앱인벤터 관련 2015-06-05