Jam Digital RTC Ds1307 Dot Matrix 8×8 Arduino

Hello sahabat Anak Kendali 

pada kesempatan kali ini saya akan menulis artikel tentang cara membuat jam digial dengan Modul RTC Ds 1307 Dot matrix 8×8 Max7219 Arduino
modul RTC Ds1307 sebagai penentu waktu secara realtime dan otomatis menyesuaikan dengan waktu sebenarnya, dan Dot matrix 8×8 yang di kendalikan dengan Ic Max7912 sebagai indikator display penampil hasil dari waktu yang di peroleh modul RTC,

pada project kali ini kita akan menggunakan dua komunikasi yaitu komunikasi SPI dan komunikasi I2C, komunikasi SPI digunakan untuk interface anatara Arduino dan dot matrix Ic Max7912 sedangkan komunikasi I2C digunakan untuk interface anatara Arduino dan RTC Ds1307.

langsung saja kita mencoba untuk membuat project jam digital ini, pertama yang harus kita lakukan adalah menghubungkan setiap modul ke arduino, untuk modul dot matrix silahkan hubungkan seperti berikut :

Rangkaian Skematik

  • 5v Arduino —- VCC Dot Matrix
  • GND Arduino —- GND Dot Matrix
  • 13 Arduino —– CLK Dot Matrix
  • 10 Arduino —– CS Dot Matrix
  • 11 Arduino —– DIN Dot Matrix

kemudian untuk modul RTC Ds1037 dengan Arduino silahkan hubungkan seperti berikut :

  • 5v Arduino —- VCC RTC Ds 1037
  • GND Arduino —- GND  RTC Ds1037
  • A4 Arduino —- SDA RTC Ds1037
  • A5 Arduino —- SCL RTC Ds1037

jangan khawatir dan jangan bingung hanya karena pin SDA SCL di modul RTC ada dua,, distu ada tulisanya Tiny RTC dan I2c Modules, maka pilih yang bagian I2c module.   untuk library RTC silahkan download dengan cara klik sketch >> include libraries >> manage libraries >> kemudian cari RTCLib dan download   untuk library dotmatrix max7219 silahkan ambil dibawah ini  

DOWNLOAD LIBRARY 1
DOWNLOAD LIBRARY 2
 

Kode Arduino

#include <SPI.h>
#include <bitBangedSPI.h>
#include <MAX7219_Dot_Matrix.h>
#include <Wire.h>
#include "RTClib.h"
#define Y now.year()
#define M now.month()
#define D now.day()
#define HD daysOfTheWeek[now.dayOfTheWeek()]
#define H now.hour()
#define m now.minute()
const byte chips = 12;
// 12 chips (display modules), hardware SPI with load on D10
MAX7219_Dot_Matrix display (chips, 10);  // Chips / LOAD
char message [100];

#if defined(ARDUINO_ARCH_SAMD)
// for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
   #define Serial SerialUSB
#endif
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Ahad", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"};

void setup ()
  {
  display.begin ();
  #ifndef ESP8266
  while (!Serial); // for Leonardo/Micro/Zero
#endif
  Serial.begin(57600);
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }
  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }
  }
unsigned long lastMoved = 0;
unsigned long MOVE_INTERVAL = 20;  // mS
int  messageOffset;
void updateDisplay ()
  {
    DateTime now = rtc.now();
 
    sprintf (message, "%s:%d:%d:%d Jam %d:%d Wib", HD,D,M,Y,H,m);
  display.sendSmooth (message, messageOffset);

  // next time show one pixel onwards
  if (messageOffset++ >= (int) (strlen (message) * 8))
    messageOffset = - chips * 8;
  }  // end of updateDisplay
void loop ()
  {
 
  // update display if time is up
  if (millis () - lastMoved >= MOVE_INTERVAL)
    {
    updateDisplay ();
    lastMoved = millis ();
    }
  // do other stuff here 
   
  }  // end of loop

semoga apa yang saya tulis bermanfaat dan juga semoga kamu berhasil membuat project ini, jangan gampan menyerah, terus mencoba, karena saya sendiri mencoba project ini tidak langsung bisa, tapi butuh beberapa hari untuk menyelesaikanya ! untuk melihat video hasil nya klik link berikut:

keyword : jam digital Dot Matrix, jam digital RTC DS1037, membuat jam digital Arduino, Arduino RTC Arduino RTC Dot matrix Max7219 RTC

chaerul

View Comments

Recent Posts

Panduan Lengkap: Cara Menyiapkan Klaster Kubernetes pada Ubuntu 22.04 LTS

Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…

2 weeks ago

AplikasiAkademik.com: Solusi Terbaik untuk Manajemen Sekolah yang Efisien

Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…

7 months ago

Cara Mudah Menginstal OpenVPN Server di Ubuntu 20.04 di Huaweicloud Panduan Langkah demi Langkah

Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…

12 months ago

Install Docker Portainer dan Nginx Proxy Manager Ubuntu Server

Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…

1 year ago

Tutorial led blinking lengkap, Wiring & Code

Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…

1 year ago

Tutorial LCD Display Lengkap dengan wiring & code untuk pemula

Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…

1 year ago