Sebelum melakukan proses perangkaian, ada baiknya kita terlebih dahulu mengenal dan memahami fungsi masing masing komponen serta spesifikasi nya agar tidak terjadi kesalahan dalam perangkaian
modul ini didasarkan pada DS1307 RTC presisi tinggi real time clock modul melalui
I2C antarmuka untuk berkomunikasi dengan singlechip, dapat membaca
tahun, bulan, hari, minggu, waktu, menit, kedua Dapat membaca sampai
2100 tahun; kontrol antarmuka I2C; direkomendasikan power: DC 5 V; alamat modul adalah 0x68; kontrol antarmuka tingkat 5 V atau 3.3 V.
SPESIFIKASI
spesifikasi tegangan VCC Daya: 4.5 ~ 5.5 V;
tegangan baterai: 2.0 ~ 3.5 V; H
igh tingkat input: 2.1 ~ VCC + 0.3 V;
rendah tingkat input:-0.3 ~ + 0.8 V;
kontrol
antarmuka: 4-pin (GND, VCC, SDA, SCL), GND untuk kawat tanah, VCC untuk
sumber daya, SDA untuk I2C antarmuka kabel data, SCL untuk I2C
antarmuka kabel;
Real time IC: DS1307Z; waktu Independen: melalui antarmuka I2C berkomunikasi dengan MCU;
baterai: CR1220;
diinstal lubang: 4-M2 sekrup lubang, diameter lubang: 2.2mm, mudah untuk menginstal
MODUL SEVEN SEGMEN CA ( Common Anode)
modul seven segmen adalah sekumpulan led yang tersusun berbentuk digit angka, sistem kerja nya hampir sama dengan mengaktifkan sebuah led sesuai pin sehingga berbentuk sebuah digit angka, pada gambar dibawah ini terlihat jelas perbedaan antara Common Anode dengan Common Chatode
//=======seven segmen
#include <SevSeg.h>
SevSeg sevseg;
//=======RTC library
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
void setup () {
Serial.begin(9600);
Wire.begin();
RTC.begin();
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(__DATE__, __TIME__));
}
//=============================Pengaturan byte digits & pin Seven Segment
byte numDigits=6; //jika menggunakan 3 buah seven segmen, dapat diubah sesuai jumlah digit
byte digitPins[]={2,3,4,5,A0,A1};
byte segmentPins[]={6,7,8,9,10,11,12,13}; // ini merupakan pin yang terhubung ke COM seven segmen
bool resistorOnSegments=false;
byte hardwareConfig =COMMON_ANODE;
bool updateWithDelays=true;
bool leadingZeros=false;
bool disableDecPoint = false;
sevseg.begin(hardwareConfig,numDigits,digitPins,segmentPins,resistorOnSegments,
updateWithDelays,leadingZeros,disableDecPoint);
sevseg.setBrightness(90);
}
void loop () {
DateTime now = RTC.now();
//=========================Convertion date=======================================================
int jam=RTC.now().hour();
int menit=RTC.now().minute();
int detik=RTC.now().second();
String s1=String(jam);
String s2=String(menit);
String s3=String(detik);
String s= s1 + s2 + s3;
//================================================================================================
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(s.toInt());
Serial.println();
sevseg.setNumber(s.toInt(),0);
sevseg.refreshDisplay(); // Must run repeatedly
//delay(100);
}