// Library dan penamaan LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
// Pengalamatan pin
int tombol_obat = 2;
int tombol_jumlahobat = 3;
int tombol_mulai = 4;
int tombol_cancel = 5;
int a = 0;
int b = 0;
int c = 0;
int d = 0;
// Pembuatan variabel
int hitungMundur = 0;
int jumlah = 0;
String nama_obat = "";
int data_obat = 0;
int jumlah_obat = 1;
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.clear();
pinMode(tombol_obat, INPUT);
pinMode(tombol_jumlahobat, INPUT);
pinMode(tombol_mulai, INPUT);
pinMode(tombol_cancel, INPUT);
attachInterrupt(digitalPinToInterrupt(3), interrupt, RISING);
}
void interrupt()
{
hitungMundur = 0;
}
void loop()
{
if (digitalRead(tombol_obat) == HIGH && c == 0)
{data_obat += 1;
c = 1;}
else if (digitalRead(tombol_obat) == LOW && c == 1)
{c = 0;}
if (data_obat == 0)
{nama_obat = "Gol. Darah A ";}
else if (data_obat == 1)
{nama_obat = "Gol. Darah B ";}
else if (data_obat == 2)
{nama_obat = "Gol. Darah AB";}
else if (data_obat >= 3)
{data_obat = 0;}
if (digitalRead(tombol_jumlahobat) == HIGH && d == 0)
{ jumlah_obat += 1;
if(jumlah_obat > 5){
jumlah_obat = 1;
}
d = 1;}
else if (digitalRead(tombol_jumlahobat) == LOW && d == 1)
{d = 0;}
if (digitalRead(tombol_mulai) == HIGH && a == 0)
{hitungMundur = 5;
a = 1;}
else if (digitalRead(tombol_mulai) == LOW && a == 1)
{a = 0;}
lcd.setCursor(0, 0);
lcd.print("Obat : ");
lcd.print(nama_obat);
lcd.setCursor(0, 1);
lcd.print("Jumlah : ");
lcd.print(jumlah_obat);
if(digitalRead(tombol_cancel)==HIGH)
{hitungMundur = 0;}
if(hitungMundur > 0)
{delay(1000);
hitungMundur -= 1;}
lcd.setCursor(0, 2);
lcd.print("Timer : ");
lcd.print(hitungMundur);
}