#define TrigPin 27 //สร้างตัวแปร TrigPinG ต่อกับ pin 27
#define EchoPin 26 //สร้างตัวแปร EchoPin ต่อกับ pin 26
int G=19, Y=18, R=5;
float duration_uS, dis_cm; //สร้างตัวแปร duration_uS เก็บค่าระยะห่าง หน่วยเป็นไมโครวินาที
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); // ให้ขา TrigPin สร้างสัญญาณ pulse
delayMicroseconds(10); // รอ 10/1,000,000 sec
digitalWrite(TrigPin, LOW);
duration_uS = pulseIn(EchoPin, HIGH); // วัดระยะเวลาของสัญญาณ pulse จากขา EchoPin
dis_cm = 0.0173681 * duration_uS; // แปลงอัตราความเร็วของเสียงในอากาศเป็นระยะทาง
Serial.print("distance: ");
Serial.print(dis_cm); // ระยะทางที่วัดได้จะอยู่ในช่วง 2-400 cm
Serial.println(" cm");
if (dis_cm > 60) {
digitalWrite(G,HIGH);
digitalWrite(Y,LOW);
digitalWrite(R,LOW);
} else if (dis_cm >= 40 & dis_cm <= 60) {
digitalWrite(G,LOW);
digitalWrite(Y,HIGH);
digitalWrite(R,LOW);
} else {
digitalWrite(G,LOW);
digitalWrite(Y,LOW);
digitalWrite(R,HIGH);
}
delay(500);
}