#include <EasyUltrasonic.h>
#define TRIGPIN 14
#define ECHOPIN 27
EasyUltrasonic ultrasonic;
unsigned long yellowStartTime = 0;
unsigned long blueStartTime = 0;
unsigned long redStartTime = 0;
bool yellowActive = false;
bool blueActive = false;
bool redActive = false;
void setup() {
Serial.begin(115200);
pinMode(4, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
ultrasonic.attach(TRIGPIN, ECHOPIN);
delay(100);
}
void loop() {
float distanceCM = ultrasonic.getDistanceCM();
if (distanceCM <= 10 && !yellowActive) {
yellowStartTime = millis();
yellowActive = true;
digitalWrite(4, HIGH);
}
if (yellowActive && millis() - yellowStartTime >= 10000) {
digitalWrite(4, LOW);
yellowActive = false;
}
if (distanceCM <= 20 && !blueActive) {
blueStartTime = millis();
blueActive = true;
digitalWrite(16, HIGH);
}
if (blueActive && millis() - blueStartTime >= 10000) {
digitalWrite(16, LOW);
blueActive = false;
}
if (distanceCM <= 30 && !redActive) {
redStartTime = millis();
redActive = true;
digitalWrite(17, HIGH);
}
if (redActive && millis() - redStartTime >= 10000) {
digitalWrite(17, LOW);
redActive = false;
}
delay(100);
}