const int trigPin = D3;
const int echoPin = D2;
const int greenLed = D4;
const int yellowLed = D5;
const int redLed = D6;
const int buzzer = D7;
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(greenLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(redLed, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
// Send ultrasonic pulse
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Measure echo time
long duration = pulseIn(echoPin, HIGH);
// Calculate distance in cm
float distance = duration * 0.0340 / 2.0;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Turn everything OFF first
digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(redLed, LOW);
noTone(buzzer);
// Parking logic
if (distance > 100) {
digitalWrite(greenLed, HIGH);
}
else if (distance >= 50) {
digitalWrite(yellowLed, HIGH);
}
else {
digitalWrite(redLed, HIGH);
tone(buzzer, 1000);
}
delay(300);
}Loading
st-nucleo-c031c6
st-nucleo-c031c6