#define LED 12
#define TRG 9
#define ECH 8
#define SPK 11
#define Sp 340 //音速(m/sec)
#define DS 100 //接近距離(cm)
#define frq 2000 //ブザー周波数
void setup() {
pinMode(LED,OUTPUT);
pinMode(SPK,OUTPUT);
pinMode(TRG,OUTPUT);
pinMode(ECH,INPUT);
Serial.begin(115200);
Serial.println("OK");
}
void loop() {
double dist;
dist=getDis();
if(dist>=0 && dist<=DS){
digitalWrite(LED,HIGH);
tone(SPK,frq);
}else{
digitalWrite(LED,LOW);
noTone(SPK);
}
Serial.print(dist);
Serial.println("cm");
delay(100);
}
double getDis(void){
double dis;
digitalWrite(TRG,LOW);
delayMicroseconds(2);
digitalWrite(TRG,HIGH);
delayMicroseconds(10);
digitalWrite(TRG,LOW);
dis=pulseIn(ECH,HIGH);
if(dis>0){
dis=(dis/2)*Sp*0.0001;
return dis;
}
return -1;
}