Arduino - Membuat Jam Digital dengan TM1637 dan DS3231

Jam digital adalah proyek klasik Arduino yang sangat berguna. Dengan bantuan RTC DS3231 (Real-Time Clock) dan display 4-digit TM1637, kita bisa membuat jam digital sederhana namun akurat. DS3231 akan memastikan waktu tetap tepat bahkan saat Arduino dimatikan.

Alat dan Bahan

  • Arduino Uno (atau board lainnya)
  • RTC DS3231
  • Modul 4-digit 7-segment TM1637
  • Kabel jumper
  • Breadboard (opsional)

Instalasi Library

Untuk modul ini, kita butuh dua library:

  • TM1637Display
  • RTClib (by Adafruit)

Cara instalasi library:

  • Buka Arduino IDE
  • Masuk ke Tools > Manage Libraries...
  • Cari dan install TM1637Display
  • Cari dan install RTClib

Pinout

TM1637 :


 

DS3231 :


 

Wiring Rangkaian

TM1637 ke Arduino:

  • CLK → Pin 2
  • DIO → Pin 3
  • VCC → 5V
  • GND → GND

DS3231 ke Arduino (I2C):

  • SDA → A4
  • SCL → A5
  • VCC → 5V
  • GND → GND
 

Kode Program Jam Digital



// https://github.com/avishorp/TM1637
// https://github.com/adafruit/RTClib

#include "Arduino.h"
#include "TM1637Display.h"
#include "RTClib.h"

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3

// The amount of time (in milliseconds) between tests
#define DELAY   1000
TM1637Display display(CLK, DIO);

int jam,menit,waktu;
RTC_DS3231 rtc;

void setup()
{
  // Inisialisasi RTC
  if (! rtc.begin()) {
    Serial.println("Tidak bisa menemukan RTC");
    while (1);
  }

  // Cek jika RTC perlu diatur ulang
  if (rtc.lostPower()) {
    Serial.println("RTC kehilangan daya, atur ulang waktu!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  display.setBrightness(0x0f);
}

void loop()
{
  DateTime now = rtc.now();
  jam = now.hour();
  menit = now.minute();
  waktu = jam * 100 + menit;

  display.showNumberDecEx(waktu, 0b01000000);
  delay(DELAY);
  display.showNumberDec(waktu); 
  delay(DELAY);
  
}

Penjelasan Kode

  • rtc.now(): Mengambil waktu saat ini dari DS3231
  • display.showNumberDecEx(...): Menampilkan jam dan menit dengan titik dua menyala

Selamat mencoba !
Selanjutnya
« Post Selanjutnya
Sebelumnya
Post Sebelumnya »

EmoticonEmoticon

Note: Only a member of this blog may post a comment.