* Mikrokontroller Arduino Uno
* Modul RTC DS 3221
PERTAMA -TAMA HUBUNGKAN MIKROKONTROLLER DENGAN MODUL rtc
SCL hubungkan dengan pin analog A5
SDA hubungkan dengan pin analog A4
GND hubungkan dengan ground
VCC hubungkan dengan 5 Volt
Untuk dapat terhubung dengan baik dengan mikrokontroller Arduino maka kita perlu librari DS 3221 yang dapat di unduh pada link di bawah ini
link untuk Mendownload Library: DS3231
setelah kita dapatkan librarinya masukan ke arduino ide dengan cara klik Sketch- Include Library - add zipp library
cobalah latihan dasar di bawah ini
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
void setup()
{
Serial.begin(9600);
rtc.begin();
// The following lines can be uncommented to set the date and time
//rtc.setDOW(SATURDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(19, 36, 0); // Set the time to 12:00:00 (24hr format)
//rtc.setDate(15, 4, 2017); // Set the date to January 1st, 2014
}
void loop()
{
// Send Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Send time
Serial.println(rtc.getTimeStr());
// Wait one second before repeating :)
delay (1000);
}
cobalah comfile programnya kemudian upload ke mikrokontroller. hasilnya adalah waktu akan di tampilkan di monitor komputer
jika waktu yang ditampilkan tidak sesuai maka kita dapat mengeditnya atau merubah data waktu yang ada di modul RTC dengan cara merubah program di atas pada bagian setup coba perhatikan baris program bagian setup yang di arsir dan diberi warna berbeda
//rtc.setDOW(SATURDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(19, 36, 0); // Set the time to 12:00:00 (24hr format)
//rtc.setDate(15, 4, 2017); // Set the date to January 1st, 2014
Cobalah Uploud programnya dan hasilnya akan berubah dan data RTC sudah di rubah, jika sudah sukses lihat pada bagian setup tadi dan kembalikan menjadi komentar seperti di bawah ini
//rtc.setDOW(THURSDAY); // Set Day-of-Week to SUNDAY
Dan uploud kembali ke mikrokontroller... Kenapa harus begitu yaaa.... ?
Jika saudara ingin tahu jawabannya maka cobalah untuk jangan di rubah dahulu tetapi matikan mikrokontroller dan hidupkan kembali dan lihat apa yang akan terjadi ...?
Jawabannya adalah waktunya akan kembali ke nilai Thursday 17 -8- 2017 jam 10:15 lewat 20
kembali kacau kaaan ...?
Nah untuk menghindarinya maka harus di Uploud ulang
cobalah latihan dasar di bawah ini
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
void setup()
{
Serial.begin(9600);
rtc.begin();
// The following lines can be uncommented to set the date and time
//rtc.setDOW(SATURDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(19, 36, 0); // Set the time to 12:00:00 (24hr format)
//rtc.setDate(15, 4, 2017); // Set the date to January 1st, 2014
}
void loop()
{
// Send Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Send time
Serial.println(rtc.getTimeStr());
// Wait one second before repeating :)
delay (1000);
}
cobalah comfile programnya kemudian upload ke mikrokontroller. hasilnya adalah waktu akan di tampilkan di monitor komputer
jika waktu yang ditampilkan tidak sesuai maka kita dapat mengeditnya atau merubah data waktu yang ada di modul RTC dengan cara merubah program di atas pada bagian setup coba perhatikan baris program bagian setup yang di arsir dan diberi warna berbeda
//rtc.setDOW(SATURDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(19, 36, 0); // Set the time to 12:00:00 (24hr format)
//rtc.setDate(15, 4, 2017); // Set the date to January 1st, 2014
Hilangkan tada komentarnya kemudian rubahlah dengan data waktu yang benar misalkan sekarang adalah hari Kamis 17 Agustus 2017 jam 10:15 lewat 20 detik maka rubahlah datanya menjadi
rtc.setDOW(THURSDAY); // Set Day-of-Week to SUNDAY
rtc.setTime(10, 15, 20); // Set the time to 12:00:00 (24hr format)
rtc.setDate(17, 8, 2017); // Set the date to January 1st, 2014
rtc.setTime(10, 15, 20); // Set the time to 12:00:00 (24hr format)
rtc.setDate(17, 8, 2017); // Set the date to January 1st, 2014
//rtc.setDOW(THURSDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(10, 15, 20); // Set the time to 12:00:00 (24hr format)
//rtc.setDate(17, 8, 2017); // Set the date to January 1st, 2014
//rtc.setDate(17, 8, 2017); // Set the date to January 1st, 2014
Jika saudara ingin tahu jawabannya maka cobalah untuk jangan di rubah dahulu tetapi matikan mikrokontroller dan hidupkan kembali dan lihat apa yang akan terjadi ...?
Jawabannya adalah waktunya akan kembali ke nilai Thursday 17 -8- 2017 jam 10:15 lewat 20
kembali kacau kaaan ...?
Nah untuk menghindarinya maka harus di Uploud ulang
Latihan kedua
Latihan kedua adalah menampilkan waktu pada lcd 16x2 karakter
Gambar di atas adalah percobaan penulis dengan menggunakan Arduino nano yang disuplai dengan power Bank kecil. hidup dan sukses. nah programnya adalah seperti di bawah ini.. Cobalah
----------------------------------------------
----------------------------------------------
String waktu, tanggal;
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
rtc.begin();
}
void loop()
{
// waktu= String(rtc.getDOWStr());
tanggal= String (rtc.getDateStr());
waktu = String(rtc.getTimeStr());
lcd.setCursor(0, 0); lcd.print (waktu);
lcd.setCursor(0, 1); lcd.print (tanggal);
delay (500);
}
---------------------------------------------------------------------------
Tidak ada komentar:
Posting Komentar