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