// Define pins const int trigPin = 10; // Trig pin of the HC-SR04 const int echoPin = 11; // Echo pin of the HC-SR04 const int greenPin = 5; const int yellowPin = 6; const int redPin = 7; // Variables long duration; int distance; int delayTime = 10; int disRedLED = 10; int disYellowLED = 20; int disGreenLED = 30; void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(greenPin, OUTPUT); pinMode(yellowPin, OUTPUT); pinMode(redPin, OUTPUT); } void loop() { digitalWrite(greenPin, LOW); digitalWrite(yellowPin, LOW); digitalWrite(redPin, LOW); // Trigger the sensor by sending a 10 microsecond pulse digitalWrite(trigPin, LOW); delayMicroseconds(delayTime); digitalWrite(trigPin, HIGH); delayMicroseconds(delayTime); digitalWrite(trigPin, LOW); // Measure the duration of the echo pulse duration = pulseIn(echoPin, HIGH); // Calculate the distance in centimeters distance = duration * 0.034 / 2; // Print the distance to the Serial Monitor Serial.print("Distance: "); Serial.print(distance); Serial.println(" cm"); if (distance > disGreenLED) { digitalWrite(greenPin, HIGH); digitalWrite(yellowPin, LOW); digitalWrite(redPin, LOW); } if (distance >= disRedLED && distance <= disGreenLED) { digitalWrite(greenPin, LOW); digitalWrite(yellowPin, HIGH); digitalWrite(redPin, LOW); } if (distance < disRedLED) { digitalWrite(greenPin, LOW); digitalWrite(yellowPin, LOW); digitalWrite(redPin, HIGH); } // Wait for a short time before taking the next measurement delay(500); }