#define TRIG_PIN_LEFT 2
#define ECHO_PIN_LEFT 3
#define TRIG_PIN_RIGHT 4
#define ECHO_PIN_RIGHT 5
#define GREEN_LED_PIN 6
#define YELLOW_LED_PIN 7
const int DISTANCE_THRESHOLD = 100; // Distance in cm to trigger detection
const int DELAY_TIME = 100; // Delay between readings in milliseconds
void setup() {
pinMode(TRIG_PIN_LEFT, OUTPUT);
pinMode(ECHO_PIN_LEFT, INPUT);
pinMode(TRIG_PIN_RIGHT, OUTPUT);
pinMode(ECHO_PIN_RIGHT, INPUT);
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(YELLOW_LED_PIN, OUTPUT);
Serial.begin(9600);
}
long readUltrasonicSensor(int trigPin, int echoPin) {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
return duration * 0.034 / 2; // Convert to distance in cm
}
void loop() {
long distanceLeft = readUltrasonicSensor(TRIG_PIN_LEFT, ECHO_PIN_LEFT);
long distanceRight = readUltrasonicSensor(TRIG_PIN_RIGHT, ECHO_PIN_RIGHT);
bool leftDetected = distanceLeft < DISTANCE_THRESHOLD;
bool rightDetected = distanceRight < DISTANCE_THRESHOLD;
if (leftDetected && rightDetected) {
digitalWrite(GREEN_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, HIGH);
Serial.println("Yellow: Cars detected on both sides");
} else if (leftDetected || rightDetected) {
digitalWrite(GREEN_LED_PIN, HIGH);
digitalWrite(YELLOW_LED_PIN, LOW);
Serial.println("Green: Car detected on one side");
} else {
digitalWrite(GREEN_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, LOW);
Serial.println("Off: No cars detected");
}
delay(DELAY_TIME);
}