#define echoPin 2 //Echo Pin
#define trigPin 3 //Trigger Pin
#define LEDPinWhite 8 //Led default dari Arduino uno
#define LEDPinGreen 9 //Led default dari Arduino uno
#define LEDPinYellow 10 //Led default dari Arduino uno
#define LEDPinRed 11 //Led default dari Arduino uno
int maximumRange = 200; //kebutuhan akan maksimal range
int minimumRange = 00; //kebutuhan akan minimal range
long duration, distance; //waktu untuk kalkulasi jarak
void setup() {
Serial.begin (9600); //inisialiasasi komunikasi serial
//deklarasi pin
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPinWhite, OUTPUT);
pinMode(LEDPinGreen, OUTPUT);
pinMode(LEDPinYellow, OUTPUT);
pinMode(LEDPinRed, OUTPUT);
}
void loop() {
/* Berikut siklus trigPin atau echo pin yang digunakan
untuk menentukan jarak objek terdekat dengan memantulkan
gelombang suara dari itu. */
digitalWrite(trigPin, LOW);delayMicroseconds(2);
digitalWrite(trigPin, HIGH);delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//perhitungan untuk dijadikan jarak
distance = duration/58.2;
/* Kirim angka negatif ke komputer dan Turn LED ON
untuk menunjukkan "di luar jangkauan" */
if (distance >= maximumRange || distance <= minimumRange)
{
Serial.println("Objek diluar jarak!");
digitalWrite(LEDPinRed, HIGH);
digitalWrite(LEDPinGreen, LOW);
digitalWrite(LEDPinYellow, LOW);
digitalWrite(LEDPinWhite, LOW);
delay(500);
}
else {
if(distance < 200 && distance > 100 ) {
Serial.println("Objek terdeteksi : Lumayan Jauh");
digitalWrite(LEDPinRed, LOW);
digitalWrite(LEDPinGreen, LOW);
digitalWrite(LEDPinYellow, HIGH);
digitalWrite(LEDPinWhite, LOW);
} else if(distance < 100 && distance > 50) {
Serial.println("Objek terdeteksi : Cukup Dekat");
digitalWrite(LEDPinRed, LOW);
digitalWrite(LEDPinGreen, HIGH);
digitalWrite(LEDPinYellow, LOW);
digitalWrite(LEDPinWhite, LOW);
} else if (distance < 50 && distance > 0) {
Serial.println("Objek terdeteksi : Sangat Dekat");
digitalWrite(LEDPinRed, LOW);
digitalWrite(LEDPinGreen, LOW);
digitalWrite(LEDPinYellow, LOW);
digitalWrite(LEDPinWhite, HIGH);
}
//waktu tunda 50mS
delay(500);
}}