Jam real time berbasis Arduino ini merupakan jam digital untuk ditampilkan secara real time menggunakan IC RTC DS1307 yang bekerja pada protokol I2C. Jam waktu nyata berarti ia bekerja bahkan setelah listrik mati. Ketika daya disambungkan kembali, ini menampilkan waktu nyata terlepas dari waktu dan durasi saat itu dalam keadaan mati. Dalam proyek jam alarm Arduino ini kami telah menggunakan modul LCD 16x2 untuk menampilkan waktu dalam format - "jam, menit, detik, tanggal, bulan dan tahun". Opsi Alarm juga ditambahkan dan kita dapat mengatur waktu alarm. Setelah waktu alarm disimpan di EEPROM internal Arduino, itu tetap disimpan bahkan setelah reset atau listrik mati. Jam waktu nyata biasanya digunakan di komputer, rumah, kantor, dan perangkat elektronik kami untuk menjaganya agar tetap diperbarui secara waktu nyata.
Protokol I2C adalah metode untuk menghubungkan dua atau lebih perangkat menggunakan dua kabel ke satu sistem, sehingga protokol ini juga disebut sebagai protokol dua kabel. Ini dapat digunakan untuk mengkomunikasikan 127 perangkat ke satu perangkat atau prosesor. Sebagian besar perangkat I2C berjalan pada frekuensi 100Khz.
Langkah-langkah penulisan data master ke slave (mode penerimaan slave)
- Mengirim kondisi MULAI ke budak.
- Mengirim alamat budak ke budak.
- Kirim bit tulis (0) ke budak.
- Menerima bit ACK dari budak
- Mengirimkan kata-kata alamat ke budak.
- Menerima bit ACK dari budak
- Mengirim data ke budak.
- Menerima bit ACK dari budak.
- Dan terakhir mengirimkan kondisi STOP ke budak.
Langkah-langkah untuk membaca data dari slave ke master (mode transmisi slave)
- Mengirim kondisi MULAI ke budak.
- Mengirim alamat budak ke budak.
- Kirim bit baca (1) ke budak.
- Menerima bit ACK dari budak
- Menerima data dari budak
- Menerima bit ACK dari budak.
- Mengirim kondisi STOP ke budak.
Untuk membangun jam digital berbasis IC RTC DS1307 ini , kami telah menggunakan Arduino Pro Mini di sini, tetapi Anda juga dapat menggunakan model Arduino lainnya seperti Arduino Uno atau Arduino Nano. Bersama dengan papan Arduino, IC RTC DS1307, kami telah menggunakan modul LCD 16x2 untuk menampilkan waktu dan tanggal, osilator kristal, pengatur tegangan 7805, bel dan beberapa transistor dan resistor.
Diagram Sirkuit dan Deskripsi
Pada rangkaian jam digital berbasis Arduino ini, kami telah menggunakan tiga komponen utama yaitu IC DS1307, Arduino Pro Mini Board dan modul LCD 16x2.
Di sini arduino digunakan untuk waktu membaca dari ds1307 dan menampilkannya pada LCD 16x2. DS1307 mengirimkan waktu / tanggal menggunakan 2 baris ke Arduino. Bel juga digunakan untuk indikasi alarm, yang berbunyi bip saat alarm diaktifkan. Diagram blok ditampilkan di bawah ini untuk memahami cara kerja Jam Waktu Nyata ini.
Seperti yang Anda lihat pada diagram rangkaian, pin chip DS1307 SDA dan SCL terhubung ke pin arduino SDA dan SCL dengan resistor pull up yang memegang nilai default TINGGI pada jalur data dan jam. Osilator kristal 32.768KHz dihubungkan dengan chip DS1307 untuk menghasilkan penundaan 1 detik yang tepat, dan baterai 3 volt juga dihubungkan ke pin 3 rd (BAT) dari DS1307 yang menjaga waktu tetap berjalan setelah listrik padam. LCD 16x2 terhubung dengan Arduino dalam mode 4-bit. Pin kontrol RS, RW dan En terhubung langsung ke pin arduino 2, GND dan 3. Dan pin data D0-D7 terhubung ke 4, 5, 6, 7 arduino. Sebuah buzzer dihubungkan dengan pin arduino nomor 13 melalui transistor NPN BC547 yang memiliki resistor 1 k pada alasnya.
Tiga tombol yaitu set, INC dan Next digunakan untuk mengatur alarm ke pin 12, 11 dan 10 arduino dalam mode rendah aktif. Ketika kita menekan set, mode set alarm aktif dan sekarang kita perlu mengatur alarm dengan menggunakan tombol INC dan tombol Next digunakan untuk pindah ke digit. Pengaturan papan tempat memotong roti lengkap dari jam waktu nyata ini dengan alarm ditunjukkan pada gambar di bawah ini. Anda juga dapat memeriksa tutorial detail tentang jam alarm digital dengan mikrokontroler AVR.
Deskripsi Program
Untuk memprogram jam waktu nyata ini, kami telah menggunakan beberapa pustaka untuk mengekstrak waktu / tanggal dari DS1307 dan untuk ditampilkan di LCD, yang diberikan di bawah ini:
Dan inisialisasi RTC, LCD dan input output dilakukan dalam loop pengaturan.
Hal-hal lain seperti waktu membaca, pengaturan alarm dilakukan di bagian void loop.