- Modul RTC DS1307
- Arduino Uno ATmega 328
- Seven Segmen CA ( Common Anode) / CC ( Common Cathode)
- Kabel Jumper Secukup nya
- Software Arduino.cc Versi 1.6.7
- Simulasi Proteus
- Library RTC DS1307
- Library SevSeg
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
#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);
}
Tidak ada komentar:
Posting Komentar