#define redLed 3 #define yellowLed 4 #define greenLed 5 #define pbPin 6 int pbState = 0; #define TRIG 7 #define ECHO 8 long distance, duration; #define buzPin 9 void setup() { pinMode(redLed, OUTPUT); pinMode(yellowLed, OUTPUT); pinMode(greenLed, OUTPUT); pinMode(pbPin, INPUT); pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT); pinMode(buzPin, OUTPUT); Serial.begin(9600); digitalWrite(greenLed, LOW); digitalWrite(yellowLed, LOW); digitalWrite(redLed, LOW); } void loop() { pbState = digitalRead(pbPin); if (pbState == HIGH) { digitalWrite(TRIG, LOW); delayMicroseconds(2); digitalWrite(TRIG, HIGH); delayMicroseconds(10); digitalWrite(TRIG, LOW); duration = pulseIn(ECHO, HIGH); distance = duration / 2 / 29; if (distance >= 100) { digitalWrite(greenLed, HIGH); digitalWrite(yellowLed, LOW); digitalWrite(redLed, LOW); } else if (distance >= 50) { digitalWrite(greenLed, LOW); digitalWrite(yellowLed, HIGH); digitalWrite(redLed, LOW); tone(buzPin, 4000); delay(1000); noTone(buzPin); } else { digitalWrite(greenLed, LOW); digitalWrite(yellowLed, LOW); digitalWrite(redLed, HIGH); tone(buzPin, 4000); delay(500); digitalWrite(redLed, LOW); noTone(buzPin); } Serial.print("distance="); Serial.println(distance); } }