Tutorial digital clock attiny85

Cara membuat Digital Clock menggunakan Attiny85

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

  1. Module ATTINY85 (dengan USB micro) – Rp. 25.000
  2. LCD 16×4 dan module i2c LCD PCF8574 – Rp. 95.000
  3. Module RTC DS3231 – Rp. 20.000
  4. Kabel isi 2 (2m) – Rp. 2.000
  5. pcb bolong – Rp. 8.000
  6. 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.

Tutorial Arduino mengakses module RTC DS3231

Skema yang dirancang

digital clock attiny85

Hal untuk memrogram rangkaian diatas

  1. Untuk penggunaan pertama kali dapat dicek di link ini
  2. Library yang dibutuhkan antara lain Tinywire.h , LiquidCrystal_I2C.h, dan TinyRTClib.h
  3. 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");

}

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *