«

»

Feb 14

Uji NS.One/16 dengan DS1307

DS1307 adalah chip real time clock yang menggunakan I2C dalam komunikasinya.

Dengan backup batere – CR2032, informasi waktu dan tanggal dapat terjaga, walaupun catu daya eksternal terputus. Secara teori, CR2032 mampu mem-backup sampai 17 tahun. Namun dalam praktek, bertahan sampai 9 tahun sudah bagus 🙂

Konsumsi arus chip ini cukup kecil ~ 15mA, sehingga bisa diberikan catu dari pin mikrokontroler, walaupun tidak disarankan.

Informasi waktu dan tanggal disimpan dalam format BCD – Binary Code Decimal, mampu menangani waktu dan tanggal sampai tahun 2100.

Pustaka RTClib dapat diunduh dari link berikut.

Untuk formatted string, digunakan fungsi printf. Konsekuensi dari penggunaan fungsi ini adalah ukuran program menjadi cukup besar.

#include <LiquidCrystal.h>
#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 RTC;
LiquidCrystal lcd(8,9,10,12,13,14,15);

char myvar[10];

void setup () {
  Wire.begin();
  RTC.begin();
  lcd.begin(16,2);
  lcd.clear();

  if (! RTC.isrunning()) {
    // Baris berikut akan men-set RTC dengan tanggal dan waktu saat program di-kompilasi
    // RTC.adjust(DateTime(__DATE__, __TIME__));
  }
}

void loop () {
    DateTime now = RTC.now();
    sprintf(myvar,"%02d:%02d:%02d", now.hour(), now.minute(), now.second());
    lcd.clear();
    lcd.print(myvar);
    sprintf(myvar,"%02d-%02d-%02d", now.day(), now.month(), now.year());
    lcd.setCursor(0,1);
    lcd.print(myvar);
    delay(1000);
}

Tested dengan NS.One + “Arduino 1.0”, hasil kompilasi ~ 6k.