#define TrigPin 14
#define EchoPin 27
int G=21, Y=19, R=18;
float duration_uS, distance_cm;
void setup() {
Serial.begin (115200);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(G, OUTPUT);
pinMode(Y, OUTPUT);
pinMode(R, OUTPUT);
}
void loop() {
digitalWrite(TrigPin, HIGH); // สร้างสัญญาณ pulse 10-microsecond ให้ขา TrigPin
delayMicroseconds(10); // รอ 1/1,000,000 sec
digitalWrite(TrigPin, LOW);
duration_uS = pulseIn(EchoPin, HIGH); // วัดระยะเวลาของสัญญาณ pulse จากขา EchoPin
distance_cm = 0.0173681 * duration_uS; // แปลงอัตราความเร็วของเสียงในอากาศเป็นระยะทาง 2-400 cm
Serial.print("distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
if (distance_cm > 60) {
digitalWrite(G,HIGH);
digitalWrite(Y,LOW);
digitalWrite(R,LOW);
} else if (distance_cm >= 40 & distance_cm <= 60) {
digitalWrite(G,LOW);
digitalWrite(Y,HIGH);
digitalWrite(R,LOW);
} else {
digitalWrite(G,LOW);
digitalWrite(Y,LOW);
digitalWrite(R,HIGH);
}
delay(500);
}