Halaman ini adalah halaman sambungan dari alamat http://sukrifsi.blogspot.co.id/2015/11/latihan-empat.html bila saudara belum mengunjunginya silahkan kunjungi terlebih dahulu pendahuluan dari latihan pembuatan alat ini dengan menekan link yang ada di atas.
Nah untuk membuat Jadwal Sholat yang kita perlukan adalah :
- Mikrokontroller Arduino
- Lcd 16x2 karakter
- RTC
- Rangkaian Saklar input
Rangkaiannya adalah sebagai Berikut yaaaa....
Setelah diramgkai seperti di atas langkah berikutnya adalah menulis programnya.
ini adalah list program jadwal sholat versi 1.
----------------------------------------------------------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(43, 45, 47, 49,51,53); // RS,E,D4,D5,D6,D7
#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int tb;
int i,s,z,a,m ;
int d3,d2,d,mn,j,hk,bl,th,tg,tg2 ;
int k=1 ; int tm=1;
int ta=9 ; int tbb=8; int tc=7;
String hari;
String waktuu,waktu2;
void setup() {
Wire.begin();
lcd.begin(16,2);
pinMode(ta,INPUT); pinMode(tbb,INPUT);pinMode(tc,INPUT);
pinMode (18,OUTPUT); digitalWrite(18,0); // Untuk Memberi Tegangan 0 Volt ke RTC
pinMode (19,OUTPUT); digitalWrite(19,1); // Untuk Memberi Tegangan 5 Volt ke RTC
}
void loop() {
if (k==1) {
Wire.beginTransmission(DS1307_ADDRESS);
byte zero = 0x00;
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
d = bcdToDec(Wire.read());
mn = bcdToDec(Wire.read());
j = bcdToDec(Wire.read() & 0b111111); //24 hour time
hk = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
tg = bcdToDec(Wire.read());
bl = bcdToDec(Wire.read());
th = bcdToDec(Wire.read());
delay (233);
if (d2!= d) {d2= d ; d3 = d3 + 1;
if (d3 > 16 ) d3=0; }
int ji =i/100; int mi =i%100; int jz =z/100; int mz =z %100;
int ja =a/100; int ma =a %100; int jm =m/100; int mm =m %100;
int js =s/100; int ms =s %100;
waktuu = "Jam : " + String (j/10)+String (j%10)+":"+String (mn/10)+ String (mn %10)+":"+String (d/10)+String (d%10) ;
if (d3==3 ) waktu2 = "Isya : " + String(ji/10)+ String(ji%10) + ":" +String(mi/10)+ String(mi%10) ;
if (d3==5 ) waktu2 = "Subuh : " + String(js/10)+ String(js%10) + ":"+String(ms/10)+ String(ms %10) ;
if (d3==7 ) waktu2 = "Zuhur : " + String(jz/10)+ String(jz%10) + ":"+String(mz/10)+ String(mz %10) ;
if (d3==9 ) waktu2 = "Asar : " + String(ja/10)+ String(ja%10) + ":"+String(ma/10)+ String(ma%10) ;
if (d3==11 ) waktu2 = "Magrib : " + String(jm/10)+ String(jm%10) + ":"+String(mm/10)+ String(mm %10) ;
if (d3==1 ) waktu2 = "Jadwal Shalat " ;
if (d3==13 ) waktu2 = "Tb 1. Seting Jam";
if (d3==15 ) waktu2 = "Tgl : "+ String(tg)+"-"+ String (bl)+ "-20"+String(th);
lcd.clear() ;
lcd.setCursor(0,0);
lcd.print(waktuu);
lcd.setCursor(0,1);
lcd.print(waktu2); delay(222);
if (digitalRead (ta) ==1 ) { k=2; delay (200); }
}
if (hk==0) hari="Minggu" ;
if (hk==1) hari="Senin" ;
if (hk==2) hari="Selasa" ;
if (hk==3) hari="Rabu" ;
if (hk==4) hari="Kamis" ;
if (hk==5) hari="Jum'at" ;
if (hk==6) hari="Saptu" ;
if (k==2) {
if (tm==1){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print(" Merubah Waktu ");
lcd.setCursor(0,1);
lcd.print("1. Ya 2. Tidak ");
if (digitalRead (tbb)==1) { delay (100); k=1; }
if (digitalRead (ta)==1) {delay (100); tm=2;}
delay (500);
}
if (tm==2){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Jam : "); lcd.print (j);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { j=j+1; delay (100); }
if (digitalRead (tbb)==1) { j=j-1; delay (100); }
if (digitalRead (tc)==1) {tm=3; delay (100); }
if (j>23) j=0;
if (j<0) j=23;
delay(300); ;
}
if (tm==3){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Menit : "); lcd.print (String (mn/10)+ String (mn %10));
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { mn=mn+1; delay (100); }
if (digitalRead (tbb)==1) { mn=mn-1; delay (100); }
if (digitalRead (tc)==1) {tm=4; delay (100); }
if (mn>59) mn=0;
if (mn<0) mn=59;
delay(200); ;
}
if (tm==4){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Hari : "); lcd.print (hari);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { hk=hk+1; delay (100); }
if (digitalRead (tbb)==1) { hk=hk-1; delay (100); }
if (digitalRead (tc)==1) {tm=5; delay (100); }
if (hk>6) hk=0;
if (hk<0) hk=6;
delay(200); ;
}
if (tm==5){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Tanggal : "); lcd.print (tg);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { tg=tg+1; delay (100); }
if (digitalRead (tbb)==1) { tg=tg-1; delay (100); }
if (digitalRead (tc)==1) {tm=6; delay (100); }
if (tg>31) tg=0;
if (tg<0) tg=31;
delay(200); ;
}
if (tm==6){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Bulan : "); lcd.print (bl);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { bl=bl+1; delay (100); }
if (digitalRead (tbb)==1) { bl=bl-1; delay (100); }
if (digitalRead (tc)==1) {tm=7; delay (100); }
if (bl>12) bl=1;
if (bl<1) bl=12;
delay(200); ;
}
if (tm==7){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Tahun : "); lcd.print (th);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { th=th+1; delay (100); }
if (digitalRead (tbb)==1) { th=th-1; delay (100); }
if (digitalRead (tc)==1) {tm=8; delay (100); }
delay(200); ;
}
if (tm==8){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Data Disimpan");
lcd.setCursor(0,1);
lcd.print("1= Ya 2= Tidak");
if (digitalRead (ta)==1) {
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero); //stop Oscillator
Wire.write(decToBcd(d));
Wire.write(decToBcd(mn));
Wire.write(decToBcd(j));
Wire.write(decToBcd(hk));
Wire.write(decToBcd(tg));
Wire.write(decToBcd(bl));
Wire.write(decToBcd(th));
Wire.write(zero); //start
Wire.endTransmission();
delay (100);
tm=1; k=1;
}
if (digitalRead (tbb)==1) { tm=1; k=1; }
delay(200); ;
}
}
// Mengecek jadwal Shalat
// Data di update Setiap Hari
if (tg2!= tg) {
tg2 = tg;
tb = (bl*100) + tg ;
if (tb==101 ||tb==102 || tb==103 ||tb== 104 || tb==105 ) { i= 1916 ; s=409 ; z=1146; a=1510; m=1802; }
if (tb==106 || tb==107 || tb== 108 || tb== 109 || tb==110 ){i=1920; s=411 ; z= 1149; a= 1514; m= 1805; }
if (tb==111 || tb==112 || tb== 113 || tb== 114 || tb==115 ) {i=1921; s=414; z=1151; a=1515; m=1807; }
if (tb==116 || tb==117 || tb== 118 || tb== 119 || tb==120 ) {i=1921; s=417; z=1153; a=1516; m=1808;}
if (tb==121 || tb==122 || tb== 123 || tb== 124 || tb==125 ){ i=1922; s=420; z=1154; a=1516; m=1809;}
if (tb==126 || tb==127 || tb== 128 || tb== 129 || tb==130 ){ i=1922; s=422; z=1155; a=1515; m=1809;}
if (tb==131 || tb==201 || tb== 202 || tb== 203 ){ i=1922; s=424; z=1156; a=1514; m=1809;}
if (tb==204 || tb==205 || tb== 206 || tb== 207 ||tb== 207 ){i=1918; s=426 ; z=1156 ; a=1512; m=1808;}
if (tb==209 || tb==210 || tb== 211 || tb== 212 || tb==213) { i=1917; s= 427; z= 1156; a= 1510; m= 1807 ;}
if (tb==214 || tb==215 || tb== 216 || tb== 217 || tb==218) { i=1915; s= 429; z=1156; a=1508; m=1806; }
if (tb==219 || tb==220 || tb== 221 || tb== 222 || tb==223) { i=1914; s= 431; z=1156; a=1504; m=1805;}
if (tb==224 || tb==225 || tb== 226 || tb== 227 || tb==228 || tb==29 ) {i=1913; s= 432; z=1155; a=1500; m=1803;}
if (tb==301 || tb==302 || tb== 303 || tb== 304 || tb==305) {i=1910; s= 432; z=1154; a=1457; m=1801;}
if (tb==306 || tb==307 || tb== 308 || tb== 309 || tb==310) {i=1908; s=432; z=1153; a=1459; m=1759;}
if (tb==311 || tb==311 || tb== 312 || tb== 313 || tb==311 || tb==315) {i=1905; s=433; z=1152; a=1501; m=1757;}
if (tb==316 || tb==317 || tb== 318 || tb== 319 || tb==320 ){i=1903; s=432; z=1150; a=1501; m=1754;}
if (tb==312 || tb==322 || tb== 323 || tb== 324 || tb==325 ){i=1900; s=432; z=1149; a=1502; m=1752;}
if (tb==326 || tb==311 || tb== 327 || tb== 328 || tb==329|| tb==330|| tb==331 ){i=1858; s=431; z=1147; a=1502; m=1749;}
if (tb==401 || tb==402 || tb== 403 || tb== 404 || tb==405 ){i=1855; s=430; z=1147; a=1503; m=1747;}
if (tb==406 || tb==407 || tb== 408 || tb== 409 || tb==410 ){i=1852; s=429; z=1144; a=1502; m=1744;}
if (tb==411 || tb==412 || tb== 413 || tb== 414 || tb==415 ){i=1851; s=429; z=1143; a=1501; m=1742;}
if (tb==416 || tb==416 || tb== 417 || tb== 418 || tb==419|| tb==420 ){ i=1849; s=428; z=1142; a=1501; m=1740;}
if (tb==421 || tb==422 || tb== 423 || tb== 424 || tb==425 ){i=1846; s=427; z=1140; a=1500; m=1737;}
if (tb==426 || tb==427 || tb== 428 || tb== 429 || tb==430 || tb==431 || tb==501 ){i=1845; s=426; z=1139; a=1459; m=1735;}
if (tb==502 || tb==503 || tb== 504 || tb== 505 || tb==506 ){i=1844; s=427; z=1139; a=1459; m=1734;}
if (tb==507 || tb==508 || tb== 509 || tb== 510 || tb==511 ){i=1843; s=426; z=1138; a=1458; m=1732;}
if (tb==512 || tb==513 || tb== 514 || tb== 515 || tb==516 ){i=1843; s=426; z=1138; a=1458; m=1731;}
if (tb==517 || tb==518 || tb== 519 || tb== 505 || tb==520 || tb==521 ){i=1844; s=427; z=1139; a=1459; m=1732;}
if (tb==522 || tb==523 || tb== 524 || tb== 525 || tb==526 ){i=1843; s=427; z=1139; a=1459; m=1731;}
if (tb==527 || tb==528 || tb== 529 || tb== 530 || tb==531 || tb==601 ){i=1844; s=428; z=1140; a=1500; m=1731;}
if (tb==602 || tb==603 || tb== 604 || tb== 605 || tb==606 ){i=1844; s=429; z=1140; a=1500; m=1731;}
if (tb==607 || tb==608 || tb== 609 || tb== 610 || tb==611 ){i=1845; s=430; z=1141; a=1501; m=1731;}
if (tb==612 || tb==613 || tb== 614 || tb== 615 || tb==616 ){i=1846; s=431; z=1142; a=1502; m=1732;}
if (tb==617 || tb==618 || tb== 618 || tb== 620 || tb==621 ){i=1847; s=432; z=1143; a=1503; m=1733;}
if (tb==622 || tb==623 || tb== 624 || tb== 625 || tb==626 ){i=1848; s=433; z=1144; a=1504; m=1734;}
if (tb==627 || tb==628 || tb== 629 || tb== 630 || tb==631 || tb==701 || tb==702 ){i=1849; s=434; z=1145; a=1504; m=1735;}
if (tb==703 || tb==304 || tb== 705 || tb== 706 || tb==707 ) {i=1850; s=435; z=1146; a=1508; m=1736;}
if (tb==708 || tb==709 || tb== 710 || tb== 711 || tb==712) { i=1851; s=436; z=1147; a=1508; m=1738;}
if (tb==713 || tb==714 || tb== 715 || tb== 716 || tb==717) {i=1852; s=436; z=1148; a=1508; m=1739;}
if (tb==718 || tb==719 || tb== 720 || tb== 721 || tb==722) {i=1852; s=436; z=1148; a=1508; m=1740;}
if (tb==723 || tb==724 || tb== 725 || tb== 726 || tb==727){i=1853; s=436; z=1148; a=1508; m=1741;}
if (tb==728 || tb==729 || tb== 730 || tb== 731 || tb==801 || tb==802){i=1853; s=436; z=1148; a=1508; m=1741;}
if (tb==803 || tb==804 || tb== 805 || tb== 806 || tb==807 ){i=1853; s=436; z=1148; a=1508; m=1742;}
if (tb==808 || tb==809 || tb== 810 || tb== 811 || tb==812 || tb==802){i=1852; s=435; z=1147; a=1507; m=1742;}
if (tb==813 || tb==814 || tb== 814 || tb== 815 || tb==816 || tb==817){i=1852; s=433; z=1146; a=1503; m=1742;}
if (tb==818 || tb==819 || tb== 820 || tb== 821 || tb==822 || tb==823){i=1851; s=432; z=1145; a=1505; m=1742;}
if (tb==824 || tb==825 || tb== 826 || tb== 827 || tb==828 ){i=1851; s=430; z=1144; a=1503; m=1742;}
if (tb==829 || tb==830 || tb== 831 || tb== 901 || tb==902 ){i=1850; s=428; z=1142; a=1500; m=1741;}
if (tb==903 || tb==904 || tb== 905 || tb== 906 || tb==907 ){i=1849; s=426; z=1141; a=1457; m=1741;}
if (tb==908 || tb==909 || tb== 910 || tb== 911 || tb==912 ){i=1848; s=423; z=1139; a=1455; m=1740;}
if (tb==914 || tb==915 || tb== 916 || tb== 917 || tb==913 ){i=1848; s=421; z=1137; a=1452; m=1739;}
if (tb==918 || tb==919 || tb== 920 || tb== 921 || tb==922|| tb==923 ){i=1846; s=418; z=1135; a=1448; m=1738;}
if (tb==924 || tb==925 || tb== 926 || tb== 927 || tb==928|| tb==928){i=1846; s=415; z=1134; a=1444; m=1737;}
if (tb==929 || tb==930 || tb== 931 || tb== 1001 || tb==1003|| tb==1004){i=1846; s=413; z=1132; a=1441; m=1737;}
if (tb==1004 || tb==1005 || tb== 1006 || tb== 1007 || tb==1008){i=1845; s=409; z=1130; a=1436; m=1736;}
if (tb==1009 || tb== 1010 || tb== 1011 || tb==1012|| tb==1013 ){i=1845; s=407; z=1129; a=1432; m=1736;}
if (tb==1014 || tb==1015 || tb== 1016 || tb== 1017 || tb==1018){i=1846; s=405; z=1128; a=1433; m=1736;}
if (tb==1019 || tb==1020 || tb== 1021 || tb== 1022 || tb==1023){i=1845; s=402; z=1127; a=1435; m=1736;}
if (tb==1024 || tb==1025 || tb== 1026 || tb== 1027 || tb==1028 ){i=1845; s=359; z=1126; a=1438; m=1736;}
if (tb==1029 || tb==1030 || tb== 1031 || tb== 1101 || tb==1102 ){i=1847; s=357; z=1126; a=1440; m=1737;}
if (tb==1103 || tb==1104 || tb== 1105 || tb== 1106 || tb==1107 ) {i= 1848; s=356; z=1126; a=1444; m=1738;}
if (tb==1108 || tb==1109 || tb== 1110 || tb== 1111 || tb==1112){i=1853; s=355; z=1127; a=1445; m=1740;}
if (tb==1113 || tb==1114 || tb== 1115 || tb== 1116 || tb==1117){i=1854; s=354; z=1127; a=1447; m=1741;}
if (tb==1118 || tb==1119 || tb== 1120 || tb== 1121 || tb==1122){i=1856; s=354; z=1128; a=1450; m=1743;}
if (tb==1123 || tb==1124 || tb== 1125 || tb== 1126 || tb==1127){i=1859; s=354; z=1130; a=1453; m=1745;}
if (tb==1128 || tb==1129 || tb== 1130 || tb== 1131 || tb==1201){i=1901; s=354; z=1131; a=1455; m=1747;}
if (tb==1202 || tb==1203 || tb== 1204 || tb== 1205 || tb==1206){i=1904; s=355; z=1133; a=1458; m=1749;}
if (tb==1207 || tb==1208 || tb== 1209 || tb== 1210 || tb==1211){i=1907; s=356; z=1135; a=1500; m=1751;}
if (tb==1212 || tb==1213 || tb== 1214 || tb== 1215 || tb==1216){i=1909; s=357; z=1137; a=1503; m=1754;}
if (tb==1217 || tb==1218 || tb== 1219 || tb== 1220 || tb==1221){i=1911; s=358; z=1139; a=1505; m=1756;}
if (tb==1222 || tb==1223 || tb== 1224 || tb== 1225 || tb==12206){i=1914; s=401; z=1142; a=1508; m=1759;}
if (tb==1227 || tb==1228 || tb== 1229 || tb== 1230 || tb==1231){i=1916; s=403; z=1144; a=1510; m=1801;}
} // akhir pengecekan data bes jadwal shalat
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}
byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
return ( (val/10*16) + (val%10) );
}
----------------------------------------------------------------------------------------
Program ini dapat menampilkan jam dan jadwal shalat. tetapi sayangnya hanya satu tempat saja jadi hanya berlaku untuk wilayah Daerah Semarang, Magelang, Yogyakarta, Dan Sekitarnya. Jika Saudara berada di daerah jakarta tentunya alat ini tidak sesuai. oleh karena itu listing programnya harus kita tambah. nah perhatikan listing program di bawah ini
----------------------------------------------------------------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(43, 45, 47, 49,51,53); // RS,E,D4,D5,D6,D7
#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int pil=1;
String kota;
int tb; int wt = 12 ;
int i,s,z,a,m ;
int d3,d2,d,mn,j,hk,bl,th,tg,tg2 ;
int k=1 ; int tm=1;
int ta=9 ; int tbb=8; int tc=7;
String hari;
String waktuu,waktu2;
void setup() {
Wire.begin();
lcd.begin(16,2);
pinMode(ta,INPUT); pinMode(tbb,INPUT);pinMode(tc,INPUT);
pinMode (18,OUTPUT); digitalWrite(18,0); // Untuk Memberi Tegangan 0 Volt ke RTC
pinMode (19,OUTPUT); digitalWrite(19,1); // Untuk Memberi Tegangan 5 Volt ke RTC
}
void loop() {
if (k==1) {
Wire.beginTransmission(DS1307_ADDRESS);
byte zero = 0x00;
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
d = bcdToDec(Wire.read());
mn = bcdToDec(Wire.read());
j = bcdToDec(Wire.read() & 0b111111); //24 hour time
hk = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
tg = bcdToDec(Wire.read());
bl = bcdToDec(Wire.read());
th = bcdToDec(Wire.read());
delay (233);
if (d2!= d) {d2= d ; d3 = d3 + 1;
if (d3 > 16 ) d3=0; }
int ji =i/100; int mi =(i%100) + wt ; if (mi>59){ji=ji+1; mi=mi-60; }
int js =s/100; int ms =(s %100) + wt;if (ms>59){js=js+1; ms=ms-60; }
int jz =z/100; int mz =(z %100) +wt; if (mz>59){jz=jz+1; mz=mz-60; }
int ja =a/100; int ma =(a %100) + wt; if (ma>59){ja=ja+1; ma=ma-60; }
int jm =m/100; int mm =(m %100) + wt; if (mm>59){jm=jm+1; mm=mm-60; }
waktuu = "Jam : " + String (j/10)+String (j%10)+":"+String (mn/10)+ String (mn %10)+":"+String (d/10)+String (d%10) ;
if (d3==3 ) waktu2 = "Isya : " + String(ji/10)+ String(ji%10) + ":" +String(mi/10)+ String(mi%10) ;
if (d3==5 ) waktu2 = "Subuh : " + String(js/10)+ String(js%10) + ":"+String(ms/10)+ String(ms %10) ;
if (d3==7 ) waktu2 = "Zuhur : " + String(jz/10)+ String(jz%10) + ":"+String(mz/10)+ String(mz %10) ;
if (d3==9 ) waktu2 = "Asar : " + String(ja/10)+ String(ja%10) + ":"+String(ma/10)+ String(ma%10) ;
if (d3==11 ) waktu2 = "Magrib : " + String(jm/10)+ String(jm%10) + ":"+String(mm/10)+ String(mm %10) ;
if (d3==1 ) waktu2 = "Jadwal Shalat " ;
if (d3==13 ) waktu2 = "1. Seting Alat";
if (d3==15 ) waktu2 = "Tgl : "+ String(tg)+"-"+ String (bl)+ "-20"+String(th);
lcd.clear() ;
lcd.setCursor(0,0);
lcd.print(waktuu);
lcd.setCursor(0,1);
lcd.print(waktu2); delay(222);
if (digitalRead (ta) ==1 ) { k=2; delay (200); }
}
if (hk==0) hari="Minggu" ;
if (hk==1) hari="Senin" ;
if (hk==2) hari="Selasa" ;
if (hk==3) hari="Rabu" ;
if (hk==4) hari="Kamis" ;
if (hk==5) hari="Jum'at" ;
if (hk==6) hari="Saptu" ;
if (k==2) {
if (tm==1){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Memasuki Menu ");
lcd.setCursor(0,1);
lcd.print("Pengaturan Alat ");
delay (1100);
tm=2; }
if (tm==2){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("1. Seting Kota ");
lcd.setCursor(0,1);
lcd.print("2. Seting Waktu");
if (digitalRead (tbb)==1) { delay (100); tm=3; }
if (digitalRead (ta)==1) {delay (100); tm=11;}
delay (500);
}
if (tm==3){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print(" Merubah Waktu ");
lcd.setCursor(0,1);
lcd.print("1. Ya 2. Tidak ");
if (digitalRead (tbb)==1) { delay (100); k=1; tm=1; }
if (digitalRead (ta)==1) {delay (100); tm=4;}
delay (500);
}
if (tm==4){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Jam : "); lcd.print (j);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { j=j+1; delay (100); }
if (digitalRead (tbb)==1) { j=j-1; delay (100); }
if (digitalRead (tc)==1) {tm=5; delay (100); }
if (j>23) j=0;
if (j<0) j=23;
delay(300); ;
}
if (tm==5){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Menit : "); lcd.print (String (mn/10)+ String (mn %10));
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { mn=mn+1; delay (100); }
if (digitalRead (tbb)==1) { mn=mn-1; delay (100); }
if (digitalRead (tc)==1) {tm=6; delay (100); }
if (mn>59) mn=0;
if (mn<0) mn=59;
delay(200); ;
}
if (tm==6){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Hari : "); lcd.print (hari);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { hk=hk+1; delay (100); }
if (digitalRead (tbb)==1) { hk=hk-1; delay (100); }
if (digitalRead (tc)==1) {tm=7; delay (100); }
if (hk>6) hk=0;
if (hk<0) hk=6;
delay(200); ;
}
if (tm==7){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Tanggal : "); lcd.print (tg);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { tg=tg+1; delay (100); }
if (digitalRead (tbb)==1) { tg=tg-1; delay (100); }
if (digitalRead (tc)==1) {tm=8; delay (100); }
if (tg>31) tg=0;
if (tg<0) tg=31;
delay(200); ;
}
if (tm==8){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Bulan : "); lcd.print (bl);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { bl=bl+1; delay (100); }
if (digitalRead (tbb)==1) { bl=bl-1; delay (100); }
if (digitalRead (tc)==1) {tm=9; delay (100); }
if (bl>12) bl=1;
if (bl<1) bl=12;
delay(200); ;
}
if (tm==9){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Tahun : "); lcd.print (th);
lcd.setCursor(0,1);
lcd.print("1= + 2= - 3=OK");
if (digitalRead (ta)==1) { th=th+1; delay (100); }
if (digitalRead (tbb)==1) { th=th-1; delay (100); }
if (digitalRead (tc)==1) {tm=10; delay (100); }
delay(200); ;
}
if (tm==10){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Data Disimpan");
lcd.setCursor(0,1);
lcd.print("1= Ya 2= Tidak");
if (digitalRead (ta)==1) {
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero); //stop Oscillator
Wire.write(decToBcd(d));
Wire.write(decToBcd(mn));
Wire.write(decToBcd(j));
Wire.write(decToBcd(hk));
Wire.write(decToBcd(tg));
Wire.write(decToBcd(bl));
Wire.write(decToBcd(th));
Wire.write(zero); //start
Wire.endTransmission();
delay (100);
tm=1; k=1;
}
if (digitalRead (tbb)==1) { tm=1; k=1; }
delay(200); ;
}
if (tm==11){
lcd.clear ();
lcd.setCursor(0,0);
lcd.print("Pilihlah Kota ");
lcd.setCursor(0,1);
lcd.print("Lokasi Anda");
delay (1100);
tm=12; }
if (tm==12 ){
if (pil==1) { wt=12 ; kota="Kota Jakarta";}
if (pil==2) { wt=11 ; kota="Kota Bandung";}
if (pil==3) { wt=12 ; kota="Kota Karawang";}
if (pil==4) { wt=11 ; kota="Kota Purwakarta";}
if (digitalRead (ta)==1) { pil=pil+1; delay(155); }
if (digitalRead (tc)==1) { tm=1; k=1; }
if (pil>4) pil=1;
if (pil<1) pil=4;
lcd.clear ();
lcd.setCursor(0,0);
lcd.print(kota);
lcd.setCursor(0,1);
lcd.print("1.Next 3.Ok");
delay (200);
}
}
// Mengecek jadwal Shalat
// Data di update Setiap Hari
if (tg2!= tg) {
tg2 = tg;
tb = (bl*100) + tg ;
if (tb==101 ||tb==102 || tb==103 ||tb== 104 || tb==105 ) { i= 1916 ; s=409 ; z=1146; a=1510; m=1802; }
if (tb==106 || tb==107 || tb== 108 || tb== 109 || tb==110 ){i=1920; s=411 ; z= 1149; a= 1514; m= 1805; }
if (tb==111 || tb==112 || tb== 113 || tb== 114 || tb==115 ) {i=1921; s=414; z=1151; a=1515; m=1807; }
if (tb==116 || tb==117 || tb== 118 || tb== 119 || tb==120 ) {i=1921; s=417; z=1153; a=1516; m=1808;}
if (tb==121 || tb==122 || tb== 123 || tb== 124 || tb==125 ){ i=1922; s=420; z=1154; a=1516; m=1809;}
if (tb==126 || tb==127 || tb== 128 || tb== 129 || tb==130 ){ i=1922; s=422; z=1155; a=1515; m=1809;}
if (tb==131 || tb==201 || tb== 202 || tb== 203 ){ i=1922; s=424; z=1156; a=1514; m=1809;}
if (tb==204 || tb==205 || tb== 206 || tb== 207 ||tb== 207 ){i=1918; s=426 ; z=1156 ; a=1512; m=1808;}
if (tb==209 || tb==210 || tb== 211 || tb== 212 || tb==213) { i=1917; s= 427; z= 1156; a= 1510; m= 1807 ;}
if (tb==214 || tb==215 || tb== 216 || tb== 217 || tb==218) { i=1915; s= 429; z=1156; a=1508; m=1806; }
if (tb==219 || tb==220 || tb== 221 || tb== 222 || tb==223) { i=1914; s= 431; z=1156; a=1504; m=1805;}
if (tb==224 || tb==225 || tb== 226 || tb== 227 || tb==228 || tb==29 ) {i=1913; s= 432; z=1155; a=1500; m=1803;}
if (tb==301 || tb==302 || tb== 303 || tb== 304 || tb==305) {i=1910; s= 432; z=1154; a=1457; m=1801;}
if (tb==306 || tb==307 || tb== 308 || tb== 309 || tb==310) {i=1908; s=432; z=1153; a=1459; m=1759;}
if (tb==311 || tb==311 || tb== 312 || tb== 313 || tb==311 || tb==315) {i=1905; s=433; z=1152; a=1501; m=1757;}
if (tb==316 || tb==317 || tb== 318 || tb== 319 || tb==320 ){i=1903; s=432; z=1150; a=1501; m=1754;}
if (tb==312 || tb==322 || tb== 323 || tb== 324 || tb==325 ){i=1900; s=432; z=1149; a=1502; m=1752;}
if (tb==326 || tb==311 || tb== 327 || tb== 328 || tb==329|| tb==330|| tb==331 ){i=1858; s=431; z=1147; a=1502; m=1749;}
if (tb==401 || tb==402 || tb== 403 || tb== 404 || tb==405 ){i=1855; s=430; z=1147; a=1503; m=1747;}
if (tb==406 || tb==407 || tb== 408 || tb== 409 || tb==410 ){i=1852; s=429; z=1144; a=1502; m=1744;}
if (tb==411 || tb==412 || tb== 413 || tb== 414 || tb==415 ){i=1851; s=429; z=1143; a=1501; m=1742;}
if (tb==416 || tb==416 || tb== 417 || tb== 418 || tb==419|| tb==420 ){ i=1849; s=428; z=1142; a=1501; m=1740;}
if (tb==421 || tb==422 || tb== 423 || tb== 424 || tb==425 ){i=1846; s=427; z=1140; a=1500; m=1737;}
if (tb==426 || tb==427 || tb== 428 || tb== 429 || tb==430 || tb==431 || tb==501 ){i=1845; s=426; z=1139; a=1459; m=1735;}
if (tb==502 || tb==503 || tb== 504 || tb== 505 || tb==506 ){i=1844; s=427; z=1139; a=1459; m=1734;}
if (tb==507 || tb==508 || tb== 509 || tb== 510 || tb==511 ){i=1843; s=426; z=1138; a=1458; m=1732;}
if (tb==512 || tb==513 || tb== 514 || tb== 515 || tb==516 ){i=1843; s=426; z=1138; a=1458; m=1731;}
if (tb==517 || tb==518 || tb== 519 || tb== 505 || tb==520 || tb==521 ){i=1844; s=427; z=1139; a=1459; m=1732;}
if (tb==522 || tb==523 || tb== 524 || tb== 525 || tb==526 ){i=1843; s=427; z=1139; a=1459; m=1731;}
if (tb==527 || tb==528 || tb== 529 || tb== 530 || tb==531 || tb==601 ){i=1844; s=428; z=1140; a=1500; m=1731;}
if (tb==602 || tb==603 || tb== 604 || tb== 605 || tb==606 ){i=1844; s=429; z=1140; a=1500; m=1731;}
if (tb==607 || tb==608 || tb== 609 || tb== 610 || tb==611 ){i=1845; s=430; z=1141; a=1501; m=1731;}
if (tb==612 || tb==613 || tb== 614 || tb== 615 || tb==616 ){i=1846; s=431; z=1142; a=1502; m=1732;}
if (tb==617 || tb==618 || tb== 618 || tb== 620 || tb==621 ){i=1847; s=432; z=1143; a=1503; m=1733;}
if (tb==622 || tb==623 || tb== 624 || tb== 625 || tb==626 ){i=1848; s=433; z=1144; a=1504; m=1734;}
if (tb==627 || tb==628 || tb== 629 || tb== 630 || tb==631 || tb==701 || tb==702 ){i=1849; s=434; z=1145; a=1504; m=1735;}
if (tb==703 || tb==304 || tb== 705 || tb== 706 || tb==707 ) {i=1850; s=435; z=1146; a=1508; m=1736;}
if (tb==708 || tb==709 || tb== 710 || tb== 711 || tb==712) { i=1851; s=436; z=1147; a=1508; m=1738;}
if (tb==713 || tb==714 || tb== 715 || tb== 716 || tb==717) {i=1852; s=436; z=1148; a=1508; m=1739;}
if (tb==718 || tb==719 || tb== 720 || tb== 721 || tb==722) {i=1852; s=436; z=1148; a=1508; m=1740;}
if (tb==723 || tb==724 || tb== 725 || tb== 726 || tb==727){i=1853; s=436; z=1148; a=1508; m=1741;}
if (tb==728 || tb==729 || tb== 730 || tb== 731 || tb==801 || tb==802){i=1853; s=436; z=1148; a=1508; m=1741;}
if (tb==803 || tb==804 || tb== 805 || tb== 806 || tb==807 ){i=1853; s=436; z=1148; a=1508; m=1742;}
if (tb==808 || tb==809 || tb== 810 || tb== 811 || tb==812 || tb==802){i=1852; s=435; z=1147; a=1507; m=1742;}
if (tb==813 || tb==814 || tb== 814 || tb== 815 || tb==816 || tb==817){i=1852; s=433; z=1146; a=1503; m=1742;}
if (tb==818 || tb==819 || tb== 820 || tb== 821 || tb==822 || tb==823){i=1851; s=432; z=1145; a=1505; m=1742;}
if (tb==824 || tb==825 || tb== 826 || tb== 827 || tb==828 ){i=1851; s=430; z=1144; a=1503; m=1742;}
if (tb==829 || tb==830 || tb== 831 || tb== 901 || tb==902 ){i=1850; s=428; z=1142; a=1500; m=1741;}
if (tb==903 || tb==904 || tb== 905 || tb== 906 || tb==907 ){i=1849; s=426; z=1141; a=1457; m=1741;}
if (tb==908 || tb==909 || tb== 910 || tb== 911 || tb==912 ){i=1848; s=423; z=1139; a=1455; m=1740;}
if (tb==914 || tb==915 || tb== 916 || tb== 917 || tb==913 ){i=1848; s=421; z=1137; a=1452; m=1739;}
if (tb==918 || tb==919 || tb== 920 || tb== 921 || tb==922|| tb==923 ){i=1846; s=418; z=1135; a=1448; m=1738;}
if (tb==924 || tb==925 || tb== 926 || tb== 927 || tb==928|| tb==928){i=1846; s=415; z=1134; a=1444; m=1737;}
if (tb==929 || tb==930 || tb== 931 || tb== 1001 || tb==1003|| tb==1004){i=1846; s=413; z=1132; a=1441; m=1737;}
if (tb==1004 || tb==1005 || tb== 1006 || tb== 1007 || tb==1008){i=1845; s=409; z=1130; a=1436; m=1736;}
if (tb==1009 || tb== 1010 || tb== 1011 || tb==1012|| tb==1013 ){i=1845; s=407; z=1129; a=1432; m=1736;}
if (tb==1014 || tb==1015 || tb== 1016 || tb== 1017 || tb==1018){i=1846; s=405; z=1128; a=1433; m=1736;}
if (tb==1019 || tb==1020 || tb== 1021 || tb== 1022 || tb==1023){i=1845; s=402; z=1127; a=1435; m=1736;}
if (tb==1024 || tb==1025 || tb== 1026 || tb== 1027 || tb==1028 ){i=1845; s=359; z=1126; a=1438; m=1736;}
if (tb==1029 || tb==1030 || tb== 1031 || tb== 1101 || tb==1102 ){i=1847; s=357; z=1126; a=1440; m=1737;}
if (tb==1103 || tb==1104 || tb== 1105 || tb== 1106 || tb==1107 ) {i= 1848; s=356; z=1126; a=1444; m=1738;}
if (tb==1108 || tb==1109 || tb== 1110 || tb== 1111 || tb==1112){i=1853; s=355; z=1127; a=1445; m=1740;}
if (tb==1113 || tb==1114 || tb== 1115 || tb== 1116 || tb==1117){i=1854; s=354; z=1127; a=1447; m=1741;}
if (tb==1118 || tb==1119 || tb== 1120 || tb== 1121 || tb==1122){i=1856; s=354; z=1128; a=1450; m=1743;}
if (tb==1123 || tb==1124 || tb== 1125 || tb== 1126 || tb==1127){i=1859; s=354; z=1130; a=1453; m=1745;}
if (tb==1128 || tb==1129 || tb== 1130 || tb== 1131 || tb==1201){i=1901; s=354; z=1131; a=1455; m=1747;}
if (tb==1202 || tb==1203 || tb== 1204 || tb== 1205 || tb==1206){i=1904; s=355; z=1133; a=1458; m=1749;}
if (tb==1207 || tb==1208 || tb== 1209 || tb== 1210 || tb==1211){i=1907; s=356; z=1135; a=1500; m=1751;}
if (tb==1212 || tb==1213 || tb== 1214 || tb== 1215 || tb==1216){i=1909; s=357; z=1137; a=1503; m=1754;}
if (tb==1217 || tb==1218 || tb== 1219 || tb== 1220 || tb==1221){i=1911; s=358; z=1139; a=1505; m=1756;}
if (tb==1222 || tb==1223 || tb== 1224 || tb== 1225 || tb==12206){i=1914; s=401; z=1142; a=1508; m=1759;}
if (tb==1227 || tb==1228 || tb== 1229 || tb== 1230 || tb==1231){i=1916; s=403; z=1144; a=1510; m=1801;}
} // akhir pengecekan data bes jadwal shalat
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}
byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
return ( (val/10*16) + (val%10) );
}
----------------------------------------------------------------------------------------
Listing Program di atas dapat digunakan untuk wilayah Jakarta, Bandung, Karawang dan Purwakarta. ketika alat ini pertama kali dihidupkan maka tempat yang di tampilkan adalah jakarta, untuk merubahnya ke kota lain dapat di atur di pengaturan alat. kelemahan alat ini adalah jika alat di matikan setingan kota akan kembali ke kota jakarta.
jika menginginkan alat yang setingan kotanya tidak berubah jika alat dimatikan maka listing program perlu di tambah dengan memanfaatkan EEPROM yang ada di mikrokontroller untuk menyimpan setingan data.
trim bang bagus banget
BalasHapusMas klu buat ditampilkan di panel led matrix p10 bisa ga mas.klu bisa kirim coding jam salat ya mas.
BalasHapusKreatifgame@gmail.com
terima kasih atas kunjungannya. mohon maap belum belajar p10. tetapi jika saudara berniat mengembangkan program ini. tentu harus menguasai terlebih dahulu cara menjalankan p10 dengan arduino. kalo ga salah harus belajar dmd library. nah jika sudah bisa maka tinggal mengirimkan nilai jam tanggal dan waktu shalat ke p10. ini memang perlu lataihan dan aga rumit
Hapusmas, mau tanya, kalau mau simpan password ke eeprom yang dirubah melalui keypad 4x4 itu gmana ya caranya ? terima kasih
Hapussaya boleh minta contohnya ngga mas ?
Hapusmohon maap. berhubung keypad 4x4 nya tidak ada jadi susah mencoba nya. eeprom pasti bisa di rubah melalui keypad. hanya saja caranya tentu berbeda. setiap tombol keypad memiliki kode. kode tersebut dibaca oleh mikrokontroller dan diterjemahkan. nah bagaimanakah caranya....? . sebagai gambaran cobalah dahulu latihan dasarnya. bagaimana menghubungkan arduino dengan keypad 4x4 dan bagaimanakah mengaplikasikannya sebagai contoh untuk menghidupkan led dan lain lain. karena belum pernah membuat aplikasi yang memakai password tentu bingung juga maksud pertanyaannya ke arah mana. ini sudah masuk ke pemrograman yang cukup rumit.
HapusTerimakasih sekali mas ... saya mau belajar juga ...
BalasHapusmasih bingung kalau saya beda wilayah di tangerang berarti rubah program ya ...