//Push Button Fiesta Counter
//Program menggunakan dua library, yaitu Wire untuk komunikasi I2C dan LiquidCrystal_I2C untuk mengontrol LCD dengan menggunakan modul I2C.
#include <Wire.h> ;
#include <LiquidCrystal_I2C.h> ;
LiquidCrystal_I2C lcd(0x27, 16,2) ; //LCD diinisialisasi dengan alamat 0x27, dan ukuran 16x2.
int angka ; //Variabel angka
int led; //Variabel led
int speaker; //Variabel speaker
void setup() {
{
lcd.init() ;
lcd.backlight() ; //LCD diinisialisasi dan backlight diaktifkan.
}
pinMode(5, INPUT_PULLUP) ; //Pin 5 diatur sebagai input dengan pull-up resistor internal.
pinMode(7, INPUT_PULLUP) ; //Pin 7 diatur sebagai input dengan pull-up resistor internal.
pinMode(9, INPUT_PULLUP) ; ////Pin 9 diatur sebagai input dengan pull-up resistor internal.
pinMode(4, OUTPUT); //Pin 4 diatur sebagai output.
pinMode(6, OUTPUT); //Pin 6 diatur sebagai output.
pinMode(10, OUTPUT); //Pin 10 diatur sebagai output.
pinMode(2, OUTPUT); //Pin 2 diatur sebagai output.
}
int angka1 ;
//Bagian utama program yang berjalan secara terus menerus.
void loop() {
//Mengecek apakah tombol 5, 7, atau 9 ditekan (logika 0).
//Jika ya, melakukan aksi terkait seperti penambahan nilai, mengaktifkan LED, dan menampilkan informasi di LCD.
if (digitalRead(5) == 0) {
lcd.clear() ;
angka++ ;
digitalWrite(4, HIGH);
delay (500);
digitalWrite(4, LOW);
lcd.print("Musda Fadli") ;
lcd.setCursor(2, 1) ;
lcd.print(angka) ;
lcd.setCursor(10, 1) ;
lcd.print(angka1) ;
}
if (digitalRead(7) == 0) {
lcd.clear() ;
angka1++ ;
digitalWrite(6, HIGH);
delay (500);
digitalWrite(6, LOW);
lcd.print("Musda Fadli") ;
lcd.setCursor(2, 1) ;
lcd.print(angka) ;
lcd.setCursor(9, 1) ;
lcd.print(angka1) ;
}
if (digitalRead(9) == 0) {
lcd.clear() ; //Membersihkan LCD.
angka=0 ;
angka1=0 ;
//Nyalakan LED
digitalWrite (10, HIGH);
delay (500);
//Mainkan nada di pin#8 dg.frekuensi 261Hz selama 500 ms
tone (2, 261);
delay (500);
//Matika LED
digitalWrite (10, LOW);
//Mainkan nada di pin#8 dg.frekuensi 392Hz selama 500 ms
tone (2, 392);
delay (500);
delay (150);
}
}