// Ade Tirta Rahmat Hidayat - 1103203212

#define RED_PIN D6    
#define GREEN_PIN D5  
#define BLUE_PIN D3   

#define TRIG_PIN D7   
#define ECHO_PIN D8    

void setup() {   
  pinMode(RED_PIN, OUTPUT);   
  pinMode(GREEN_PIN, OUTPUT);   
  pinMode(BLUE_PIN, OUTPUT); 

  pinMode(TRIG_PIN, OUTPUT);   
  pinMode(ECHO_PIN, INPUT); 
  
  Serial.begin(9600); 
}  

void loop() { 
  long duration;   
  float distance; 
    
  // Mengirimkan sinyal trigger
  digitalWrite(TRIG_PIN, LOW);   
  delayMicroseconds(2);   
  digitalWrite(TRIG_PIN, HIGH);   
  delayMicroseconds(10);   
  digitalWrite(TRIG_PIN, LOW); 

  // Membaca durasi dari sinyal echo
  duration = pulseIn(ECHO_PIN, HIGH);   
  distance = (duration * 0.034) / 2;  

  Serial.print("Distance: "); 
  Serial.println(distance); 

  // Pengaturan LED berdasarkan jarak yang terukur
  if (distance <= 120) {  // Jarak <= 120 cm, LED cyan menyala (campuran hijau + biru)
    digitalWrite(RED_PIN, HIGH);    // Mematikan merah
    digitalWrite(GREEN_PIN, LOW);    // Menyalakan hijau
    digitalWrite(BLUE_PIN, LOW);     // Menyalakan biru

  } else if (distance > 120 && distance < 260) {  // Jarak > 120 cm dan < 260 cm, LED magenta menyala (campuran merah + biru)
    digitalWrite(RED_PIN, LOW);     // Menyalakan merah
    digitalWrite(GREEN_PIN, HIGH);   // Mematikan hijau
    digitalWrite(BLUE_PIN, LOW);     // Menyalakan biru

  } else if (distance >= 260) {  // Jarak >= 260 cm, LED biru menyala
    digitalWrite(RED_PIN, HIGH);    // Mematikan merah
    digitalWrite(GREEN_PIN, HIGH);   // Mematikan hijau
    digitalWrite(BLUE_PIN, LOW);     // Menyalakan biru
  }

  delay(500); 
}
$abcdeabcde151015202530fghijfghij