#include <NewPing.h>
#define TRIGGER_PIN 4 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 3 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 500 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
#define led_green 8
#define led_blue 9
#define led_red 10
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
int dist_cm;
void setup() {
Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
pinMode(led_green, OUTPUT);
pinMode(led_blue, OUTPUT);
pinMode(led_red, OUTPUT);
}
void loop() {
delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
dist_cm=sonar.ping_cm();
Serial.print("Ping: ");
Serial.print(dist_cm); // Send ping, get distance in cm and print result (0 = outside set distance range)
Serial.println("cm");
if (dist_cm>=100){
digitalWrite(led_green, HIGH);
digitalWrite(led_blue, LOW);
digitalWrite(led_red, HIGH);
} else{
if (dist_cm<100 && dist_cm>=50){
digitalWrite(led_green, LOW);
digitalWrite(led_blue, HIGH);
digitalWrite(led_red, HIGH);
} else {
if (dist_cm<50 && dist_cm>=30){
digitalWrite(led_green, HIGH);
digitalWrite(led_blue, HIGH);
digitalWrite(led_red, LOW);
} else{
digitalWrite(led_green, HIGH);
digitalWrite(led_blue, HIGH);
digitalWrite(led_red, LOW);
delay(500);
digitalWrite(led_red, HIGH);
delay(500);
}
}
}
}