Dalam Tutorial Arduino ini kita akan belajar cara menggunakan Modul Jam Real Time DS3231. Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini.
Ringkasan
Pertanyaan pertama yang muncul di sini adalah mengapa kita sebenarnya membutuhkan RTC terpisah untuk Proyek Arduino kita ketika Arduino sendiri memiliki pencatat waktu bawaan. Intinya adalah modul RTC berjalan dengan baterai dan dapat melacak waktu bahkan jika kita memprogram ulang mikrokontroler atau memutuskan daya utama.
DS3231 Jam Waktu Nyata
DS3231 adalah Jam Waktu Nyata yang sangat akurat dan berbiaya rendah yang dapat menyimpan informasi jam, menit, dan detik, serta, hari, bulan, dan tahun. Juga, ia memiliki kompensasi otomatis untuk tahun kabisat dan bulan dengan kurang dari 31 hari.
Modul ini dapat bekerja pada tegangan 3,3 atau 5 V yang membuatnya cocok untuk banyak platform pengembangan atau mikrokontroler. Input baterai adalah 3V dan baterai CR2032 3V biasa dapat memberi daya pada modul dan menyimpan informasi selama lebih dari satu tahun.
Modul ini menggunakan Protokol Komunikasi I2C yang membuat koneksi ke Papan Arduino sangat mudah.
Berikut skema rangkaiannya:
Jadi yang kita butuhkan hanyalah 4 kabel, pin VCC dan GND untuk memberi daya pada modul, dan dua pin komunikasi I2C, SDA dan SCL.
Anda bisa mendapatkan komponen yang diperlukan untuk Tutorial Arduino ini dari link di bawah ini:
DS3231 Jam Waktu Nyata……………..
Dewan Arduino ……………………………
Breadboard dan Kabel Lompat ………
Pemrograman
Setelah kita menghubungkan modul, kita perlu memprogram Papan Arduino untuk bekerja dengan Jam Waktu Nyata. Namun, ketika memprogram komunikasi antara Arduino dan modul I2C, kodenya tidak terlalu kecil dan mudah. Untungnya, sudah ada beberapa library untuk DS3231 RTC yang dapat ditemukan di internet.
Untuk tutorial ini saya memilih untuk menggunakan Library yang dibuat oleh Henning Karlsen yang dapat ditemukan dan diunduh dari websitenya, www.rinkydinkelectronics.com.
Jadi setelah kita mengunduh dan menginstal perpustakaan, kita dapat menggunakan contoh demo pertamanya untuk mengaktifkan jam modul RTC pada awalnya. Di bagian penyiapan kode contoh demo, kita dapat melihat bahwa ada tiga baris yang perlu kita batalkan komentarnya untuk mengatur hari, waktu, dan data pada awalnya.
// Code from the Demo Example of the DS3231 Library
void setup()
{
// Setup Serial connection
Serial.begin(115200);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}
// Initialize the rtc object
rtc.begin();
// The following lines can be uncommented to set the date and time
//rtc.setDOW(WEDNESDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(12, 0, 0); // Set the time to 12:00:00 (24hr format)
//rtc.setDate(1, 1, 2014); // Set the date to January 1st, 2014
}Code language: Arduino (arduino)
Baris pertama untuk pengaturan hari dalam seminggu, baris kedua untuk pengaturan waktu dalam jam, menit, dan detik, dan baris ketiga untuk pengaturan tanggal dalam hari, bulan, dan tahun.
Setelah kami mengupload kode ini, kami perlu mengomentari kembali tiga baris dan mengupload ulang kode tersebut.
// Code from the Demo Example of the DS3231 Library
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);
}Code language: Arduino (arduino)
Jika kita melihat bagian loop dari kode, kita dapat melihat bahwa sekarang menggunakan tiga fungsi kustom kita mendapatkan informasi dari RTC dan mencetaknya di Serial Monitor. Berikut tampilannya di Serial Monitor.
Sekarang bahkan jika kita memutuskan daya Arduino dan kemudian menyambungkannya kembali dan menjalankan Serial Monitor lagi, kita dapat melihat bahwa waktu terus berjalan tanpa disetel ulang.
Jadi sekarang kami memiliki Jam Waktu Nyata dan kami dapat menggunakannya di Proyek Arduino apa pun. Sebagai contoh kedua saya menghubungkan LCD ke Arduino dan mencetak waktu dan tanggal di atasnya.
Berikut kode sumber dari contoh ini:
/*
* Arduino DS3231 Real Time Clock Module Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
* DS3231 Library made by Henning Karlsen which can be found and downloaded from his website, www.rinkydinkelectronics.com.
*
*/
#include <DS3231.h>
#include <LiquidCrystal.h> // includes the LiquidCrystal Library
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
rtc.begin(); // Initialize the rtc object
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display }
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Time: ");
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print("Date: ");
lcd.print(rtc.getDateStr());
delay(1000);
}Code language: Arduino (arduino)
Itu saja untuk Tutorial Arduino ini, jangan ragu untuk mengajukan pertanyaan apa pun di bagian komentar di bawah.