const byte dangerLedPin = 8;
const byte warningLedPin = 9;
#define PIN_PROXIMITY_TRIGGER 3
#define PIN_PROXIMITY_ECHO 7
#define PIN_BUZZER 4
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(dangerLedPin, OUTPUT);
digitalWrite(dangerLedPin, LOW);
pinMode(warningLedPin, OUTPUT);
digitalWrite(warningLedPin, LOW);
pinMode(PIN_PROXIMITY_TRIGGER, OUTPUT);
pinMode(PIN_PROXIMITY_ECHO, INPUT);
digitalWrite(PIN_PROXIMITY_TRIGGER, LOW);
pinMode(PIN_BUZZER, OUTPUT);
}
int measureProximityDistance() {
// Start a new measurement:
digitalWrite(PIN_PROXIMITY_TRIGGER, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_PROXIMITY_TRIGGER, LOW);
// Read the result:
int duration = pulseIn(PIN_PROXIMITY_ECHO, HIGH);
int distance = duration / 58;
Serial.print("Distance in CM: ");
Serial.println(distance );
return distance;
}
void loop() {
// put your main code here, to run repeatedly:
while (true) {
int distance = measureProximityDistance();
if (distance < 150) {
digitalWrite(warningLedPin, HIGH);
if (distance < 100) {
tone(PIN_BUZZER, 262, 90);
digitalWrite(dangerLedPin, HIGH);
} else {
digitalWrite(dangerLedPin, LOW);
}
} else {
digitalWrite(warningLedPin, LOW);
}
delay(100 );
}
}