#include <LiquidCrystal_I2C.h> //Menambahkan library LCD I2c 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2); //Mengatur alamat komunikasi LCD
int engineSwitch = 7;//Membuat variabel untuk pin 7
int dataSwitch;//Membuat variabel untuk membaca input pin 7
int nilai;//Membuat variabel untuk menyimpan kondisi input
int led = 13;//Membuat variabel untuk pin 13
void setup() {
//Inisialisasi LCD dan menampilkan tulisan awal
lcd.init();
lcd.backlight();//Menghidupkan backlight LCD
lcd.setCursor(2,0);//Mengatur posisi tulisan
lcd.print("Ready to GO!");//Menampilkan tulisan awal
pinMode(engineSwitch, INPUT_PULLUP);//Mengatur pin 7 sebagai input (pull up internal)
pinMode(led, OUTPUT);//Mengatur pin 13 sebagai output berupa LED
}
void loop() {
dataSwitch = digitalRead(engineSwitch);//Membaca tombol input pin 7
//Program jika tombol ditekan dan bernilai "LOW" maka tambah 1 pada variabel nilai
if (dataSwitch == 0) {
nilai++;
delay(300);//Jeda pembacaan tombol
//Program jika tombol ditekan pertama kali
if (nilai == 1) {
digitalWrite(led, HIGH);//Menghidupkan led jika nilai sama dengan 1
lcd.clear();//Menghapus tulisan sebelumnya
lcd.setCursor(0,1);//Mengatur posisi tulisan
lcd.print("Start ENGINE");//Menampilkan tulisan Start ENGINE
}
//Program jika tombol ditekan kedua kali
if (nilai == 2) {
digitalWrite(led, LOW);//Mematikan led jika nilai sama dengan 2
lcd.clear();//Menghapus tulisan sebelumnya
lcd.setCursor(0,0);//Mengatur posisi tulisan
lcd.print("Stop (!)");//Menampilkan tulisan Stop dan tanda seru
lcd.setCursor(6,1);//Mengatur posisi tulisan
lcd.print("ENGINE");//Menampilkan tulisan ENGINE
nilai = 0;//Mereset nilai menjadi 0
}
}
}