#include <TM1637Display.h>
#define PB 7
#define CLK 8 // deklarasi pin CLK terhubung ke pin 8 Arduino
#define DIO 9 // deklarasi pin DIO terhubung ke pin 9 Arduino
//Inisialisasi library TM1637Display dengan nama display
TM1637Display display(CLK, DIO);
#define Buz 4 //deklarasi pin 4 terkonek ke Buz
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff }; //deklarasi var array data[], nyalakan semua
uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 }; //deklarasi var array blank[], matikan semua
int det, m1, m2, h1, h2; //deklarasi variabel detik, menit dan jam
int jam; //deklarasi variabel jam menyatukan h2 dan h1
int menit;
int menuChoice; //deklarasi variabel pemilihan menu
bool colonFlag = false; // deklarasi variabel tipe boolean
int stat_PB=1;
void setup() {
display.setBrightness(0x0f); //set kecerahan display
display.setSegments(data); //nyalakan semua segmen
delay(500);
display.clear();
Serial.begin(9600);
m1=0; m2=3; h1=1, h2=2; jam=0; //set jam 21:30;
pinMode(PB, INPUT); //set pin PB sbg input
pinMode(PB, INPUT_PULLUP);
tone(Buz, 400);
Serial.println("!-------------------------------------------------------!");
Serial.println("! Menu Setting Jam & Alarm !");
Serial.println("! versi 1.0 !");
Serial.println("!-------------------------------------------------------!");
Serial.println("!Petunjuk : !");
Serial.println("!Masukkan hanya angka desimal untuk setting jam & alarm !");
Serial.println("!Masukkan karakter yang diminta yang muncul pada menu ! !");
Serial.println("!-------------------------------------------------------!");
Serial.println("!Pilih 1 untuk menu setting jam !");
Serial.println("!Pilih 2 untuk menu setting alarm !");
Serial.println("!Pilih 3 untuk keluar !");
Serial.println("!-------------------------------------------------------!");
noTone(Buz);
}
void loop() {
stat_PB=digitalRead(PB);
if (stat_PB==0) {
tone(Buz, 400); delay(50); noTone(Buz);
stat_PB=1;
menuSet();
}
}
void menuSet() {
while(Serial.available() == 0) {} // menunggu data serial masuk
menuChoice = Serial.read() - 48;// baca data serial, koreksi dg -48
switch (menuChoice) {
case 1:
// menu setting Jam
Serial.println("! ------- menu setting Jam -------- !");
Serial.print("Masukkan angka Puluhan Jam : ");
Serial.end(); //matikan Serial komunikasi
Serial.begin(9600); //aktifkan kembali
while(Serial.available() ==0 ) {} //tunggu hingga ada data serial masuk
h2 = Serial.read() - 48; //h2 = angka puluhan jam
Serial.println(h2); //cetak ke Serial Monitor
Serial.print("Masukkan angka Satuan Jam : ");
Serial.end(); //matikan Serial komunikasi
Serial.begin(9600); //aktifkan kembali
while(Serial.available()==0) {} //tunggu hingga ada data serial masuk
h1 = Serial.read() - 48; //h1 = angka satuan jam
Serial.println(h1); //cetak ke Serial Monitor
// menu setting Menit
Serial.print("Masukkan angka Puluhan Menit : ");
Serial.end(); //matikan Serial komunikasi
Serial.begin(9600); //aktifkan kembali
while(Serial.available() ==0 ) {} //tunggu hingga ada data serial masuk
m2 = Serial.read() - 48; //m2 = angka puluhan menit
Serial.println(m2); //cetak ke Serial Monitor
Serial.print("Masukkan angka Satuan Menit : ");
Serial.end(); //matikan Serial komunikasi
Serial.begin(9600);//aktifkan kembali
while(Serial.available()==0) {} //tunggu hingga ada data serial masuk
m1 = Serial.read() - 48; //m1 = angka satuan menit
Serial.println(m1); //cetak ke Serial Monitor
jam = (h2*10) + (h1); //salin h2 dan h1 ke variabel jam
menit = (m2*10) + (m1); //salin m2 dan m1 ke variabel menit
Serial.print(jam); Serial.print(":"); //cetak h2h1 : m2m1
Serial.println(menit);
Serial.println();
Serial.end(); //matikan Serial komunikasi
Serial.begin(9600);//aktifkan kembali
break;
case 2:
Serial.println("! ------- menu setting Alarm -------- !");
// menu setting Alarm
Serial.println("Masukkan angka Puluhan Jam : ");
Serial.println("Masukkan angka Satuan Jam : ");
Serial.println("Masukkan angka Puluhan Menit : ");
Serial.println("Masukkan angka Satuan Menit : ");
Serial.println();
Serial.println("Belum diimplementasikan");
Serial.end(); //matikan Serial komunikasi
Serial.begin(9600); //aktifkan kembali
break;
case 3:
// Menu Keluar (Exit)
Serial.print("Keluar.... Terima kasih ");
Serial.println();
Serial.end(); //matikan Serial komunikasi
Serial.begin(9600); //aktifkan kembali
break;
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
sevseg1:CLK
sevseg1:DIO
sevseg1:VCC
sevseg1:GND
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
bz1:1
bz1:2
gnd1:GND
vcc2:VCC