//definsikan setiap triggernya
#define pinTrigger 3
#define pinEcho 2
#define pinBuzzer 13
//membuat penampung data(waktu dan jarak)
long time, distance;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
// tentukan pinMode untuk fungsi dari stiap trigger
pinMode(pinBuzzer, OUTPUT);
pinMode(pinTrigger, OUTPUT);
//sebagai output karena pin trigger berguna untuk memberikan sinyal
pinMode(pinEcho, INPUT);
//karena pinEcho nanti menerima sinyal dari pin trigger jadi input
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(pinTrigger, LOW);//dimatikan dulu
delayMicroseconds(2);//di delay kan
digitalWrite(pinTrigger, HIGH);//dihidupkan
delayMicroseconds(10);
digitalWrite(pinTrigger, LOW);//dimatikan
time = pulseIn(pinEcho, HIGH);// pada saat pin echo dihidupkan
distance = time / 58.2;
//saat jarak sudah diketahui,kita tentukan jarak berapa buzzernya berbunyi
//misalkan jarak buzzer akan berbunyi adalah 180mm - 250mm
if(distance >= 180 && distance < 220)
{
tone(pinBuzzer, 100); //frekuensinya 100hz
delay(30);//hidupnya selama 30ms
noTone(pinBuzzer);
delay(200);
}
if(distance >= 130 && distance < 180)
{
tone(pinBuzzer, 200); //frekuensinya 100hz
delay(30);//hidupnya selama 30ms
noTone(pinBuzzer);
delay(150);
}
if(distance >= 70 && distance < 130)
{
tone(pinBuzzer, 300); //frekuensinya 100hz
delay(30);//hidupnya selama 30ms
noTone(pinBuzzer);
delay(100);
}
if(distance >= 10 && distance < 70)
{
tone(pinBuzzer, 400); //frekuensinya 100hz
delay(30);//hidupnya selama 30ms
noTone(pinBuzzer);
delay(50);
}
if(distance >= 1 && distance < 10)
{
tone(pinBuzzer, 500); //frekuensinya 100hz
delay(30);//hidupnya selama 30ms
noTone(pinBuzzer);
}
else
{
noTone(pinBuzzer);
}
}