TUTORIAL MEMBUAT JAM DIGITAL MENGGUNAKAN RTC DS3231 DAN LCD KARAKTER 16x2 DENGAN ARDUINO
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 :
Library :MODULE / PART YANG DI BUTUHKAN
part atau Module yang di gunakan untuk project kali ini , sebagai berikut :
- Arduino
- Module LCD Karakter 16x2
- RTC DS3231
- Potensio Meter 10K ohm
- Bread Board
- Kabel Jumper secukupnya
Untuk Project Jam Digital Menggunakan RTCDS3231 dan LCD Karakter 16x2 Library yang digunakan sebagai berikut :
- RTC DS3231download di sini (sumber : Github-Adafruit)
- 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 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
RTC DS3231 | Arduino |
SCL | A5 |
SDA | A4 |
VCC | +5V |
GND | Gnd |
#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 :)
iya , kelewat :)
BalasHapusBisakah kita download software jam digital tanpa merubah isi nya dan langsung dimasukkan ke arduino ?
BalasHapuskalau IC mikrokontrollernya ngga di proteksi ,hex file bisa di copy.Tapi biasanya sudah terproteksi :)
HapusPak 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
BalasHapuscoba ganti baterainya dulu, salah satu masalah pada rtc salah satunya di bateray.semoga membantu :)
Hapusjika ditambahkan I2c pada LCD 16x2 gmana mas codingannya
BalasHapusUntuk definisi lcdnya di ubah, seperti ini :
Hapus#include
#include
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
mantap juga codinganya bisa langsung test tanpa ngerubah ke rtc DS1307
HapusRTC yang di ginakan DS3231.Semoga membantu :)
Hapusjika menggunakan lcd 16x2 keypad sheild dan tombol keypad nya bisa digunakan juga gmana codingannya mas..mohon bantuannya dmana ditentukan
BalasHapus-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
Tinggal di kembangkan dai sini,http://www.labelektronika.com/2015/06/cara-memprogram-lcd-karakter-keypad-shield.html , mudah-mudahan bermanfaat :)
Hapusterima kasih atas ilmunya ..sekarang udah bisa.sesuai keinginan sy....hehehehe ...sekali lagi trimmmmssss
Hapusnice :), Semoga Bermanfaat :)
HapusBang apakah rtc itu bisa di fungsikan walau tanpa mikro kontroler arduino?
BalasHapusnumpang nymak
Hapusmaaf 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
HapusRTC 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 :)
HapusSelain itu, mikrokontroller juga dapat mengupdate nilai waktu RTC,misalnya saat Waktu RTC tidak sesuai
Hapuslcd.print(namaHari[now.dayOfTheWeek()]);
BalasHapusPas disini kami compiling muncul error 'namaHari' not declare the scope apa masalahnya, mohon solusinya
copy dan paste ulang programnya, selanjutnya compile ulang, harusnya ngga ada masalah
Hapusbang waktunya disini kog tidak mengikuti waktu yang real/asli. gimana solusinya agar bisa mengikuti waktu yg ada di daerah saya
BalasHapusapa alatnya harus di tancepkan langsung laptop
BalasHapuspertama harus di sett dulu, bisa dengan laptop atau tambah tombol untuk setting waktu.semoga membantu :)
BalasHapusBg, ko saya ngga muncul tanggal waktu di lcdnya ya, kira² knp?
BalasHapuspastikan wiringnya dan programnya sesuai dan komponennya ok
HapusGan cara setting waktu nya gimana ya ?
BalasHapusdi tambahkan program dengan tombol untuk setting
HapusGmn membuat program mengatur tanggal? Yang bisa di ubah ubah
Hapusdi tambahkan tombol push on, dan baca tombol untuk atur tanggal dll
Hapus