Membuat Jam Digital dengan Arduino dan RTC DS1307

Ditulis oleh agan

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Halo sahabat BoArduino, kita berjumpa lagi di hari ini, yaitu awal Bulan dan awal tahun 2016.
Semoga saja di Tahun ini kita menjadi lebih baik daripada Tahun sebelumnya, Amiin.

Di tutorial kali ini, kita akan mencoba membuat Jam Digital dengan Arduino. Di tutorial sebelumnya, ane telah memposting artikel yang berjudul "Membuat Jam Digital Arduino (Tanpa Hardware RTC)". Dan kali ini ane ingin menepati janji ane untuk memposting cara Membuat Jam Digital dengan Arduino dan RTC DS1307.

Tentunya dengan menggunakan Modul RTC ini ente dimudahkan untuk mengembangkan berbagai macam project Arduino yang membutuhkan Pewaktuan (Timing) yang akurat.
Dan juga jika menggunakan RTC, maka tingkat akurasinya lebih tinggi dibandingkan tanpa RTC.

Serta penampil LCD juga dapat disesuaikan. Bisa menggunakan Seven segment, Panel P10, dll.
Oke, karena saat ane menulis ini sudah larut malam... Mari langsung di Simak dan Praktekkan!

Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x LCD 16x2
  • 1x Potensiometer 10K Ohm
  • 1x Modul RTC DS1307
  • Library DS1307RTC dan Time
  • 1x Project board ( Breadboard )
  • Kabel jumper secukupnya

Langkah - Langkahnya :

1.)  Pertama, tambahkan Library DS1307RTC dan Time.h pada Software Arduino IDE ente.
2.)  Setelah itu Susunlah rangkaian dibawah ini pada breadboard.

Keterangan Konfigurasi Kabel :
  • Pin 5V pada Arduino dihubungkan ke VCC
  • Pin GND pada Arduino dihubungkan ke GND
  • Pin A4 pada Arduino dihubungkan ke SDA pada RTC Modul
  • Pin A5 pada Arduino dihubungkan ke SCL pada RTC Modul
3.) Setelah itu, susunlah rangkaian untuk LCD ini


 Keterangan Konfigurasi Kabel Rangkaian LCD :
  • Pin RS (kaki 4) di sambungkan dengan pin arduino digital pin 12
  • Pin E (kaki 6) di sambungkan dengan pin arduino digital pin 11
  • Pin D4 (kaki 11) di sambungkan dengan pin arduino digital pin 5
  • Pin D5 (kaki 12) di sambungkan dengan pin arduino digital pin 4
  • Pin D6 (kaki 13) di sambungkan dengan pin arduino digital pin 3
  • Pin D7 (kaki 14) di sambungkan dengan pin arduino digital pin 2
  • Sambungkan potensio 10 KOhm ke  +5v dan GND , dan Pin LCD 3 ke potensio
  • Pin 5 (R/W) ke Ground
4.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
5.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
6.) Setelah itu, jalankan program Arduino-nya.
7.) Klik menu "Tools -> Board -> Arduino Uno"
8.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
9.) Lalu masukan Sketch dibawah ini.
Klik LIHAT BRO untuk melihat sketch
/*Jam Digital Dengan Arduino dan RTC DS1307
*28 Juli 2015
*www.boarduino.blogspot.com
*/

#include <Wire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);

void setup() {
  lcd.begin(16,2);
  while (!Serial);
  delay(200);
}

void loop() {
  tmElements_t tm;
  if (RTC.read(tm)) {
    lcd.clear();
    lcd.print("Date: ");
    printkurangdarinol(tm.Day);
    lcd.print("-");
    printkurangdarinol(tm.Month);
    lcd.print("-");
    lcd.print(tmYearToCalendar(tm.Year));

    lcd.setCursor(0,1);
    lcd.print("Time:  ");
    printkurangdarinol(tm.Hour);
    lcd.print(":");
    printkurangdarinol(tm.Minute);
    lcd.print(":");
    printkurangdarinol(tm.Second);
  } else {
    if (RTC.chipPresent()) {
      lcd.print("DS1307 Terhenti!");
    } else {
      lcd.print("  DS1307 Error!");
    }
    delay(9000);
  }
  delay(1000);
}
void printkurangdarinol(int nomor) {
  if (nomor >= 0 && nomor < 10) {
    lcd.write('0');
  }
  lcd.print(nomor);
}

NOTE : 
Apabila terjadi error saat sketch di compile, pastikan pada Arduino IDE anda sudah ditambahkan Library DS1307RTC dan Time. Bila belum, silahkan KLIK INI dan KLIK INI untuk download.

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 01:22:00

56 comments:

  1. Thanks artikelnya mas. Klu bisa buat jadwal shalat pakai led matrix dong mas. Trima kasih sbelumnya. Salam.

    ReplyDelete
    Replies
    1. Sama sama, terimakasih juga sudah berkunjung dan berkomentar. Salam.

      Delete
  2. Postingannya bagus mas, kalau bisa ditambahkan lg untuk menyalakan lampu, jd pada saat jam 18.00 lampu menyala dan pada saat jam 06.00 pagi lampu mati dengan sendirinya. Ditunggu mas postingan yg saya request hueheheh .
    Trims

    ReplyDelete
    Replies
    1. Terimakasih sudah berkunjung dan berkomentar, insyaAllah.

      Delete
  3. gan kok saya muncul tulisan di lcdnya DS1307 BERHENTI !! itu knapa ya ?

    ReplyDelete
  4. sry gan it fungsi ptnsio fungsiny bwt ap ya.. hehe mklum msh awm..

    ReplyDelete
    Replies
    1. Salam kenal.
      Buat mengatur kecerahan text di LCD nya.

      Delete
    2. iya gan di LCD hanya ada tulisan DS1307 Terhenti,tolong pencerahanya,terimakasih

      Delete
    3. Upload sketch ini ke Arduino.

      File>Examples>DS1307RTC>SetTime

      setelah itu buka serial monitor, apabila waktu sudah sesuai baru upload sketch yang ada di artikel ini.

      Delete
  5. saran gan.. buat juga pengaturan seting awal waktu dan tanggalx biar nnti ga ada yng bingung..
    soalx di awal ane juga bingung.. hee..
    ane bli rtc tnpa batre jdi blum d setting..

    ReplyDelete
    Replies
    1. Oke, ane tampung sarannya... Terimakasih gan :)

      Delete
  6. Ilmu yang sangat bermanfaat,terimakasih sudah share gan.
    saya lagi ngembangin programnya menggunakan seven segmen multipleksing pake 4 transistor dan 7447,tapi mentok di tampilan outputnya,ada kode sederhananya gan?

    ReplyDelete
    Replies
    1. Kalau ditampilkan di seven segment, saya juga belum pernah coba sih gan. BTW, Terimakasih sudah berkunjung.

      Delete
  7. Assalamu alaikum. Tutorialnya sangat bermanfaat, maaf mas andi kalau menampilkan jamnya menggunakan panel P10 bisa dishare? trm kasih sebelumnya.

    ReplyDelete
    Replies
    1. Waalaikum salam, saya belum coba juga sih... Tapi sama saja kok, coba lihat contoh artikelnya di blog ini, Ketik di kotak pencarian "suhu p10".

      Delete
  8. kak, saya udah add library ds1307 sama time nya. tapi kok masih gak bisa dicompile ya? :(

    ReplyDelete
  9. Keren artikel nya ...

    Gan saya mau tanya , cara nambah library ke software arduino itu bagaimana ? saya kurang paham

    terimakasih gan

    ReplyDelete
    Replies
    1. Salam kenal. Download library dengan extensi file .zip lalu buka software arduino IDE, klik sketch, include library lalu add library .zip lalu pilih file library.zip yang sudah di download tadi.

      Delete
  10. Assalamualaykum wr wb
    salam kenal Mas,
    saya sudah lakukan step-by step di atas termasuk add library nya, namun pas saya compile / verify muncul pesan error berikut:
    Arduino: 1.6.9 (Windows 7), Board: "Arduino/Genuino Uno"

    C:\Users\User\Documents\Arduino\libraries\DS1307RTC\examples\SetTime\SetTime.ino:6:18: fatal error: Time.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board Arduino/Genuino Uno.



    mohon pencerahannya, terima kasih banyak
    agussof1

    ReplyDelete
    Replies
    1. Waalaikum salam. Salam kenal.
      Kalau dilihat dari pesan errornya, sepertinya library Time.h belum ditambahkan pada software arduino IDE.

      Delete
    2. Gan mau nanya ,itu rtcny mesti di hubungin ke A4 sm A5 arduino ya ?
      Kalau ke pin A yang lai gimana ?
      Mohon pencerahan

      Delete
    3. Wajib SDA dan SCL, I2C Protokol.

      Delete
  11. mas kl pake lcd bekas nokia 3310 bs ngak

    ReplyDelete
  12. kalau jam digital displaynnya dengan 7 segment caranya gmn ms?

    ReplyDelete
  13. gimana cara ngatur jamnya....

    ReplyDelete
    Replies
    1. Upload sketch ini ke Arduino.

      File>Examples>DS1307RTC>SetTime

      setelah itu buka serial monitor, apabila waktu sudah sesuai baru upload sketch yang ada di artikel ini.

      Delete
  14. sry gan it cara set waktunya gmn ya..?? hehe

    ReplyDelete
    Replies
    1. Upload sketch ini ke Arduino.

      File>Examples>DS1307RTC>SetTime

      setelah itu buka serial monitor, apabila waktu sudah sesuai baru upload sketch yang ada di artikel ini.

      Delete
  15. maaf bro mau nanya kalau misal lcd nya saya ganti dengan seven segment program nya gimana ya? apa aja yg harus saya ganti

    ReplyDelete
    Replies
    1. Bisa, silahkan dibuat. Banyak yang harus diubah.

      Delete
  16. mas bisa ga bikin jadwal sholat?
    baris pertamanya pukul/jam
    baris kedua tulisan jadwal sholat
    tapi baris keduanya pingin dibikin scroll

    ReplyDelete
    Replies
    1. Belum pernah coba buat gan, tapi sepertinya masih memungkinkan... silahkan dibuat :)

      Delete
  17. Sudah sukses saya membuatnya, namun masih ada kendala setelah beberapa hari jam mulai tidak cocok, saya cek batre RTC ternyata tegangan hanya 1,2 v apakah mas punya rekomendasi untuk skema rtc ..trims

    ReplyDelete
    Replies
    1. Hmm, kalau menurut teman dan info yang saya dengar. Lebih baik gunakan RTC DS2321, jangan yang DS1307. Karena disebut sebut, lebih tinggi akurasinya.

      Delete
  18. gan bagaimana untuk pengaplikasian di modul p10...
    mohon bimbingannya

    ReplyDelete
    Replies
    1. Coba cari artikel di blog ini, judulnya "Menampilkan suhu pada p10 led matrix"
      Nanti, ente ubah aja bagian yang untuk menampilkan suhu disana, dan dijadikan scrollLeft agar tulisannya dapat berjalan ke kiri.

      Delete
  19. mas kalo ditambah alaram gimana ya caranya?

    ReplyDelete
    Replies
    1. Gunakan saja If else untuk membandingkan kondisi atau nilai dari jam, menit ataupun detiknya.

      Delete
  20. kok saya coba di program awal yang dari File>Examples>DS1307RTC>SetTime
    muncul error di tmElements_t tm; kenapa y?

    ReplyDelete
    Replies
    1. Pastikan library Time.h atau Timelib.h sudah ditambahkan ke software arduino ide.

      Delete
    2. untuk yang time.h udah ada mas kalau untuk timelib.h nya dimana download nya?

      Delete
    3. Silahkan download di github atau di google gan, sudah banyak kok.

      Delete
  21. MAKASIH GAN TUTORIALNYA...... lancar....

    ReplyDelete
  22. Gan kalu buat led matrix p10 bisa ga gan....

    ReplyDelete
  23. Asalamualaikum mas...
    gmana kalau proyek, pada saat jam 17.00 lampu menyala dan pada saat jam 06.00 pagi lampu mati dengan sendirinya, ditunggu usulannya ya mas:)

    ReplyDelete
    Replies
    1. Waalaikum salam. Dikondisikan dengan if else saja nilai jam, menit ataupun detiknya.

      Delete
  24. gan power untuk arduino nya bake btre ya ?
    maaf newbi. hehehe

    ReplyDelete

Masih Bingung atau Hal Lainnya? Silahkan Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa Berkomentar.

Apabila Komentar anda belum muncul, Tunggu sampai di Moderasi.
Terimakasih atas Perhatiannya.


English French German Spain Italian Dutch Russian