DIY Jadwal Sholat Digital Menggunakan ATMEGA8

 









Shalat fardhu sebagai kewajiban yang diwajibkan Allah kepada ummat Islam, sebanyak lima kali sehari semalam, ditetapkan dengan berwaktu. Hal ini ditegaskan-Nya dalam firman-Nya sbb:


 Maka apabila kamu telah menyelesaikan shalat(mu), ingatlah Allah di waktu berdiri, di waktu duduk dan di waktu berbaring, kemudian apabila kamu telah merasa aman, maka dirikanlah shalat itu (sebagaimana biasa). Sesungguhnya shalat itu adalah fardhu yang ditentukan waktunya atas orang-orang yang beriman.(QS. an-Nisa 103)

Pelaksanaan shalat tersebut telah diatur oleh Allah baik dari segi waktu, tata-cara pelaksanaan dan bacaannya sehingga umat Islam tidak diberi hak untuk merubah, yang sering disebut dengan ibadah mahdlah (khusus). Waktu-waktu yang ditentukan itu, dalam fiqih Islam dikenal dengan:

 
1.    Subuh
2.    Dzuhur
3.    Ashar
4.    Magrib
5.    Isya’

 

Berkenaan dengan ini, mikrodb akan berbagi mengenai cara membuat display pengingat jadwal sholat digital..yang mana mudah2n dengan ada nya display pengingat  jadwal sholat digital ini,mudah-mudahan  bisa membuat kita ( penulis dan pembaca sekalian ) untuk tetap menjaga waktu sholat dalam arti bisa melaksanakan sholat pada waktu2 yang sudah ditetapkan, aamiin.

Project kali ini adalah membuat display pengingat waktu sholat digital versi A. Dimana versi  A ini adalah display jadwal dengan menggunakan teknik penulisan data2 waktu sholat berdasarkan table waktu sholat ke dalam eeprom, jadi semua data2 waktu sholat ( selama 1 th ) kita isikan secara langsung pada eeprom.

Tabel data waktu sholat tiap daerah tersebut bisa kita dapatkan di web http://www.jadwalsholat.org/

Oke, kita mulai..pertama berikut adalah rangkaian / skema display jadwal sholat nya..

 

 

 

Pada gambar diatas kita bagi menjadi beberapa blok/bagian.

1.       1. Mater control

 2. RTC

3.       3. EEPROM

4.       4. Display ( Jam,Tanggal,Jadwal )

5.       5. Buzzer

 

Nah, sekarang kita akan bahas per bagian ya….

 Master Kontrol

Bagian ini terdiri dari sebuah mikrokontroler Atmega8, yang pasti kita sudah sangat sering mendengar , atau lebih2 sudah sering membuat project mikro menggunakan mikro tipe ini. Kenapa disni kita memilih chip tsb? Alasan nya selain mudah didapat dan murah, juga chip ini cukup handal dan dengan fitur kapasitas memory sebesar 8KB dan dengan jumlah pin sebanyak 28 pinjadi cukup untuk membuat project ini.

Untuk lengkap nya silahkan unduh datasheet mikrokontroler ATmega8, disini

 

2.       RTC

RTC ( Real Time Clock ) merupakan suatu chip (IC) yang memiliki fungsi sebagai penyimpan data  waktu dan tanggal.  Disini kita akan menggunakan chip RTC DS1307 yang dapat meyimpan data-data detik, menit, jam, tanggal, bulan, hari dalam seminggu, dan tahun valid hingga 2100,

Alamat dan data dikirim melalui komunikasi I2C, yaitu hanya menggunakan 2 pin ( SDA,SCL ). Banyak hari dalam satu bulan sudah diatur secara otomatis oleh IC ini, baik itu jumlah hari yang paling besar ( 31hari ) atau jumlah hari yang paling kecil ( 28hari ). Mode jam tersedia dalam 2 format , yaitu format 12 jam atau 24 jam.  

Untuk lengkap nya silahkan unduh datasheet RTC DS1308, disini

 

3.       EEPROM

EEPROM disini berfungsi sebagai tempat penyimpanan data-data waktu sholat.Ya, jadi data waktu sholat selama 1 tahun itu kita isikan ke dalam eeprom. Dan data waktu sholat selama 1 tahun itu kalau kita hitung kemaren membutuhkan memory sebesar 9000 byte alias 9KB ( kilobyte ). Nah tadi nya sih pikir kita pakai eeprom internal nya Atmega8 aja, tapi eeprom internal nya atmega8 cuman 512 byte , jadi kurang banyak..Oleh karena itu kita pakai eeprom external biar aman. hehe

Disini kita menggunakan eeprom 64KB sebanyak 2 buah. Lho kenapa pakai 2 buah ?
Coba kita hitung dulu..

Eeprom 64Kb( kilo bit ) = 64 x 1024 = 65536 bit
                                 = 65536 : 8 = 8192 byte

 

Sedangkan kebutuhan kita adalah sekitar 9000 byte, jadi kurang sekitaran 808 byte. Nah kemaren pas mau beli bahan kebetulan cuman ada 64KB, jadi yasudah kita pakai 2 buah eeprom 64KB. Walaupun sbeenrnya satu nya akan bisa dikatakan mubazir, karena tersisa banyak memory nya. Tapi ga masalah lah, disisi lain toh harga eeprom murah kan? :D
Oh ya, eeprom yang dipakai yang jenis serial , jadi kita pakai AT24C64 ( 2 pcs ).

Berikut skema bagian eeprom dan koneksi nya ke mikrokontroler

 

Perhatikan susunan eeprom pada rangkaian diatas..Pin A0 – A2 digunakan untuk menentukan alamat dari eeprom yang bersangkutan, dan sebaik nya antara eeprom 1 dan 2 dibedakan alamat nya.

Pada rangkaian diatas, untuk eeprom 1 ( yang bawah ) alamat nya dalah 000 dan jika ditulis dalam format 1010,a0,a1,a2,r/w = 10100000

Sedang untuk eeprom 2 ( yang atas ) alamat nya adalah 010 dan jika ditulis dalam format 1010,a0,a1,a2,r/w = 10100100

Untuk r/w sendiri adalah bit pada operasi pembacaan (R) atau penulisan (W). Jika r/w bernilai 0 maka eeprom akan melakukan operasi Write alias penulisan data, jika r/w bernilai 1 maka eeprom akan melakukan operasi Read alias pembacaan.

Kemudian untuk pin WP ( Write Protect ) kita hubungkan ke ground , supaya eeprom bekerja secara normal bisa baca dan bisa tulis. Akan tetapi jika pin WP kita hubungkan ke Vcc, maka penulisan data ke alamat tertinggi tidak diperbolehkan.

 

1.       Display

Nah, tentu bagian display adalah menjadi bagian yg sangat pokok karena display inilah yang akan menjadi indikasi visual mengenai waktu-waktu sholat sesuai yang sedang kita bahas. Untuk display kami menggunakan  7segment sebanyak 36 display, yang kita bagi menjadi 3 bagian, yaitu :

a)  Display Jam ( 6 digit, dengan format HH:MM:SS )
b)  Display Tanggal ( 6 digit, dengan format DD:MM:YY )
c)  Display jadwal ( 24 digit yang terbagi menjadi 5 waktu sholat + 1 waktu untuk imsak ,dengan masing2 waktu menggunakan 4 digit, dengan format HH:MM )         

Disini kita menggunakan teknik shif register menggunakan ic 74hc595, sehingga akan menghemat pemakaian pin dibandingkan dengan teknik multiplexing.  Setiap blok display hanya membutuhkan 3 pin control ( DS,SH,ST ). Sehingga, untuk menangani 3 blok display membutuhkan 9 pin.  Di internet sudah banyak yang bahas mengenai bagaimana teknik bermain dengan ic ini, jadi kita ga bahas ya disni ya .. J, dan untuk datasheet ic 74hc595 sendiri bisa anda unduh disini.

 

2.       Buzzer

Buzzer kita gunakan untuk indikasi audio ( bunyi tiiiittttt ) yang akan selalu berbunyi setiap waktu sholat tiba sesuai dengan jadwal yang sudah kita isikan ke dalam eeprom. 

Selanjut nya kita akan uji dulu bagian rtc ( untuk menampilkan jam dan tanggal )

 

 

Gambar diatas menunjukkan hasil simulasi proteus menampilkan jam dan tanggal. Itu artinya bagian rtc sudah bekerja dengan baik, untuk selanjut nya kita akan menuju bagian display jadwal. Kita perhatikan tampilan display jadwal pada saat pengujian tadi tampil seperti ini :


 

Hal ini dikarenakan belum ada data yang kita isikan ke dalam eeprom nya. Oleh karena itu langkah selanjut nya kita akan mulai masukkan data waktu sholat nya.

Pertama kita harus kumpulkan  data waktu sholat sesuai dengan daerah kita, bukai situs http://www.jadwalsholat.org/, lalu silahkan pilih nama daerah nya.

Saya coba untuk menampilkan table data waktu sholat untuk wilayah Kayu Agung ( Palembang )

Table nya seperti ini untuk bulan Juli 2014

 

 

Pada table diatas, kita ambil dan kumpulkan saja untuk table sholat 5 waktu ( subuh, dzuhur,ashar,magrib,isya ditambah 1 waktu lagi untuk imsyak ). Kemudian data waktu yang sudah kita punya tadi kita masukkan ke eeprom.Nah, disini ada sedikit yang menarik. Bayangin kalau kita memasukkan data – data tersebut secara manual alias satu2,  butuh waktu berapa lama untuk memasukkan keseluruhan data ( data waktu sealama 12 bulan ) ? Olehkarena itu, disni kita membuat software sendiri menggunakan VB ( Visual basic ), dimana keberadaan software ini kita fungsikan sebagai asisten kita untuk kita suruh menuliskan semua data tersebut ke dalam eeprom secara otomatis.  Dan kita bisa mengisikan semua data tersebut langsung dari port serial mikro.Karena pada program mikrokontroler nya kita sudah membuat prosedur untuk menulis data ke eeprom, sehingga kita bisa langsung mengisikan data2 tersebut tanpa lepas eeprom.

 

 Berikut adalah tampilan software yang kita beri nama “Serprom Tools V1.0

Dengan software ini, kita bisa memasukkan data-data waktu nya secara otomatis dengan sistem pengalamatan yang sudah diatur secara otomatis pula oleh software ini.

Untuk testing, kita akan coba memasukkan data waktu untuk bulan Juli.

Pertama pilih nama Bulan pada combo box lalu, klik tombol “open”

Sehingga akan tampil seperti ini

Selanjut nya, pilih tanggal pada frame “Hasil Parsing” , karena kita akan memasukkan data  bulan Juli dan anggap saja untuk testing kali ini kita akan menuliskan data waktu dimulai tanggal hari saat artikel ini ditulis yaitu tanggal 26.

Pilih tanggal nya pda combox dan klik tombol “split”. Sehingga akan ditampilkan hasil perwaktu nya , seperti ini :


Berikut nya, klik tombol “Hitung Alokasi Alamat” maka akan ditampilkan data waktu per digit nya dan sekaligus ditentukan alamat pada eeprom nya. Seprti ini :

 

Untuk memulai proses penulisan data .kita membutuhakn koneksi serial ke mikro nya..dan untuk mencoba nya di simulasi..berikut langkah2 nya :

Unduh dulu VSPE ( virtual serial port emulator ), disni , kemudian lakukan instalasi pada pc

 

Setelah itu jalan program VSPE nya, dan lakukan pengaturan dengan langkah2 berikut.

 

Klik menu “Device à Create”

 

Pilih “connector” lalu klik Next

 

Pilih nomor COM nya, setelah itu klik Finish

Hasil nya

 

 

Virtual com1 sudah terbuat dan status sudah ready..Sekarang kita perlu pasang COMPIM di proteus nya.

Kemudian atur baudrate Virtual Serial nya ( karena kita menggunakan Virtual Serial Port )

 

Setelah itu klik OK.Kemudiaan jalan kan simulasi nya.Untuk selanjut nya kita kembali ke Software Serprom nya, disana kita lakukan koneksi serial port nya dengan meng klik tombol “connect”, maka secara otomatis software akan mencari port yang sedang terkoneksi..

Lanjut…..klik tombol “Auto Send Data”, maka proses penulisan data dari software ke eeprom ( pada simulasi proteus ) akan berjalan ditandai dengan indikasi di atas tombol auto send data tersebut akan blink merah-hijau..sampai selesai proses penulisan data dari tanggal 26 Juli sampai dengan 31 Juli.

Indikasi pada software akan blink , begitu juga jika kita perhatikan pada pin Rx pada COMPIM di simulasi nya juga akan blink sebagai indikasi bahwa proses kirim data dari software ke mikro sedang berjalan.

Tunggu saja sampai proses selesai..ditandai dengan Messagebox

Karena artikel ini ditulis nya dari kemaren ( tanggal 26 Juli 2014 ) dan kemaren blm sempet lanjut untuk  ambil capture hasil tampilan nya..keburu  ada keperluan, jadi  baru dilanjut di tanggal 27 Juli 2014 siang ini, nah ini  capture hasil tampilan display jadwal sholat nya untuk tanggal 27 Juli 2014. Seperti gambar dibawah ini.


Cek dengan table data yang ada, apakah hasil nya sama?

Dua waktu yang saya coret pada table diatas merupakan table data waktu untuk Terbit Matahari dan Data waktu Dhuha. Karena di project kita kali ini hanya untuk penampil jadwal sholat 5 waktu ditambah dengan 1 waktu yaitu imsyak, jadi untuk data waktu yang lain nya tidak kita masukan.

Catt : Saat kita coba keseluruhan rangkaian pada simulasi proteus, terlihat sangat lambat sekali respon nya, ini dikarenakan mungkin cpu terlalu terbebani dengan rangkaian yang sangat banyak seperti rangkaian diatas tsb, apalagi ada rtc terlihat lambat update data nya..jadi alangkah baik nya jika anda langsung saja mencoba nya di hardware..karena yang kita share ini sudah kami uji dan testing terlebih dahulu, dan kebetulan juga habis buat project kemaren…

berikut dokumentasi hardware  nya









Simulasi, Firmware dan Serprom Tools nya bisa anda unduh disini..

Semoga bermanfaat bagi temen2 yang lagi cari referensi buat project / tugas/yg lain nya...atau kalau mungkin temen2 ga punya waktu untuk mencoba membuat sendiri...silahkan klik disini..open ORDER... :)

Iya deh.., sekian dlu artikel ini semoga bermanfaat bagi temen2 yang tertarik untuk membuat display jadwal sholat nya.. :)

Oh iya..Berhubung ini sudah bau2 nya lebaran ( Insya ALLAh besok ) sudah lebaran.hehe.jadi tak lupa kami a/n “Team MikroDB”  mengucapkan “Selamat Hari Raya Idul Fitri  1 Syawal 1435H, Minal Aidzin Wal Faidzin” mohon maaf lahir dan batin atas segala salah/khilaf..



 


 

 

 

 

 

Comments   

0 #57 ichai 2016-04-21 11:11
Salam Kenal

Mas , boleh minta source code dari file *.hex ( progam file )

kirim ke
Quote
0 #56 ichai 2016-04-20 17:55
Salam Kenal

Mas kalau boleh saya minta source codenya untuk lib_7seg.hex

kirim ke :
Quote
0 #55 ichai 2016-04-20 17:51
Mas , kalau boleh saya minta source code dari hex filenya ( lib_7seg.hex)

Quote
0 #54 Arby Ahmad 2016-03-31 19:31
mas, tolongin minta SerProm Tools V1.0
Quote
0 #53 rifa 2016-01-05 18:54
tolong dong mas serprom tools nya.
Quote
0 #52 doni iswoko 2015-12-23 21:24
langsung via serial [t,jamtanggal]
misal jam = 02:00:00 dan tanggal 10-04-2014
maka :
[t,020000100414]
Quote
0 #51 anto 2015-11-15 12:44
wah trim saringnya moga tambah berkah ilmunya / terus mo tanya sekalian file sevron ama proteusnya kok ngak jalan yhah mungkin bisa bantu ke . trim atas bantuanaya
Quote
0 #50 Hari Zaky 2015-11-10 00:56
Ikut nyimak & belajar mas Boss..
www.timersholat.com
Quote
0 #49 WAHYUDI 2015-10-27 16:17
salam kenal
kalau mau kursus gimana ya trims
Quote
0 #48 WAHYUDI 2015-10-27 16:16
Mas kalau mau kursus biayanya berapa ya
dan tempatnya mana ini?
Quote

Add comment


Security code
Refresh