/*
*Kecepatan gelombang suara bernilai 340 m/s, untuk 1 cm (0,01 m)
*memerlukan waktu 0,01/340 atau 0,0000294 s (29,4 us).
*Gelombang ultrasonik melakukan sebanyak 2 kali perjalanan yaitu saat pergi dan saat kembali.
*Setiap jarak tempuh 1 cm diperlukan waktu 29,4 us x 2 = 58,8 us.
*Dengan demikian untuk menghitung nilai jarak (dalam satuan cm)
*dapat ditentukan dengan menggunakan rumus jarak = waktu tempuh/ 58,8 s
*/
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd (0x27,24, 2);
const int trigPin = 9;
const int echoPin = 8;
int LED = 2;
int LED2 = 3;
long waktu;
int Distance;
void setup() {
// put your setup code here, to run once:
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT );
Serial.begin(9600);
lcd.begin(16,2);
lcd.init();
lcd.backlight();
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
waktu = pulseIn(echoPin, HIGH);
Distance = waktu/58.8;
delay(1000);
Serial.print("Distance =");
Serial.print(Distance);
Serial.print(" CM");
Serial.println();
if (Distance < 150)
{
digitalWrite(LED, HIGH);
lcd.setCursor(4,1);
lcd.print("LED 1 ON");
lcd.setCursor(0,0);
lcd.print("DISTANCE :");
lcd.print(Distance);
lcd.println(" Cm");
digitalWrite(LED2, LOW);
}
else
{
digitalWrite(LED, LOW);
lcd.setCursor(4,1);
lcd.print("LED 2 ON");
lcd.setCursor(0,0);
lcd.print("DISTANCE :");
lcd.print(Distance);
lcd.println(" Cm");
digitalWrite(LED2, HIGH);
}
}