Assalamualaikum….
Selamat pagi,siang,sore sobat Anak Kendali,ok kita akan melanjutkan artikel yang pertama saya mohon
untuk di maklumi….kali ini saya mau berbagi tutorial menyeting RTC DS3231 melalui Serial (ingat ini hanya untuk PEMULA saja klo udh MASTER,silahkan dihiraukan saja…?).
ok langsung saja lanjut TKP.
keyword : Cara Setting RTC,RTC ARDUINO,Tutorial RTC Arduino,Pemula Arduino
ok bahan-bahan seperti biasa :
- Arduino (UNO,NANO,MEGA)
- RTC DS3231
- LAP TOPP or PC jangan lupa
- Library bisa ambil disini
Program :
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
Time t;void setup() {
Serial.begin(9600);
rtc.begin();
//rtc.setDOW(WEDNESDAY); // hari
//rtc.setTime(12, 0, 0); // jam,menit,detik
//rtc.setDate(1, 1, 2014); // tanggal,bulan,tahun
}void loop() {
t = rtc.getTime();
set_waktu();
Serial.print(rtc.getDOWStr());
Serial.print(” “);
Serial.print(rtc.getDateStr());
Serial.print(” — “);
Serial.println(rtc.getTimeStr());
delay (1000);
}void set_waktu() {
while (Serial.available() > 0) {
String x = Serial.readString();
char mm[2], hh[2], Dow[2], dd[2], MM[2], yy[4];
int Tahun, Bulan, Tanggal, Hari, Jam, Menit;
for (int i = 0; i < 4; i++) {
yy[i] = x[i];
}
Tahun = atoi(yy);
for (int i = 4, j = 0; i < 6; i++, j++) {
MM[j] = x[i];
}
Bulan = atoi(MM);
for (int i = 6, j = 0; i < 8; i++, j++) {
dd[j] = x[i];
}
Tanggal = atoi(dd);
for (int i = 8, j = 0; i < 10; i++, j++) {
Dow[j] = x[i];
}
Hari = atoi(Dow);
for (int i = 10, j = 0; i < 12; i++, j++) {
hh[j] = x[i];
}
Jam = atoi(hh);
for (int i = 12, j = 0; i < 14; i++, j++) {
mm[j] = x[i];
}
Menit = atoi(mm);
rtc.setDOW(Hari);
rtc.setTime(Jam, Menit, 0);
rtc.setDate(Tanggal, Bulan, Tahun);
t = rtc.getTime();
delay(1000);
}
}
Nah sekian kodenya,untuk format penyetingannya adalah tahun+bulan+tanggal+hari+jam+menit contohnya : 20180828071230 jadi tanggal & jam tersebut adalah (28-08-2018 12:30)
note: tahun harus 4 digit,bulan 2 digit,tanggal 2 digit,hari 2 digit,jam 2 digit,menit 2 digit.
Wassalamualaikum.
Kok codingan nya error kak
ga bisa paling pasang kodingnya