cons int RS =23, EN = 22, D4 = 21, D5 = 19, D6 = 18, D7 = 5;
//fungsi untuk set biner yang dikirim ke port data
void lcd_port(char a){
digitalWrite(D4, LOW);
digitalWrite(D5, LOW);
digitalWrite(D6, LOW);
digitalWrite(D7, LOW);
if (a & 0x01) digitalWrite(D4, HIGH);
if (a & 0x02) digitalWrite(D5, HIGH);
if (a & 0b0100) digitalWrite(D6, HIGH);
if (a & 0b1000) digitalWrite(D7, HIGH);
}
void lcd_cmd(char b){
digitalWrite(RS, LOW);
lcd_port(b);
delayMicroseconds(40);
digitalWrite(EN, HIGH);
delayMicroseconds(40);
digitalWrite(EN, LOW);
}
//fungsi LCD Clear membersihkan tampilan
void lcd_clear(){
lcd_cmd(0b0000);
lcd_cmd(0b0001);
}
//fungsi setting di awal
void lcd_init(){
pinMode(RS, OUTPUT);
pinMode(EN, OUTPUT);
pinMode(D4, OUTPUT);
pinMode(D5, OUTPUT);
pinMode(D6, OUTPUT);
pinMode(D7, OUTPUT);
lcd_cmd(0b0010);
lcd_cmd(0b0010);
lcd_cmd(0b1000);
lcd_cmd(0b0000);
lcd_cmd(0b1110);
lcd_cmd(0b0000);
lcd_cmd(0b0110);
}
void setup() {
// put your setup code here, to run once:
lcd_init(); //akses dan konfigurasi
lcd_setCursor(0,0);
lcd_clear();
lcd_setCursor(0,0);
digitalWrite(RS, HIGH);
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}