#include <LiquidCrystal_I2C.h>
#define LDR_PIN 4
#define ECHO_PIN 14
#define TRIG_PIN 12
LiquidCrystal_I2C lcd(0x27,16,2);
byte Heart[] = { B00000,
B01010,
B01110,
B00100,
B10101,
B10101,
B01110,
B00100 };
void setup()
{
pinMode(LDR_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(115200);
pinMode(2, OUTPUT); pinMode(13, INPUT_PULLUP); Serial.begin(115200);
// setup LCD--
lcd.init();
lcd.clear();
lcd.backlight();
// membuat karakter baru
// menampilkan karakter
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(13, INPUT_PULLUP);
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop()
{ // Clear the condition
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
// Generate ultrasonic signal
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Read ultrasonic signal
int duration = pulseIn(ECHO_PIN, HIGH);
// Calculating the distance
float distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" CM");
Serial.println();
delay(1000);
Serial.print("Cahaya: ");
lcd.setCursor(0,0);
if (digitalRead(LDR_PIN) == LOW) {
Serial.println("Terang");
lcd.print("Terang");
lcd.print("jarak : ") ;
lcd.print(distance);
} else {
Serial.println("Gelap");
lcd.print("Gelap");
lcd.print("jarak : " );
lcd.print(distance);
}
}