Wikipedia

Hasil penelusuran

Senin, 18 Mei 2020

JAM DIGITAL DENGAN TAMPILAN SEVEN SEGMEN 6 DIGIT MENGGUNAKAN RTC DS 1307 DAN ARDUINO UNO

JAM DIGITAL DENGAN TAMPILAN SEVEN SEGMEN MENGGUNAKAN MODUL RTC DS1307 DAN ARDUINO UNO

    Hay sobat para hobi elektronika digital dan pemograman kali ini mimin akan membagikan tutorial cara membuat jam digital dengan tampilan Seven segmen menggunakan modul RTC DS1307 dan Arduino Uno semoga bermanfaat bagi teman-teman semua :) untuk mempermudah penjelasan tutorial mimin menggunakan simulasi Software Proteus sehingga teman-teman dapat dengan mudah memahami rangkaian, cara kerja dan program arduino nya, berikut bahan-bahan komponen  yang dibutuhkan

KEBUTUHAN KOMPONEN

  1. Modul RTC DS1307
  2. Arduino Uno ATmega 328
  3. Seven Segmen CA ( Common Anode) / CC ( Common Cathode)
  4. Kabel Jumper Secukup nya
KEBUTUHAN SOFTWARE

  1. Software Arduino.cc Versi 1.6.7
  2. Simulasi Proteus
  3. Library RTC DS1307
  4. Library SevSeg
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 RTC DS 1307


    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






RANGKAIAN JAM DIGITAL PADA SOFTWARE PROTEUS




PROGRAM ARDUINO

//=======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);

   
}




Tidak ada komentar:

Posting Komentar