#include "RTClib.h"
RTC_DS1307 rtc;
int hari [7][12] = {'0', '1', '2', '3', '4', '5', '6'};
const int A = 13;
const int B = 11;
const int C = 7;
const int D = 9;
const int E = 10;
const int F = 12;
const int G = 6;
const int dp = 8;
const int d1 = 5;
const int d2 = 4;
const int d3 = 3;
const int d4 = 2;
const int NTC = A7;
const int button1 = A2;
const int button2 = A3;
const int button3 = A1;
int statusbutton1= 1;
int statusbutton2= 1;
int statusbutton3 = 1;
int button_Menyala ;
int satuan;
int puluhan;
int ratusan;
int ribuan;
byte satuan_jam;
byte puluhan_jam;
byte satuan_menit;
byte puluhan_menit;
int satuan_tanggal;
int puluhan_tanggal;
int satuan_Bulan;
int puluhan_Bulan;
int satuan_tahun;
int puluhan_tahun;
int ratusan_tahun;
int ribuan_tahun;
int aktif;
int Menu;
void setup() {
// put your setup code here, to run once:
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(dp, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
Serial.begin(9600);
}
void loop(){
Serial.println(Menu);
statusbutton1= digitalRead(button1);
if(statusbutton1 == LOW){
button_Menyala = button_Menyala + 1;
aktif = aktif + 1;
delay(500);
}
if(button_Menyala == 1){
statusbutton2 = digitalRead(button2);
statusbutton3 = digitalRead(button3);
if(statusbutton2 == LOW){
Menu = Menu + 1;
delay(500);
}
if(statusbutton3 == LOW){
Menu = Menu - 1;
delay(500);
}
if(button_Menyala > 1){
button_Menyala = 0;
}
}
if(aktif == 1){
garis();
delay(2);
Clear();
delay(2);
}else if(aktif > 1){
aktif = 0;
}
if(Menu == 0){
Suhu();
delay(2);
} else if(Menu == 1){
Waktu();
delay(2);
}else if(Menu == 2){
tanggal();
delay(2);
}else if(Menu == 3){
Tahun();
delay(2);
}else if(Menu == 4){
Dino();
delay(2);
}
}
void Dino(){
DateTime now = rtc.now();
int hari = now.dayOfTheWeek();
Hari(hari);
delay(2);
}
void Tahun(){
DateTime now = rtc.now();
ribuan_tahun = now.year()/1000;
ratusan_tahun = ((now.year()%1000)/100);
puluhan_tahun = ((now.year()%100)/10);
satuan_tahun = now.year() % 10;
Angka(ribuan_tahun);
digit1();
delay(2);
Clear();
delay(2);
Angka(ratusan_tahun);
digit2();
delay(2);
Clear();
delay(2);
Angka(puluhan_tahun);
digit3();
delay(2);
Clear();
delay(2);
Angka(satuan_tahun);
digit4();
delay(2);
Clear();
delay(2);
}
void tanggal(){
DateTime now = rtc.now();
satuan_tanggal = now.day()%10;
puluhan_tanggal = ((now.day()%100)/10);
satuan_Bulan = now.month()%10;
puluhan_Bulan = ((now.month()%100)/10);
Angka(puluhan_tanggal);
digit1();
delay(2);
Clear();
delay(2);
Angka(satuan_tanggal);
digit2();
delay(2);
Clear();
delay(2);
Angka(satuan_Bulan);
digit4();
delay(2);
Clear();
delay(2);
Angka(puluhan_Bulan);
digit3();
delay(2);
Clear();
delay(2);
}
void Waktu(){
DateTime now = rtc.now();
satuan_jam = now.hour() % 10;
puluhan_jam = ((now.hour() % 100) /10);
satuan_menit = now.hour() % 10;
puluhan_menit = ((now.hour()%100)/10);
Angka(puluhan_jam);
digit1();
delay(2);
Clear();
delay(2);
Angka(satuan_jam);
digit2();
delay(2);
Clear();
delay(2);
Angka(puluhan_menit);
digit3();
delay(2);
Clear();
delay(2);
Angka(satuan_jam);
digit4();
delay(2);
Clear();
delay(2);
}
void Suhu() {
const float BETA = 3950;
int analogValue = analogRead(NTC);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
int suhu = celsius * 10;
ribuan = suhu / 1000;
ratusan = ((suhu % 1000)/100);
puluhan = ((suhu % 100)/10);
satuan = suhu % 10;
Angka(satuan);
digit3();
delay(2);
Clear();
delay(2);
Angka_dp(puluhan);
digit2();
delay(2);
Clear();
delay(2);
Angka(ratusan);
digit1();
delay(2);
Clear();
delay(2);
Huruf_C();
digit4();
delay(2);
Clear();
delay(2);
}
void Hari(int i){
switch(i){
case 0:
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit1();
delay(2);
Clear();
delay(2);
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit2();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit3();
delay(2);
Clear();
delay(2);
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit4();
delay(2);
Clear();
delay(2);
break;
case 1:
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit1();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit2();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
digit3();
delay(2);
Clear();
delay(2);
break;
case 2:
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit1();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit2();
delay(2);
Clear();
delay(2);
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
digit3();
delay(2);
Clear();
delay(2);
break;
case 3:
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
digit1();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit2();
delay(2);
Clear();
delay(2);
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit3();
delay(2);
Clear();
delay(2);
break;
case 4: // kamis
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit1();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit2();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
digit3();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
digit4();
delay(2);
Clear();
delay(2);
break;
case 5:
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
digit1();
delay(2);
Clear();
delay(2);
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
digit2();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
digit3();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
digit4();
delay(2);
Clear();
delay(2);
break;
case 6:
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit1();
delay(2);
Clear();
delay(2);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit2();
delay(2);
Clear();
delay(2);
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
digit3();
delay(2);
Clear();
delay(2);
break;
}
}
void garis(){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(d1,LOW);
digitalWrite(d2, LOW);
digitalWrite(d3, LOW);
digitalWrite(d4, LOW);
}
void Huruf_C(){
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
}
void Angka(int x){
switch(x){
case 0 :
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
break;
case 1 :
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
break;
case 2 :
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
break;
case 3 :
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
break;
case 4 :
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
break;
case 5:
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
break;
case 6:
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
break;
case 7:
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(dp, LOW);
break;
case 8:
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
break;
case 9:
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, LOW);
break;
}
}
void Angka_dp(int Y){
switch(Y){
case 0 :
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(dp, HIGH);
break;
case 1 :
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(dp, HIGH);
break;
case 2 :
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, HIGH);
break;
case 3 :
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(dp, HIGH);
break;
case 4 :
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, HIGH);
break;
case 5:
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, HIGH);
break;
case 6:
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, HIGH);
break;
case 7:
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(dp, HIGH);
break;
case 8:
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, HIGH);
break;
case 9:
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(dp, HIGH);
break;
}
}
void Clear(){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(d1,HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
}
void digit1(){
digitalWrite(d1,LOW);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
}
void digit2(){
digitalWrite(d1,HIGH);
digitalWrite(d2, LOW);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
}
void digit3(){
digitalWrite(d1,HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, LOW);
digitalWrite(d4, HIGH);
}
void digit4(){
digitalWrite(d1,HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, LOW);
}