#define GREEN_LED_PIN 6
#define YELLOW_LED_PIN 7
#define LEFT_CAR_BUTTON 8
#define RIGHT_CAR_BUTTON 9
const int DISTANCE_THRESHOLD = 100; // Distance in cm to trigger detection
const int DELAY_TIME = 1000; // Delay between readings in milliseconds
int leftCarDistance = 500; // Start with car far away
int rightCarDistance = 500; // Start with car far away
void setup() {
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(YELLOW_LED_PIN, OUTPUT);
pinMode(LEFT_CAR_BUTTON, INPUT_PULLUP);
pinMode(RIGHT_CAR_BUTTON, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
// Simulate left car movement
if (digitalRead(LEFT_CAR_BUTTON) == LOW) {
leftCarDistance = max(0, leftCarDistance - 50); // Move car closer faster
} else {
leftCarDistance = min(500, leftCarDistance + 10); // Move car away slowly
}
// Simulate right car movement
if (digitalRead(RIGHT_CAR_BUTTON) == LOW) {
rightCarDistance = max(0, rightCarDistance - 50); // Move car closer faster
} else {
rightCarDistance = min(500, rightCarDistance + 10); // Move car away slowly
}
bool leftDetected = leftCarDistance < DISTANCE_THRESHOLD;
bool rightDetected = rightCarDistance < 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");
}
Serial.print("Left car distance: ");
Serial.print(leftCarDistance);
Serial.print(" cm, Right car distance: ");
Serial.print(rightCarDistance);
Serial.println(" cm");
delay(DELAY_TIME);
}