JAM DIGITAL DS1307 LCD 16X2
VIA ARDUINO
Salam elektro,pada beberapa jenis jam digital biasanya tidak menggunaka ic backup data,jadi ketika listrik aliran listrik di rumah kalian padam,jam akan mereset pad posisi semula bisanya 12.00 atau tergantung program yang dibuat oleh pabrikan,nah banyak yang bertanya" bagaimana sih agar waktu tersebut tidak reset dengan sendiri,artinya ketika listrik padam,jam tertap menghitung clock detik,pada tutorial kali ini aruselektronika aka memberi solusinya,silahkan kalian siman penjelasannya dibawah ini.
TOLONG BACA DENGAN DETAIL !
TOLONG BACA DENGAN DETAIL !
Siapkan alat dan bahan :
- Arduino Nano/Uno/Mega(sama saja)
- IC DS1307
- Crystal 32.768 Khz
- Breadboard
- Resistor 10k
- Laptop
- Software arduino ide
- Kabel usb
- Kabel male to female
- Library <Wire.h> (tutorial instal library klik disini)
- Library "RTClib.h" (tutorial instal library klik disini)
- Library <LiquidCrystal.h> (tutorial instal library klik disini)
- Download simulasi proteus (cara simulasi arduino di proteus klik disini)
1. Sambungkan board arduino & komponen jam lain (sesuai gambar dibawah)
CATATAN !
a. Jangan lupa perhatikan sambungan pin SCL dan SDA & pullup resistor 10k,dalam beberapa kasus bila pin tersebut terbalik maka lcd akan menampilkan 65:65:65
b. Apabila ic ds1307 kalian belum pernah sama sekali diisi data bisa kalian hapus "//" (artinya komentar) pada bagian program rtc.adjust(DateTime(2014, 1, 21, 3, 13, 12)); setting manual jam menit detik tanggal bulan tahun dan rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); setting data otomatis menyesuaikan dengan jam di laptop kalian silahkan kalian pilih salah satu a. Jangan lupa perhatikan sambungan pin SCL dan SDA & pullup resistor 10k,dalam beberapa kasus bila pin tersebut terbalik maka lcd akan menampilkan 65:65:65
2. Copy paste sketch/program di bawah ini ke dalam software arduino
/* * Jam Digital DS1307 Via LCD * Programmer = Fickry Muhammad */ #include #include #include RTC_DS1307 rtc; LiquidCrystal lcd(13, 12, 11, 10, 9, 8); void setup () { Serial.begin(9600); Wire.begin(); rtc.begin(); lcd.begin(16,2); lcd.clear(); lcd.setCursor(0,0); lcd.print("aruselektronika"); Wire.beginTransmission(0x68); Wire.write(0x07); // move pointer to SQW address Wire.write(0x10); // sends 0x10 (hex) 00010000 (binary) to control register - turns on square wave Wire.endTransmission(); if (! rtc.isrunning()) { Serial.println("RTC is NOT running!"); // This line sets the RTC with an explicit date & time, for example to set // January 21, 2014 at 3am you would call: //rtc.adjust(DateTime(2014, 1, 21, 3, 13, 12)); }else{ Serial.println("RTC is running!"); //rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); } } void loop () { DateTime now = rtc.now(); lcd.setCursor(0,1); lcd.print("Jam = "); lcd.print(now.hour()); lcd.print(":"); lcd.print(now.minute()); lcd.print(":"); lcd.print(now.second()); delay(200); }
3. Verify program arduino,apabila tidak
terjadi error lanjut dengan proses upload
4. Upload program,apabila succes akan muncul
tulisan done uploading,apabila ada yang
belum tahu bagaimana cara upload code/sketch
ke board arduino bisa baca disini
5. Sekarang kalian coba lihat lcd 16x2
pada simulasi atau hardware jika sudah benar maka akan tampil data waktu
seperti gambar dibawah ini
0 comments:
Posting Komentar