#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);
}
}
Comments