#define sdReverse 5
#define trigger 2
#define echo 15
#define led 4
#define buzzer 18
bool reverseOn;
void setup() {
Serial.begin(115200);
pinMode(sdReverse, INPUT);
pinMode(led, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
void loop() {
delay(10);
reverseOn = digitalRead(sdReverse);
if(reverseOn == HIGH) {
distanceSensor();
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
noTone(buzzer);
}
}
void distanceSensor() {
digitalWrite(trigger, HIGH);
delay(10);
digitalWrite(trigger, LOW);
int duration = pulseIn(echo, HIGH);
float cmMsec = duration / 58;
buzzerTone(cmMsec);
}
void buzzerTone(float distance) {
if(distance < 30 && distance > 20) {
tone(buzzer,200);
} else if (distance < 20 && distance > 15) {
tone(buzzer,400);
} else if (distance < 15 && distance > 10) {
tone(buzzer,600);
} else if (distance < 10 && distance > 5) {
tone(buzzer,800);
} else if (distance < 5) {
tone(buzzer,1000);
} else {
noTone(buzzer);
}
}