Lompat ke konten Lompat ke sidebar Lompat ke footer

Tampilkan Jam Per Detik Arduino RTC

Ambil Data Jam Tampilkan Di Serial Monitor

Assalamu'alaikum. Pada artikel ini saya akan membagikan cara menampilkan waktu berdasarkan detik dari RTC menggunakan Arduino, sehingga jam akan berganti tiap detik.

Disini saya menggunakan library RTCLib dari Adafruit sedangkan untuk modul RTC saya gunakan adalah DS1307. Ini dapat berlaku untuk DS3231 dan lainnya.

Cara Kerja

Konsepnya sederhana. Kita perlu membuat dua variabel, dimana satu variabel untuk membaca waktu saat ini dan variabel kedua untuk menyimpan waktu sebelumnya.

Sehingga dengan waktu sekarang dan waktu sebelumnya dapat di bandingkan. Jika berbeda nilai keduanya, maka tampilkan data waktu.


Kode Program

Jika anda membutuhkan kode program, berikut kodenya:

#include "RTClib.h"

RTC_DS1307 rtc;

char namaHari[7][7] =
{
  "Ahad",
  "Senin",
  "Selasa",
  "Rabu",
  "Kamis",
  "Jum'at",
  "Sabtu"
};

char namaBulan[12][9] =
{
  "Januari",
  "Februari",
  "Maret",
  "April",
  "Mei",
  "Juni",
  "Juli",
  "Agustus",
  "September",
  "Oktober",
  "November",
  "Desember"
};

int detikSekarang = 0;
int detikSebelumnya = 0;

void setup () {
  Serial.begin(9600);

  if (! rtc.begin()) {
    Serial.println("RTC tidak ditemukan");
    Serial.flush();
    while (1) delay(10);
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running, atur waktu manual");
  }

  //Atur waktu sesuai dengan komputer
  //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  
  //Atur Waktu manual (Tahun, Bulan, Tanggal, Jam, Menit, Detik);
  //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

void loop () {
  DateTime now = rtc.now();
  detikSekarang = now.second();

  if (detikSekarang != detikSebelumnya)
  {
    Serial.print("Sekarang Hari ");
    Serial.print(namaHari[now.dayOfTheWeek()-1]);

    Serial.print(" Tanggal ");
    Serial.print(now.day());
    Serial.print(" ");
    Serial.print(namaBulan[now.month()]);
    Serial.print(" ");
    Serial.print(now.year());
    Serial.print(" ");

    Serial.print("Pukul ");
    if (now.hour() < 10)
    {
      Serial.print("0");
    }
    Serial.print(now.hour());
    Serial.print(":");
    if (now.minute() < 10)
    {
      Serial.print("0");
    }
    Serial.print(now.minute());
    Serial.print(":");

    if (now.second() < 10)
    {
      Serial.print("0");
    }
    Serial.print(now.second());
    Serial.println();
    detikSebelumnya = detikSekarang;
  }
}

Silahkan anda upload kode diatas ke Arduino board anda, maka hasilnya akan sebagai berikut:

Cara Tampilkan Jam Per Detik Arduino RTC

Semoga artikel ini bermanfaat.

Posting Komentar untuk "Tampilkan Jam Per Detik Arduino RTC"