Penjelasan Singkat
Digital Clock adalah waktu yang menunjukan data mulai dari detik, menit, jam, hari, bulan, tahun, dan bahkan nama hari yang ditampilkan dalam bentuk digital.
Perbedaannya dengan Analog Clock yaitu pada tampilannya apabila pada analog clock ditunjukan dengan adanya jarum penunjuk waktu yang terdiri atas jarum penunjuk jam, menit dan serta detik.
Pada kesempatan ini dibuatlah jam digital yang menggunakan module ATTINY85 dengan penampilnya pada LCD 16×4 yang dimana total project ini hanya membutuhkan uang 150rb untuk membeli semua kebutuhannya.
Bahan – bahan yang diperlukan serta daftar perkiraan harga yaitu
- Module ATTINY85 (dengan USB micro) – Rp. 25.000
- LCD 16×4 dan module i2c LCD PCF8574 – Rp. 95.000
- Module RTC DS3231 – Rp. 20.000
- Kabel isi 2 (2m) – Rp. 2.000
- pcb bolong – Rp. 8.000
- Catu daya 5v – Rp. 10.000
Bahan diatas dapat anda mudah dapatkan di toko online-online seperti tokopedia, bukalapak, shopee, ataupun di aliexpress yang dikirim dari luar negeri.
Sekedar tips, cari komponen dengan mode search yang di filter “terlaris” atau penjualan terbanyak, dikarenakan itu akan membantu dalam kualitas maupun harga yang sebanding.
Skema yang dirancang
Hal untuk memrogram rangkaian diatas
- Untuk penggunaan pertama kali dapat dicek di link ini
- Library yang dibutuhkan antara lain Tinywire.h , LiquidCrystal_I2C.h, dan TinyRTClib.h
- Disarankan saat kompile dan downloading program module attiny85 dilepas dahulu dari rangkaian, dikarenakan untuk mencari aman dari kehilangan daya atau short yang berujung kerusakan module.
kode pemrograman
//www.nyebarilmu.com #include <TinyWireM.h> //Library khusus untuk Attiny dalam penggunaan i2c #include <LiquidCrystal_I2C.h> //library i2c PCF8574 #include "TinyRTClib.h" //Library RTC LiquidCrystal_I2C lcd(0x38,20,4); //0X38 dapat dicari dengan i2c scanner RTC_DS1307 RTC; //Dapat menggunakan module DS1307 maupun DS3231 void setup(){ TinyWireM.begin(); lcd.init();lcd.backlight(); RTC.begin(); lcd.setCursor(00,00); lcd.print(" JAM DIGITAL versi.1"); lcd.setCursor(00,1); lcd.print(" LCD 20x4 & DS3231 "); //pada baris kedua dituliskan LCD + DS3231 lcd.setCursor(00,2); lcd.print(" by : "); lcd.setCursor(00,3); lcd.print(" www.nyebarilmu.com "); //pada baris pertama dituliskan nyebarilmu.com delay(5000); //Waktu jeda lcd.clear(); } void loop(){ DateTime now = RTC.now(); //mengeset semua data yang didownloadkan sama dengan komputer lcd.setCursor(00,00); lcd.print(" JAM DIGITAL versi.1"); lcd.setCursor(00, 1); lcd.print("tangal :"); lcd.print(now.day(), DEC); //command untuk tanggal lcd.print('-'); lcd.print(now.month(), DEC); //command untuk bulan lcd.print('-'); lcd.print(now.year(), DEC); //command untuk tahun lcd.print(' '); lcd.setCursor(00, 2); lcd.print("Jam :"); if (now.hour()<10) lcd.print('0'); lcd.print(now.hour(), DEC); //command untuk jam lcd.print(':'); if (now.minute()<10) lcd.print('0'); lcd.print(now.minute(), DEC); //command untuk menit lcd.print(':'); if (now.second()<10) lcd.print('0'); lcd.print(now.second(), DEC); //command untuk detik lcd.setCursor(17,2); lcd.print("by;"); lcd.setCursor(00, 3); lcd.print("Day :"); int dayofweek = now.dayOfWeek(); //command untuk hari switch(dayofweek) { case 1: lcd.print("Senin "); break; case 2: lcd.print("Selasa"); break; case 3: lcd.print("Rabu "); break; case 4: lcd.print("Kamis "); break; case 5: lcd.print("Jumat "); break; case 6: lcd.print("Sabtu "); break; case 0: lcd.print("Minggu"); break; delay(1000); } lcd.setCursor(16,3); lcd.print("N_I"); }