//Nama  : Syafa Dwi Devita
//Kelas : 5CD
//NIM   :062030701674

//mendeklarasikan tipe data dan variabel
const int trigPin = 3;        //trigPin di pin 5 arduino
const int echoPin = 2;        //echopPin di pin 18 arduino
const int merahPin = 12;     //led merah di pin 4 arduino
const int hijauPin = 13;     //led hijau di pin 2 arduino

//mengukur jarak yang terbaca range 10-100 cm
int maximumRange = 100;   
int minimumRange = 10;

#define KecepatanSuara 0.034 //menghitung jarak ke suatu objek/benda

long durasi; //pengukuran durasi dan jarak
float Jarak;

void setup() { 
  Serial.begin(9600);         //nomor serial mikrokontroller arduino uno
  pinMode(trigPin, OUTPUT);     //trigPin sebagai output (keluaran)
  pinMode(echoPin, INPUT);      //echoPin sebagai input (masukan)
  pinMode(merahPin, OUTPUT);    //led merah sebagai output (keluaran)
  pinMode(hijauPin, OUTPUT);    //led hijau sebagai output (keluaran)
}

void loop() {    //penentuan jarak
  digitalWrite(trigPin, LOW);
  delayMicroseconds(5);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  durasi = pulseIn(echoPin, HIGH);
  
  Jarak = durasi * KecepatanSuara/2;  //perhitungan untuk dijadikan jarak
  
  Serial.print("Jarak (cm): ");
  Serial.println(Jarak);
  delay(1000);

//jika jarak kurang dari 10cm atau lebih dari 100cm 
//maka led merah akan menyala
  if(Jarak <10 || Jarak >100){
   digitalWrite(12, HIGH);   //led merah high (hidup)
   digitalWrite(13, LOW);    //led hijau low (mati)
}
//jika jarak terbaca antara 10cm - 100 cm \
//maka led hijau akan menyala
  if(Jarak >10 && Jarak <100){
   digitalWrite(12, LOW);    //led merah low (mati)
   digitalWrite(13, HIGH);   //led hijau high (hidup)
}
}