Halaman 3

Membuat Jam Dengan Waktu Shalat

Gambar rangkaian ada di halaman awal
Ceritanya sedang tertarik membuat jam yang sedikit berbeda. jam digital yang dilengkapi dengan data waktu Shalat. Nah sekarang kita akan membuat percobaan membuat jadwal shalat abadi. idenya adalah ketika ke mesjid kadang kita menemukan jadwal shalat abadi seperti ini. Jadwalnya dapat dijadikan acuan dalam menjalankan ibadah Shalat. memang harus di akui ada perbedaan dengan jadwal Shalat yang dikeluarkan oleh depag atau kemenag yang terbit tiap bulan. tetapi itu tidak menjadi masalah. 



 


Gambar di atas adalah jadwal shalat abadi yang biasa di tempel di masjid. Sekarang memang sudah tersedia jadwal Shalat digital yang gaul


Jadwal Shalat digital seperti di atas dapat di beli di tokopedia atau toko online lainnya dengan harga yang berpariasi.

Sekarang kira dapat mencoba membuat Jadwal Shalat . Karena Jadwal ini di poto di daerah karawang maka untuk daerah lain dapat disesuaikan dengan jadwal yang ada di daerah tersebut. 


Dari gambar di atas marilah kita ambil data jadwal shalatnya dan kemudian kita masukan ke dalam program arduino, Maksudnya datanya kita ketik ulang gitcuuuuu....!!!!!.. memang cape, tetapi untuk kemajuan ilmu pengetahuan tentunya harus ada sedikit pengorbanan.

Sebagai contoh coba perhatikan jadwal Shalat Bulan Januari

Tanggal 1-4     : Shubuh = 4:18, Dzuhur = 11:59, Ashar =15:25 , Maghrib = 18:13 , Isya = 19:28
Tanggal 5-9     : Shubuh = 4:20, Dzuhur = 12:01, Ashar =15:27 , Maghrib = 18:14 , Isya = 19:29
Tanggal 10-14 : Shubuh = 4:23, Dzuhur = 12:03, Ashar =15:28 , Maghrib = 18:16 , Isya = 19:31
Tanggal 15-19 : Shubuh = 4:26, Dzuhur = 12:05, Ashar =15:29 , Maghrib = 18:18 , Isya = 19:32
Tanggal 20-24 : Shubuh = 4:20, Dzuhur = 12:07, Ashar =15:30 , Maghrib = 18:19 , Isya = 19:32
Tanggal 25-27 : Shubuh = 4:32, Dzuhur = 12:08, Ashar =15:30 , Maghrib = 18:20 , Isya = 19:32
Tanggal 28-30 : Shubuh = 4:33, Dzuhur = 12:09, Ashar =15:30 , Maghrib = 18:20 , Isya = 19:33
Tanggal 31      : Shubuh = 4:34, Dzuhur = 12:09, Ashar =15:30 , Maghrib = 18:20 , Isya = 19:33

data di atas kita harus masukkan ke dalam program agar dapat di baca oleh mikrokontroller. Teorinya adalah mikrokontroller akan mengecek tanggal berapa sekarang ( di ambil dari modul RTC) kemudian akan mengecek data jadwal Shalat. nah jadwal Shalat pada tanggal tersebut akan ditampilkan di layar LCD.

data di atas dimasukan ke dalam listing program seperti di bawah ini.

if (Bulan ==1) {
if (tgl==1 || tgl==2|| tgl==3|| tgl== 4 )  { sh = 418; dz = 1159; as =1525 ; mg = 1813 ; is = 1928 ;}
if (tgl==5 || tgl==6|| tgl==7|| tgl== 8 || tgl==9 ) { sh = 420; dz = 1201; as =1527 ; mg = 1814 ; is = 1929 ;}
if (tgl==10 || tgl==11 || tgl==12 || tgl==13 || tgl==14 )  { sh = 423; dz = 1203; as =1528 ; mg = 1816 ; is = 1931 ;}
if (tgl== 15|| tgl==16 || tgl==17 || tgl== 18 || tgl==19  )  { sh = 426; dz = 1205; as =1529 ; mg = 1818 ; is = 1932 ;}
if (tgl== 20 || tgl== 21 || tgl==22 || tgl== 23 ||tgl== 24 ){ sh = 420; dz = 1207; as =1530 ; mg = 1819 ; is = 1932 ;}
if (tgl==25 || tgl== 26 || tgl==27  )         { sh = 432; dz = 1208; as =1530 ; mg = 1820 ; is = 1932 ;}
if (tgl== 28 || tgl== 29 || tgl==30  )       { sh = 433; dz = 1209; as =1530 ; mg = 1820 ; is = 1933 ;}
if (tgl== 31 )              { sh = 434; dz = 1209; as =1530 ; mg = 1820 ; is = 1933 ;}
}
LCD 16x2 hanya menampung sedikit karakter. Tentunya tidak dapat menampilkan semua data jadwal shalat yang ada. Kita dapat mensiasatinya dengan cara lcd yang menampilkan data yang berganti ganti.

Latihan awal lcd yang berganti karakter
Sebagai contoh kita akan memprogram alat agar tampilan LCD berganti ganti setiap 1 detik.

---------------------------------------------------------------------------------

#include <LiquidCrystal.h>
const int rs = 32, en = 34, d4 = 38, d5 = 40, d6 = 42, d7 = 36;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int hitungan=1;
String lcd1,lcd2 ;
void setup() {
    Wire.begin();
    lcd.begin(16,2);
}

void loop() {

 delay(1000);
 if (hitungan == 1 ) { lcd1 ="tampilan 1" ;  lcd2 ="tampilan 2" ; }
 if (hitungan == 2 ) { lcd1 ="tampilan 2" ;  lcd2 ="tampilan 3" ; }
 if (hitungan == 3 ) { lcd1 ="tampilan 3" ; lcd2 ="tampilan 4" ; }
 if (hitungan == 4 ) { lcd1 ="tampilan 4" ;   lcd2 ="tampilan 5" ; }
 lcd.setCursor(0,0);  lcd.print(lcd1);
  lcd.setCursor(0,1);  lcd.print(lcd2);
  hitungan = hitungan +1 ;
  if (hitungan > 4 ) hitungan =1;
  }
---------------------------------------------------------------------------------

Dari latihan di atas kita dapat kembangkan menjadi tampilan jadwal Shalat yang berganti ganti setiap detik.
Detik pertama lcd menampilkan jam pada baris 1 dan baris 2 menampilkan waktu shalat isya
dan detik berikutnya akan menampilkan waktu Shalat Shubuh, waktu Shalat Zhuhur, waktu Shalat Ashar dan waktu Shalat Maghrib

Cobalah program di bawah ini dan lihat hasilnya
---------------------------------------------------------------------------------
#include <LiquidCrystal.h>
const int rs = 32, en = 34, d4 = 38, d5 = 40, d6 = 42, d7 = 36;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int t1,t2,t3,j,mn,d,tg,bl,th,hk,tg2;
String hari;
String baris1,baris2;

int Bulan,tgl,sh,is,dz,as,mg, ht, hitung;
int menitisya1,menitisya2,menitshubuh1,menitshubuh2,menitzhuhur1,menitzhuhur2;
int menitashar1,menitashar2,menitmaghrib1,menitmaghrib2;
int menitisya,menitshubuh,menitzhuhur,menitashar,menitmaghrib;

int jamisya1,jamisya2,jamshubuh1,jamshubuh2,jamzhuhur1,jamzhuhur2;
int jamashar1,jamashar2,jammaghrib1,jammaghrib2;
int jamisya,jamshubuh,jamzhuhur,jamashar,jammaghrib;

String isya,shubuh,zhuhur, ashar, maghrib;

void setup() {
    Wire.begin();
    lcd.begin(16,2);
}

void loop() {
 delay(100);
  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());
  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="Sabtu" ;

   hitung = hitung + 1 ;
   if ( hitung > 5) {hitung = 0; ht =ht +1; if (ht> 8 ) ht=1; }
   if (ht==1)   baris2 = hari+ " "+ String (tg) +"-"+ String (bl)+"-20"+ String (th) ;
   if (ht==2)   baris2 = "Jadwal Shalat" ;
   if (ht==3)   baris2 = "Isya : " + isya;
   if (ht==4)   baris2 = "Shubuh : " + shubuh; ;
   if (ht==5)   baris2 = "Zhuhur : "+ zhuhur ;
   if (ht==6)   baris2 = "Ashar : "+ ashar ;
   if (ht==7)   baris2 ="Maghrib : " + maghrib ;
   if (ht==8)   baris2 = "Terima Kasih" ; 
  baris1= "Jam : "+String (j/10)+String (j%10) +":"+ String (mn/10) ;
 baris1= baris1 +String (mn%10)+":"+String (d/10)+String (d%10) ;
   lcd.clear() ;
  lcd.setCursor(0,0);
  lcd.print(baris1);
  lcd.setCursor(0,1);
  lcd.print(baris2);

tgl=tg ; Bulan =bl;
if (Bulan ==1) {
if (tgl < 5 ) { sh = 418; dz = 1159; as =1525 ; mg = 1813 ; is = 1928 ;}
if (tgl >4 ){ sh = 420; dz = 1201; as =1527 ; mg = 1814 ; is = 1929 ;}
if (tgl>9 ){ sh = 423; dz = 1203; as =1528 ; mg = 1816 ; is = 1931 ;}
if (tgl >14 ){ sh = 426; dz = 1205; as =1529 ; mg = 1818 ; is = 1932 ;}
if (tgl >19 ){ sh = 420; dz = 1207; as =1530 ; mg = 1819 ; is = 1932 ;}
if (tgl > 24 ){ sh = 432; dz = 1208; as =1530 ; mg = 1820 ; is = 1932 ;}
if (tgl>27 ) { sh = 433; dz = 1209; as =1530 ; mg = 1820 ; is = 1933 ;}
if (tgl>30 ){ sh = 434; dz = 1209; as =1530 ; mg = 1820 ; is = 1933 ;}
}
if (Bulan ==2) {
if (tgl<5) { sh = 435; dz = 1209; as =1529 ; mg = 1820 ; is = 1932 ;}
if (tgl>4) {sh = 440; dz = 1210; as =1523 ; mg = 1819 ; is = 1929 ;}
if (tgl>19){ sh = 441; dz = 1210; as =1520 ; mg = 1817 ; is = 1927 ;}
if (tgl>24) { sh = 442; dz = 1209; as =1518 ; mg = 1816 ; is = 1925 ;}
if (tgl>27){ sh = 442; dz = 1208; as =1514 ; mg = 1815 ; is = 1924 ;}
}
if (Bulan ==3) {
if (tgl<5){ sh = 441; dz = 1208; as =1512 ; mg = 1814 ; is = 1923 ;}
if (tgl>4){ sh = 442; dz = 1207; as =1507 ; mg = 1813 ; is = 1921 ;}
if (tgl>9) { sh = 441; dz = 1206; as =1509 ; mg = 1811 ; is = 1919 ;}
if (tgl>14){ sh = 441; dz = 1204; as =1511 ; mg = 1808 ; is = 1916 ;}
if (tgl>19){ sh = 441; dz = 1203; as =1512 ; mg = 1806 ; is = 1914 ;}
if (tgl>24) { sh = 440; dz = 1201; as =1513 ; mg = 1804 ; is = 1912 ;}
if (tgl>30) { sh = 439; dz = 1159; as =1513 ; mg = 1801 ; is = 1909 ;}
}
if (Bulan ==4) {
if (tgl<5){ sh = 439; dz = 1159; as =1514 ; mg = 1800 ; is = 1908 ;}
if (tgl>4){ sh = 438; dz = 1158; as =1514 ; mg = 1759 ; is = 1907 ;}
if (tgl>9) { sh = 438; dz = 1157; as =1514 ; mg = 1756 ; is = 1905 ;}
if (tgl>14) { sh = 437; dz = 1155; as =1514 ; mg = 1754 ; is = 1903 ;}
if (tgl>19){ sh = 436; dz = 1154; as =1514 ; mg = 1753 ; is = 1902 ;}
if (tgl>24) { sh = 435; dz = 1151; as =1514 ; mg = 1751 ; is = 1900 ;}
if (tgl>30) { sh = 435; dz = 1153; as =1513 ; mg = 1750 ; is = 1900 ;}
}
if (Bulan ==5) {
if (tgl<5){ sh = 435; dz = 1153; as =1513 ; mg = 1749 ; is = 1859 ;}
if (tgl>4){ sh = 435; dz = 1152; as =1513 ; mg = 1748 ; is = 1859 ;}
if (tgl>9){ sh = 434; dz = 1152; as =1513 ; mg = 1748 ; is = 1858 ;}
if (tgl>14){ sh = 434; dz = 1152; as =1513 ; mg = 1747 ; is = 1859 ;}
if (tgl>19){ sh = 435; dz = 1152; as =1514 ; mg = 1747 ; is = 1859 ;}
if (tgl>24) { sh = 435; dz = 1153; as =1514 ; mg = 1747 ; is = 1859 ;}
if (tgl> 30) { sh = 436; dz = 1154; as =1516 ; mg = 1747 ; is = 1900 ;}
}
if (Bulan ==6) {
if (tgl<5){ sh = 436; dz = 1154; as =1515 ; mg = 1747 ; is = 1900 ;}
if (tgl>4) { sh = 436; dz = 1154; as =1516 ; mg = 1748 ; is = 1901 ;}
if (tgl>9){ sh = 436; dz = 1155; as =1517 ; mg = 1748 ; is = 1902 ;}
if (tgl>14){ sh = 438; dz = 1157; as =1518 ; mg = 1749 ; is = 1903 ;}
if (tgl>9){ sh = 439; dz = 1158; as =1519 ; mg = 1750 ; is = 1904 ;}
if (tgl>24) { sh = 441; dz = 1159; as =1520 ; mg = 1751 ; is = 1905 ;}
if (tgl>30) { sh = 442; dz = 1200; as =1521 ; mg = 1752 ; is = 1906 ;}
}
if (Bulan ==7) {
if (tgl<5 ) { sh = 442; dz = 1200; as =1521 ; mg = 1753 ; is = 1906 ;}
if (tgl>4 ){ sh = 443; dz = 1201; as =1522 ; mg = 1754 ; is = 1907 ;}
if (tgl>9){ sh = 444; dz = 1201; as =1523 ; mg = 1754 ; is = 1908 ;}
if (tgl>14) { sh = 444; dz = 1102; as =1523 ; mg = 1755 ; is = 1908 ;}
if (tgl>19){ sh = 444; dz = 1202; as =1524 ; mg = 1756 ; is = 1908 ;}
if (tgl>24) { sh = 444; dz = 1202; as =1524 ; mg = 1757 ; is = 1909 ;}
if (tgl>27){ sh = 444; dz = 1202; as =1524 ; mg = 1757 ; is = 1908 ;}
}
if (Bulan ==8) {
if (tgl<5){ sh = 444; dz = 1202; as =1523 ; mg = 1753 ; is = 1906 ;}
if (tgl>4){ sh = 444; dz = 1202; as =1523 ; mg = 1754 ; is = 1907 ;}
if (tgl>9){ sh = 443; dz = 1201; as =1522 ; mg = 1754 ; is = 1908 ;}
if (tgl>14){ sh = 442; dz = 1200; as =1520 ; mg = 1755 ; is = 1908 ;}
if (tgl>19){ sh = 441; dz = 1159; as =1519 ; mg = 1756 ; is = 1908 ;}
if (tgl>24) { sh = 439; dz = 1157; as =1517 ; mg = 1757 ; is = 1909 ;}
if (tgl>27){ sh = 437; dz = 1156; as =1515 ; mg = 1757 ; is = 1908 ;}
}

if (Bulan ==9) {
if (tgl<5) { sh = 436; dz = 1155; as =1513 ; mg = 1755 ; is = 1903 ;}
if (tgl>4){ sh = 435; dz = 1154; as =1511 ; mg = 1754 ; is = 1902 ;}
if (tgl>9){ sh = 432; dz = 1152; as =1507 ; mg = 1753 ; is = 1901 ;}
if (tgl>14){ sh = 430; dz = 1150; as =1504 ; mg = 1752 ; is = 1900 ;}
if (tgl>19){ sh = 427; dz = 1149; as =1500 ; mg = 1751 ; is = 1859 ;}
if (tgl>24) { sh = 425; dz = 1147; as =1456 ; mg = 1750 ; is = 1858 ;}
if (tgl>27) { sh = 422; dz = 1145; as =1503 ; mg = 1749 ; is = 1857 ;}
}
if (Bulan ==10) {
if (tgl<5){ sh = 421; dz = 1145; as =1451 ; mg = 1749 ; is = 1857 ;}
if (tgl>4){ sh = 419; dz = 1144; as =1447 ; mg = 1749 ; is = 1857 ;}
if (tgl>9){ sh = 419; dz = 1144; as =1445 ; mg = 1750 ; is = 1857 ;}
if (tgl>14) { sh = 414; dz = 1141; as =1446 ; mg = 1758 ; is = 1857 ;}
if (tgl>19){ sh = 412; dz = 1140; as =1449 ; mg = 1758 ; is = 1857 ;}
if (tgl>24) { sh = 410; dz = 1140; as =1451 ; mg = 1758 ; is = 1857 ;}
if (tgl>27){ sh = 409; dz = 1139; as =1453 ; mg = 1748 ; is = 1858 ;}
if (tgl>30){ sh = 409; dz = 1139; as =1453 ; mg = 1748 ; is = 1858 ;}
}
if (Bulan ==11) {
if (tgl<5) { sh = 408; dz = 1139; as =1455 ; mg = 1749 ; is = 1859 ;}
if (tgl>4) { sh = 407; dz = 1139; as =1456 ; mg = 1749 ; is = 1900 ;}
if (tgl>9){ sh = 406; dz = 1140; as =1459 ; mg = 1750 ; is = 1902 ;}
if (tgl>14){ sh = 405; dz = 1141; as =1501 ; mg = 1758 ; is = 1904 ;}
if (tgl>19){ sh = 405; dz = 1142; as =1504 ; mg = 1758 ; is = 1907 ;}
if (tgl>24){ sh = 405; dz = 1143; as =1507 ; mg = 1756 ; is = 1909 ;}
if (tgl>30){ sh = 406; dz = 1145; as =1509 ; mg = 1758 ; is = 1912 ;}
}
if (Bulan ==12) {
if (tgl<5){ sh = 406; dz = 1145; as =1510 ; mg = 1759 ; is = 1813 ;}
if (tgl>4){ sh = 407; dz = 1147; as =1512 ; mg = 1800 ; is = 1915 ;}
if (tgl>9){ sh = 409; dz = 1149; as =1515 ; mg = 1803 ; is = 1918 ;}
if (tgl>14) { sh = 411; dz = 1152; as =1518 ; mg = 1806 ; is = 1921 ;}
if (tgl>19){ sh = 413; dz = 1154; as =1521 ; mg = 1808 ; is = 1923 ;}
if (tgl>24){ sh = 415; dz = 1156; as =1523 ; mg = 1811 ; is = 1926 ;}
if (tgl>30){ sh = 418; dz = 1159; as =1525 ; mg = 1813 ; is = 1928 ;}
}
jamshubuh=sh/100; jamshubuh1=jamshubuh/10; jamshubuh2=jamshubuh%10 ;
menitshubuh =sh%100;menitshubuh1 =menitshubuh /10; menitshubuh2 =menitshubuh %10;
shubuh =  String(jamshubuh1) + String(jamshubuh2) +":" + String(menitshubuh1) + String(menitshubuh2);

jamzhuhur =dz/100; jamzhuhur1= jamzhuhur/10; jamzhuhur2=jamzhuhur%10 ;
menitzhuhur =dz%100; menitzhuhur1 =menitzhuhur /10; menitzhuhur2 =menitzhuhur %10;
zhuhur = String(jamzhuhur1) + String(jamzhuhur2) +":" + String(menitzhuhur1) + String(menitzhuhur2);

jamashar =as /100; jamashar1= jamashar/10; jamashar2=jamashar%10 ;
menitashar =as %100; menitashar1 =menitashar /10; menitashar2 =menitashar %10;
ashar = String(jamashar1) + String(jamashar2) +":" + String(menitashar1) + String(menitashar2);

jammaghrib =mg /100; jammaghrib1= jammaghrib/10; jammaghrib2=jammaghrib%10 ;
menitmaghrib =mg %100; menitmaghrib1 =menitmaghrib /10; menitmaghrib2 =menitmaghrib %10;
maghrib = String(jammaghrib1) + String(jammaghrib2) +":" + String(menitmaghrib1) + String(menitmaghrib2);

jamisya =is /100; jamisya1= jamisya/10; jamisya2=jamisya%10 ;
menitisya =is %100; menitisya1 =menitisya /10; menitisya2 =menitisya %10;
isya = String(jamisya1) + String(jamisya2) +":" + String(menitisya1) + String(menitisya2);
delay (200);
}
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) );
}
---------------------------------------------------------------------------------

Kembali ke  halaman awal
Lanjut ke halaman 4

Komentar

Postingan populer dari blog ini

Halaman 5

Halaman1

Halaman 2