Sabtu, 15 April 2017

Arduino dan modul DS 3231

Pada kesempatan kali ini akan melakukan praktek membuat jam dengan modul RTC DS 3221. Yang diperlukan adalah  :
*  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
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

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
//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

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

Latihan kedua
Latihan kedua adalah menampilkan waktu pada lcd 16x2 karakter

Yang kita perlukan adalah
Mikrokontroller Arduino Uno 
Modul RTC DS 3231
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