Jam Digital dengan Modul TM1637 dan Arduino UNO
Kalau pada postingan sebelumnya kita telah mempelajari dan membuat program Arduino sederhana untuk menampilkan 7 segment dengan modul TM1637, sekarang akan kita kembangkan lagi. Kali ini kita akan memakai modul 7 segment jenis TM1637 untuk membuat jam digital RTC DS3231 dengan Arduino UNO. Jadi kalau pada postingan sebelumnya kita membuat Kalender digital dengan tampilan LCD, sekarang tampilannya seven segment.
Sebagai sistem pewaktunya kita pakai modul RTC DS3231.Modul display seven segment TM1637 terdiri dari 4 digit 7 segment ukuran kecil yaitu 0,36″ . Modul ini sangat memudahkan kita dalam membuat aplikasi Arduino dengan display 7 segment. Kenapa ? ya karena menjadi sangat sederhana. Jika kita membuat rangkaian seven segment biasa maka kita akan memerlukan transistor dan resistor untuk driver-nya, belum lagi akan membutuhkan banyak pin untuk mengontrol masing – masing segment (A, B, C, D, E, F, G, DOT). Dengan modul TM1637 cukup 2 pin saja : CLK dan DATA.
Berikut ini spesifikasi dasar modul seven segment TM1637 :
- Jumlah digit: 4 Digit
- Pin I/O: 2 Pin
- Ukuran: 42mm*24mm*12mm
- Display: 3.06 Inch
- Supply: 5V
- Warna: RED (Merah)
- Two wire interface
Modul RTC (Real Time Clock) DS3231 mempunyai kaki 6 pin dan cukup 4 pin saja yang kita hubungkan dengan Arduino UNO.
Selanjutnya kita siapkan komponen Jam Digital RTC Ds3231 dengan TM1637 dan Arduino UNO.
- Arduino UNO
- Modul TM1637
- Modul RTC Ds3231
- Breadboard
- Kabel konektor
Ok berikutnya kita buat rangkaian seperti pada gambar.
Setelah rangkaian modul seven segment TM1637 , modul RTC DS3231dan Arduino UNO jadi, berikutnya kita siapkan programnya. Komunikasi modul TM1637 memakai system two wire dan untuk RTC DS3231 memakai system I2C. Sama – sama 2 pin tetapi berbeda metodenya. Tenang … tidak perlu khawatir, soalnya sudah banyak library Arduino yang menyiapkannya, kita tinggal pakai saja, salah satunya disini : TM1637.H. Library untuk RTC DS3231 dapat download [download id=”1194″]. Silakan di-download dulu kemudian masukkan ke folder libraries dimana anda menyimpan file aplikasi Arduino IDE. Ok library sudah siap ? Sekarang saatnya jalankan Arduino IDE dan ketik program berikut :
/************************************************ * Jam Digital dg TM1637 Modul, Arduino UNO * & Modul RTC DS3231 * www.ardutech.com ***********************************************/ #include <Wire.h> #include <DS3231.h> #include <TM1637Display.h> #define CLK 2 #define DIO 3 TM1637Display display(CLK, DIO); DS3231 rtc(SDA, SCL); // Module connection pins (Digital Pins) Time t; unsigned int h,m,s; byte f; //========================= void setup() { rtc.begin(); display.setBrightness(0x0f); //-------------------------------------------------------------- //aktifkan baris perintah ini untuk seting RTC //lakukan jika waktu tidak sesuai //cukup sekali saja, setelah itu di-non-aktifkan lagi perintahnya //rtc.setDate(11,10,2019); //setting tanggal 11 Oktober 2019 //rtc.setTime(8, 15, 00); //setting jam 08:15:00 //rtc.setDOW(5); //setting hari Jumat, 0=Minggu,1=Senin //--------------------------------------------------------------- } //================== void loop() { t = rtc.getTime(); h=t.hour,DEC; m=t.min,DEC; s=t.sec,DEC; h=(h*100+m); if(f==0){ display.showNumberDecEx(h, 64); f=1;} else{ display.showNumberDecEx(h, 0); f=0; } delay (1000); }
Simpan (Save) programnya kemudian Upload. Kita lihat hasilnya. Pada modul seven segment tampil jam digital dengan format : ”HH : MM”.
Jika jam belum tampil normal silakan seting dan sesuaikan jam dan tanggalnya, caranya melalui program. Perhatikan program berikut (yang banyak dikasih kode komentar //) :
//-------------------------------------------------------------- //aktifkan baris perintah ini untuk seting RTC //lakukan jika waktu tidak sesuai //cukup sekali saja, setelah itu di-non-aktifkan lagi perintahnya //rtc.setDate(11,10,2019); //setting tanggal 11 Oktober 2019 //rtc.setTime(8, 15, 00); //setting jam 08:15:00 //rtc.setDOW(5); //setting hari Jumat, 0=Minggu,1=Senin //---------------------------------------------------------------
Isi nilainya sesuai kondisi sekarang kemudian hilangkan tanda komentar // agar perintah ikut dieksekusi sehingga RTC akan di-seting. Misalnya sekarang jam 14:35 tanggal 15 Agustus 2019 maka programnya menjadi :
//-------------------------------------------------------------- //aktifkan baris perintah ini untuk seting RTC //lakukan jika waktu tidak sesuai //cukup sekali saja, setelah itu di-non-aktifkan lagi perintahnya rtc.setDate(15,8,2019); //setting tanggal 15 Agustus 2019 rtc.setTime(14, 35, 00); //setting jam 14:35:00 rtc.setDOW(5); //setting hari Jumat, 0=Minggu,1=Senin //---------------------------------------------------------------
Upload programnya, jangan lupa kasih tanda komentar lagi atau hapus perintah tadi kemudian Upload lagi, agar ketika re-start (on lagi) RTC tidak ke-seting ke nilai semula.
Semoga bermanfaat