
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
boleh minta nomor wa gan?
programnya error di bagian :
RTC_DS1307 rtc;
katanya "RTC_DS1302" does not name a type.
itu kenapa yaa kira2
WA only :083862832235
Terima kasih gan, berhasil…..