Jam 7 Segment 1,5 Inch Arduino + DS3231



Bahan yang dibutuhkan:
1. Arduino Uno
2. Modul RTC DS3231
3 Modul 7 Segment 1,5 Inch 4 Digit






Program Utama

=================================Source Code================================

#include "Time.h"       //Time Library
#include "DS1307RTC.h"   //Real Time Clock Library
#include "Wire.h"        //Auxiliary Library for DS1307RTC (Real-Time Clock) - Pins to Arduino UNO: A4 (SDA), A5 (SCL)
          
#define LATCH 4
#define CLK 3
#define DATA 2

//This is the hex value of each number stored in an array by index num
byte digit[11]= {0x7E, 0x0C, 0xB6, 0x9E, 0xCC, 0xDA, 0xFA, 0x0E, 0xFE, 0xDE};//tanpa uln2003
byte dot[11]= {0x7F, 0x0D, 0xB7, 0x9F, 0xCD, 0xDB, 0xFB, 0x0F, 0xFF, 0xDF};//tanpa uln2003

int Jam, Menit,Detik, temp, umid, Tanggal, Bulan, Tahun;
int satuanJam, satuanMenit,satuanDetik;
int puluhanJam, puluhanMenit,puluhanDetik;



void setup(){
 
  pinMode(LATCH, OUTPUT);
  pinMode(CLK, OUTPUT);
  pinMode(DATA, OUTPUT);
  

  Wire.begin();
   setSyncProvider(RTC.get); 
}

void loop(){

    
    Jam = hour();
    Menit = minute();
    Detik = second();
    
    satuanJam = Jam % 10;
    puluhanJam = Jam / 10;
    satuanMenit = Menit % 10;
    puluhanMenit = Menit / 10;
    satuanDetik = Detik % 10;
    puluhanDetik = Detik / 10;
  
      digitalWrite(LATCH, LOW);
      shiftOut(DATA, CLK, MSBFIRST, ~digit[satuanMenit]); 
      shiftOut(DATA, CLK, MSBFIRST, ~digit[puluhanMenit]); 
      shiftOut(DATA, CLK, MSBFIRST, ~digit[satuanJam]); 
      shiftOut(DATA, CLK, MSBFIRST, ~digit[puluhanJam]); 
      digitalWrite(LATCH, HIGH);
      delay(500);
      digitalWrite(LATCH, LOW);
      shiftOut(DATA, CLK, MSBFIRST, ~dot[satuanMenit]); 
      shiftOut(DATA, CLK, MSBFIRST, ~dot[puluhanMenit]);
      shiftOut(DATA, CLK, MSBFIRST, ~dot[satuanJam]); 
      shiftOut(DATA, CLK, MSBFIRST, ~dot[puluhanJam]);
      digitalWrite(LATCH, HIGH);
      delay(500);
    }

    

Test Modul



Aplikasi Modul



No comments

Dicky B_Mz. Powered by Blogger.