Jam Real time berasaskan Arduino ini adalah jam digital untuk memaparkan masa nyata menggunakan RTC IC DS1307 yang berfungsi pada protokol I2C. Jam masa nyata bermaksud ia berjalan walaupun selepas gangguan kuasa. Apabila kuasa disambungkan semula, ia akan memaparkan masa sebenar tanpa mengira waktu dan tempohnya dalam keadaan mati. Dalam projek jam penggera Arduino ini, kami telah menggunakan modul LCD 16x2 untuk memaparkan waktu dalam format - "jam, minit, saat, tarikh, bulan dan tahun". Pilihan Penggera juga ditambahkan dan kami dapat mengatur masa penggera. Setelah waktu penggera disimpan di EEPROM dalaman arduino, ia tetap disimpan walaupun selepas tetapan semula atau kerosakan elektrik. Jam masa nyata biasanya digunakan di komputer, rumah, pejabat dan alat elektronik kami untuk memastikannya dikemas kini dengan masa nyata.
Protokol I2C adalah kaedah untuk menghubungkan dua atau lebih peranti menggunakan dua wayar ke satu sistem, dan oleh itu protokol ini juga disebut sebagai protokol dua wayar. Ia dapat digunakan untuk menyampaikan 127 peranti ke satu alat atau pemproses. Sebilangan besar peranti I2C berjalan pada frekuensi 100Khz.
Langkah untuk master penulisan data kepada hamba (mod penerimaan hamba)
- Menghantar syarat MULAI kepada hamba.
- Menghantar alamat hamba kepada hamba.
- Hantar bit tulis (0) kepada hamba.
- Menerima bit ACK dari hamba
- Menghantar kata-kata alamat kepada hamba.
- Menerima bit ACK dari hamba
- Menghantar data kepada hamba.
- Menerima bit ACK dari hamba.
- Dan terakhir menghantar syarat STOP kepada hamba.
Langkah-langkah untuk membaca data dari hamba ke master (mod penghantaran hamba)
- Menghantar syarat MULAI kepada hamba.
- Menghantar alamat hamba kepada hamba.
- Hantar bit baca (1) kepada hamba.
- Menerima bit ACK dari hamba
- Menerima data dari hamba
- Menerima bit ACK dari hamba.
- Menghantar syarat STOP kepada hamba.
Untuk membina jam digital berasaskan RTC DS1307 IC ini , kami telah menggunakan Arduino Pro Mini di sini, tetapi anda juga boleh menggunakan model Arduino lain seperti Arduino Uno atau Arduino Nano. Bersama dengan papan Arduino, DS1307 RTC IC, kami telah menggunakan modul LCD 16x2 untuk memaparkan waktu dan tarikh, osciallator kristal, pengatur voltan 7805, bel dan beberapa transistor dan perintang.
Gambarajah dan Penerangan Litar
Dalam litar jam digital berasaskan Arduino ini, kami telah menggunakan tiga komponen utama iaitu IC DS1307, Arduino Pro Mini Board dan modul LCD 16x2.
Di sini arduino digunakan untuk membaca waktu dari ds1307 dan memaparkannya pada LCD 16x2. DS1307 menghantar masa / tarikh menggunakan 2 baris ke arduino. Bel juga digunakan untuk petunjuk penggera, yang berbunyi ketika penggera diaktifkan. Gambarajah blok ditunjukkan di bawah untuk memahami cara kerja Jam Masa Nyata ini.
Seperti yang anda lihat dalam gambarajah litar, cip pin DS1307 SDA dan SCL disambungkan ke arduino pin SDA dan SCL dengan perintang tarik yang menahan nilai lalai TINGGI pada garis data dan jam. Pengayun kristal 32.768KHz disambungkan dengan cip DS1307 untuk menghasilkan kelewatan tepat 1 saat, dan bateri 3 volt juga disambungkan ke pin 3 rd (BAT) DS1307 yang memastikan masa terus berjalan setelah kerosakan elektrik. LCD 16x2 disambungkan dengan arduino dalam mod 4-bit. Pin kawalan RS, RW dan En disambungkan secara langsung ke arduino pin 2, GND dan 3. Dan pin data D0-D7 disambungkan ke arduino 4, 5, 6, 7. Buzzer dihubungkan dengan pin arduino nombor 13 melalui transistor NPN BC547 yang mempunyai perintang 1 k di dasarnya.
Tiga butang iaitu set, INC dan Next digunakan untuk menetapkan penggera ke pin 12, 11 dan 10 arduino dalam mod rendah aktif. Ketika kita menekan set, mod set penggera diaktifkan dan sekarang kita perlu mengatur penggera dengan menggunakan butang INC dan butang Berikutnya digunakan untuk beralih ke angka. Penyediaan papan roti lengkap jam masa nyata ini dengan penggera ditunjukkan dalam gambar di bawah. Anda juga boleh memeriksa tutorial terperinci jam penggera digital dengan mikrokontroler AVR.
Penerangan Program
Untuk memprogram jam sebenar ini, kami telah menggunakan beberapa perpustakaan untuk mengekstrak masa / tarikh dari DS1307 dan untuk dipaparkan di LCD, yang diberikan di bawah:
Dan inisialisasi RTC, LCD dan output input dilakukan dalam gelung persediaan.
Perkara-perkara lain seperti waktu membaca, menetapkan penggera dilakukan di bahagian gelung kosong.