TUTORIAL MEMBUAT JAM DIGITAL MENGGUNAKAN RTC DS3231 DAN LCD KARAKTER 16x2 DENGAN ARDUINO

Tampilan Jam Digital
Tampilan Jam Digital

Pada kesempatan ini kita akan membuat tutorial jam digital, jam digital displaynya dapat berupa Sevent Segment, LCD, P10 dan lain-lain, Untuk kali ini kita akan membuat project sederhana jam digital dengan Display lCD karakter 16x2 untuk tampilannya pada  Tutorial Membuat Jam Digital Menggunakan RTC DS3231 dan LCD Karakter 16x2 Menggunakan Arduino
Supaya jam di gital , waktunya tetap real time. kita menggunakan RTC, ada beberapa jenis RTC misalnya DS3231, DS1307 ,DS1302 dan lain-lain, untuk kali ini jenis RTC yang akan kita gunakan adalah  DS3231 di lengkapi dengan Baterai, Sehingga ketika listrik mati, untuk data waktu dan tanggal tetap tersimpan dan waktu tetap terupdate real time.  Dengan Module RTC ini kita dapat membuat jam digital dengan akurasi waktu lebih baik di banding tanpa RTC.RTC ini berkomunikasi dengan arduino dengan antar muka I2C (Inter Integrated Circuit), untuk lebih jelasnya dapat membaca Tutorial Cara Program RTC DS3213 Menggunakan Arduino
Untuk menampilkan waktu dan tanggal menggunakan display LCD Karakter 16x2, LCD ini dapat menampilkan 16 kolom dan 2 Baris,untuk lebih jelasnya dapat membaca tutorial LCD Karakter dapat membaca Cara Program LCD Karakter 16x2 Menggunakan Arduino dan Simulasi Proteus. LCD Karakter 16x2 sudah cukup untuk menampilkan tanggal dan waktu secara bersamaan.
Untuk membuat project ini dapat mengikuti langkah-langkah berikut ini:

 MODULE / PART YANG DI BUTUHKAN
part atau Module yang di gunakan untuk project kali ini , sebagai berikut :

  1. Arduino
  2. Module LCD Karakter 16x2
  3. RTC DS3231
  4. Potensio Meter 10K ohm
  5. Bread Board
  6. Kabel Jumper secukupnya
Library :
Untuk Project Jam Digital Menggunakan RTCDS3231 dan LCD Karakter 16x2 Library yang digunakan sebagai berikut :

  1. RTC DS3231download di sini (sumber : Github-Adafruit)
  2. LCD Module Karakter 16x2, librarynya secara default sudah ada di arduino IDE
WIRING DIAGRAM 
Berikut Wiring Diagram lCD Karakter 16x2 , RTC DS3231 Dengan Menggunakan Arduino
 
Wiring Jam Digital Menggunakan Arduino
Wiring Diagram Jam Digital Dengan LCD Karakter 16x2 Menggunakan Arduino

ALOKASI PIN ARDUINO  
Supaya dapat bekerja LCD karakter 16x2 dan RTC DS3231 di hubungkan dengan pin-pin Arduino, untuk lebih jelasnya dapat di lihat pada alokasi pin arduino berikut ini : 

  •  Alokasi Pin LCD Karakter 16x2
Komunikasi Arduino dengan LCD Karakter 16x2 menggunakan Komunikasi Paralel 4 bit,  yaitu dari D4,D5,D6,D7 dan 3 Bit Kontrol
Pin LCD   Arduino     
Pin 1 (GND) GND
Pin 2 (VCC) +5V
Pin 3 (VSS) Pengaturan Contras
Pin 4 (RS) Pin 12
Pin 5 (R/W) GND
Pin 6 (E) Pin 11
Pin 7 -
Pin 8 -
Pin 9 -
Pin 10 -
Pin 11 (D4) Pin 5
Pin 12 (D5) Pin 4
Pin 13 (D6) Pin 3
Pin 14 (D7) Pin 2
Pin 15 (LED +) +5V
Pin 16 (LED -) GND
  •  Alokasi Pin RTC DS3231
Mikrokontroler Arduino komunikasi dengan RTC DS3231 Menggunakan Komunikasi I2C , Menggunakan Pin SDA (A4) dan SCL (A5)


RTC DS3231   Arduino     
SCL A5
SDA A4
VCC +5V
GND Gnd
 PROGRAM 

#include  <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
RTC_DS3231 rtc;

char namaHari[7][12] = {"Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"};

void setup() 
{  
  lcd.begin(16,2); 
  rtc.begin(); 
  
  if (rtc.lostPower()) {
  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));   
  }

  lcd.setCursor(0,0);
  lcd.print("   JAM DIGITAL  ");
  delay(1000);
  lcd.setCursor(0,1);
  lcd.print(" LABELEKTRONIKA ");
  delay(1000);
  lcd.clear();
}

void loop() 
{
  DateTime now = rtc.now();
  lcd.setCursor(1,0);
  lcd.print(namaHari[now.dayOfTheWeek()]);
  lcd.print(",");
  printAngka(now.day());
  lcd.print("-");
  printAngka(now.month());
  lcd.print("-");
  printAngka(now.year());  
    
  lcd.setCursor(4,1);
  printAngka(now.hour());
  lcd.print(":");
  printAngka(now.minute());
  lcd.print(":");
  printAngka(now.second());
  
  delay(2000);

}
void printAngka(int digits){
   if(digits < 10){
   lcd.print('0');
   lcd.print(digits);
   }
   else lcd.print(digits);
 }

Aplikasi Jam digital banyak di aplikasikan di kehidupan sehari-hari, karena saat beraktifitas biasanya berhubungan dengan waktu :), jika ada yang kurang jelas bisa meninggalkan pertanyaan di kolom komentar selamat berkarya dan semoga artikelnya bermanfaat :)

Subscribe to receive free email updates:

29 Responses to "TUTORIAL MEMBUAT JAM DIGITAL MENGGUNAKAN RTC DS3231 DAN LCD KARAKTER 16x2 DENGAN ARDUINO"

  1. Bisakah kita download software jam digital tanpa merubah isi nya dan langsung dimasukkan ke arduino ?

    BalasHapus
    Balasan
    1. kalau IC mikrokontrollernya ngga di proteksi ,hex file bisa di copy.Tapi biasanya sudah terproteksi :)

      Hapus
  2. Pak saya pake rtc ds3231 dan saya pasang lcd keypad shield,, tapi kenapa ya kq ada masalah,, masalah nya tiap hari ada selisih 1 menitan sama jam HP(semakin melambat) mohon bantuan nya

    BalasHapus
    Balasan
    1. coba ganti baterainya dulu, salah satu masalah pada rtc salah satunya di bateray.semoga membantu :)

      Hapus
  3. jika ditambahkan I2c pada LCD 16x2 gmana mas codingannya

    BalasHapus
    Balasan
    1. Untuk definisi lcdnya di ubah, seperti ini :
      #include
      #include

      LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

      Hapus
    2. mantap juga codinganya bisa langsung test tanpa ngerubah ke rtc DS1307

      Hapus
    3. RTC yang di ginakan DS3231.Semoga membantu :)

      Hapus
  4. jika menggunakan lcd 16x2 keypad sheild dan tombol keypad nya bisa digunakan juga gmana codingannya mas..mohon bantuannya dmana ditentukan
    -lcd rs pin terhubung ke digital pin 8
    - lcd enable pin terhubung ke digital pin 9
    - lcd d4 pin terhubung ke digital pin 4
    - lcd d5 pin terhubung ke digital pin 5
    - lcd d6 pin terhubung ke digital pin 6
    - lcd d7 pin terhubung ke digital pin 7

    BalasHapus
    Balasan
    1. Tinggal di kembangkan dai sini,http://www.labelektronika.com/2015/06/cara-memprogram-lcd-karakter-keypad-shield.html , mudah-mudahan bermanfaat :)

      Hapus
    2. terima kasih atas ilmunya ..sekarang udah bisa.sesuai keinginan sy....hehehehe ...sekali lagi trimmmmssss

      Hapus
  5. Bang apakah rtc itu bisa di fungsikan walau tanpa mikro kontroler arduino?

    BalasHapus
    Balasan
    1. maaf sebelumnya mas/mbak/bude/pak DE...kayaknya pertanyaanya membingungkan ini..mungkin seharusnya pertanyaanya adalah "apakah rtc itu bisa difungsikan walau tanpa arduino" seharusnya sih begitu tapi kalo membaca dari pertanyaan anda ada 2 kemungkinan nantinya tanpa arduino apa tanpa micro controller kareana ARDUINO sama MICRO CONTROLLER itu beda artinya kalo menurut saya

      Hapus
    2. RTC seperti singkatanya, adalah Real Time Clock, selama module dan battery yang terdapat di RTC ok, maka RTC akan terus jalan.fungsi dari mikrokontroller adalah untuk ambil atau read parameter waktu sehingga mikrokontroller dapat waktu yang real time.salah satu type mikrokontroller arduino, jadi mikrokontrollernya bisa pakai yg lain, Semoga Bermanfaat :)

      Hapus
    3. Selain itu, mikrokontroller juga dapat mengupdate nilai waktu RTC,misalnya saat Waktu RTC tidak sesuai

      Hapus
  6. lcd.print(namaHari[now.dayOfTheWeek()]);
    Pas disini kami compiling muncul error 'namaHari' not declare the scope apa masalahnya, mohon solusinya

    BalasHapus
    Balasan
    1. copy dan paste ulang programnya, selanjutnya compile ulang, harusnya ngga ada masalah

      Hapus
  7. bang waktunya disini kog tidak mengikuti waktu yang real/asli. gimana solusinya agar bisa mengikuti waktu yg ada di daerah saya

    BalasHapus
  8. apa alatnya harus di tancepkan langsung laptop

    BalasHapus
  9. pertama harus di sett dulu, bisa dengan laptop atau tambah tombol untuk setting waktu.semoga membantu :)

    BalasHapus
  10. Bg, ko saya ngga muncul tanggal waktu di lcdnya ya, kira² knp?

    BalasHapus
    Balasan
    1. pastikan wiringnya dan programnya sesuai dan komponennya ok

      Hapus
  11. Gan cara setting waktu nya gimana ya ?

    BalasHapus
    Balasan
    1. di tambahkan program dengan tombol untuk setting

      Hapus
    2. Gmn membuat program mengatur tanggal? Yang bisa di ubah ubah

      Hapus
    3. di tambahkan tombol push on, dan baca tombol untuk atur tanggal dll

      Hapus