Daftar Isi:
- Langkah 1: Komponen yang Diperlukan
- Langkah 2: Koneksi Jam Arduino
- Langkah 3: Kode untuk Jam Arduino Dengan RTC
Video: Jam Waktu Nyata Dengan Arduino: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Dalam proyek ini, kami akan membuat jam dengan bantuan modul Arduino dan RTC. Seperti yang kita ketahui Arduino tidak dapat menampilkan waktu yang sebenarnya sehingga kita akan menggunakan modul RTC untuk menampilkan waktu yang tepat pada LCD. Baca semua langkah dengan hati-hati itu akan banyak membantu Anda untuk membuat jarum jam.
Kode Arduino DS3231 seperti kode DS1307 dan bekerja dengan kedua chip RTC.
Kode Arduino di bawahnya tidak menggunakan pustaka apa pun untuk DS3231 RTC, pustaka Kawat adalah untuk korespondensi antara Arduino dan DS3231 menggunakan konvensi I2C.
Ya! Banyak insinyur elektronik bergantung padanya untuk proyek berbasis waktu mereka tetapi RTC tidak sepenuhnya dapat diandalkan. Ini dioperasikan dengan baterai dan harus diganti cepat atau lambat. Datang ke proyek IoT, ia menempati pin SPI (Serial Peripheral Interface) yang berharga dan menjadi berantakan dengan kabel yang kusut. Solusi…. Ini dia pahlawan kita NTP (Protokol waktu jaringan). NTP sangat akurat karena mendapat waktu dari internet. Kami akan mengoperasikan protokol ini menggunakan mode client-server. prosesnya sangat sederhana sehingga Nodemcu kami bertindak sebagai klien dan meminta paket NTP dari server menggunakan UDP. Sebagai imbalannya, server mengirimkan paket ke klien yang mem-parsing data. NTP adalah protokol sinkronisasi waktu universal. Sekarang mari kita nyalakan stasiun kerja lab kita
Langkah 1: Komponen yang Diperlukan
- papan Arduino
- Papan RTC DS3231
- Layar LCD 16x2
- 2 x tombol tekan
- Resistor variabel 10K ohm (atau potensiometer)
- resistor 330 ohm
- Baterai sel koin 3V
- Papan tempat memotong roti
- Kabel jumper
Molekul RTC DS3231
Waktu adalah indra penting yang dibutuhkan dalam dunia manusia yang serba cepat ini. Dalam proyek waktu nyata
Kami menggunakan RTC (A. K. A Real-time clock)
RTC Real-time-clock (RTC) adalah sirkuit terpadu (IC) yang melacak waktu saat ini. RTC menangani waktu dalam mode nyata. RTC biasanya ditemukan di motherboard komputer dan sistem tertanam yang memerlukan akses tepat waktu.
Langkah 2: Koneksi Jam Arduino
- Hubungkan pin SCL ke modul RTC ke Arduino A5
- Hubungkan pin SDA ke modul RTC ke Arduino A4
- Hubungkan VCC KE 5v dan GND KE GND
- Hubungkan tombol tekan ke pin 8
- Hubungkan tombol lain ke pin 9
- Hubungkan RS LCD ke pin 2 Arduino
- Hubungkan E LCD ke pin 3 Arduino
- Hubungkan D7 LCD ke pin 7 Arduino
- Hubungkan D6 LCD ke pin 6 Arduino
- Hubungkan D5 LCD ke pin 5 Arduino
- Hubungkan D4 LCD ke pin 4 Arduino
- Hubungkan VSS & K ke GND
- Hubungkan VDD & A ke 5v
- Hubungkan vo ke pin output potensiometer
Langkah 3: Kode untuk Jam Arduino Dengan RTC
DS3231 bekerja dengan format BCD saja dan untuk mengkonversi BCD ke desimal dan sebaliknya saya menggunakan 2 baris di bawah ini (contoh untuk menit):// Konversi BCD ke desimalmenit = (menit >> 4) * 10 + (menit & 0x0F);
// Konversi desimal ke BCDmenit = ((menit / 10) << 4) + (menit % 10); void DS3231_display(): menampilkan waktu dan kalender, sebelum menampilkan waktu dan data kalender dikonversi dari BCD ke format desimal.void blink_parameter():
// Jam dan kalender waktu nyata dengan tombol yang disetel menggunakan DS3231 dan Arduino // sertakan kode perpustakaan LCD #termasuk // sertakan kode perpustakaan kawat (diperlukan untuk perangkat protokol I2C) #sertakan // koneksi modul LCD (RS, E, D4, D5, D6, D7) LiquidCrystal lcd(2, 3, 4, 5, 6, 7); void setup() { pinMode(8, INPUT_PULLUP); // button1 terhubung ke pin 8 pinMode(9, INPUT_PULLUP); // button2 terhubung ke pin 9 // mengatur jumlah kolom dan baris LCD lcd.begin(16, 2); Kawat.mulai(); // Join i2c bus } char Time = "TIME::: "; char Kalender = "TANGGAL: / /20"; byte i, detik, menit, jam, tanggal, bulan, tahun; void DS3231_display(){ // Konversi BCD ke desimal detik = (kedua >> 4) * 10 + (detik & 0x0F); menit = (menit >> 4) * 10 + (menit & 0x0F); jam = (jam >> 4) * 10 + (jam & 0x0F); tanggal = (tanggal >> 4) * 10 + (tanggal & 0x0F); bulan = (bulan >> 4) * 10 + (bulan & 0x0F); tahun = (tahun >> 4) * 10 + (tahun & 0x0F); // Akhiri Waktu konversi[12] = detik % 10 + 48; Waktu[11] = detik / 10 + 48; Waktu[9] = menit % 10 + 48; Waktu[8] = menit / 10 + 48; Waktu[6] = jam % 10 + 48; Waktu[5] = jam / 10 + 48; Kalender[14] = tahun % 10 + 48; Kalender[13] = tahun / 10 + 48; Kalender[9] = bulan % 10 + 48; Kalender[8] = bulan / 10 + 48; Kalender[6] = tanggal % 10 + 48; Kalender[5] = tanggal / 10 + 48; lcd.setCursor(0, 0); lcd.print(Waktu); // Menampilkan waktu lcd.setCursor(0, 1); lcd.print(Kalender); // Tampilkan kalender } void blink_parameter(){ byte j = 0; while(j 23) // Jika jam > 23 ==> jam = 0 parameter = 0; if(i == 1 && parameter > 59) // If menit > 59 ==> menit = 0 parameter = 0; if(i == 2 && parameter > 31) // If date > 31 ==> date = 1 parameter = 1; if(i == 3 && parameter > 12) // If month > 12 ==> month = 1 parameter = 1; if(i == 4 && parameter > 99) // If year > 99 ==> year = 0 parameter = 0; sprintf(teks, "%02u", parameter); lcd.setCursor(x, y); lcd.print(teks); penundaan (200); // Tunggu 200 md } lcd.setCursor(x, y); lcd.print(""); // Menampilkan dua spasi blink_parameter(); sprintf(teks, "%02u", parameter); lcd.setCursor(x, y); lcd.print(teks); blink_parameter(); if(!digitalRead(8)){ // Jika tombol (pin #8) ditekan i++; // Kenaikan 'i' untuk parameter pengembalian parameter berikutnya; // Kembalikan nilai parameter dan keluar } } } void loop() { if(!digitalRead(8)){ // Jika tombol (pin #8) ditekan i = 0; jam = edit(5, 0, jam); menit = edit(8, 0, menit); tanggal = edit(5, 1, tanggal); bulan = edit(8, 1, bulan); tahun = edit(13, 1, tahun); // Konversi desimal ke BCD menit = ((menit / 10) << 4) + (menit % 10); jam = ((jam / 10) << 4) + (jam % 10); tanggal = ((tanggal / 10) << 4) + (tanggal % 10); bulan = ((bulan / 10) << 4) + (bulan % 10); tahun = ((tahun / 10) << 4) + (tahun % 10); // Akhiri konversi // Tulis data ke DS3231 RTC Wire.beginTransmission(0x68); // Mulai protokol I2C dengan alamat DS3231 Wire.write(0); // Kirim alamat register Wire.write(0); // Setel ulang sesonds dan mulai osilator Wire.write(minute); // Tulis menit Wire.write(jam); // Tulis jam Wire.write(1); // Tulis hari (tidak digunakan) Wire.write(date); // Tulis tanggal Wire.write(bulan); // Tulis bulan Wire.write(tahun); // Tulis tahun Wire.endTransmission(); // Hentikan transmisi dan lepaskan penundaan bus I2C (200); // Tunggu 200ms } Wire.beginTransmission(0x68); // Mulai protokol I2C dengan alamat DS3231 Wire.write(0); // Kirim alamat register Wire.endTransmission(false); // I2C restart Wire.requestFrom(0x68, 7); // Meminta 7 byte dari DS3231 dan melepaskan bus I2C di akhir pembacaan detik = Wire.read(); // Baca detik dari register 0 menit = Wire.read(); // Baca menit dari register 1 jam = Wire.read(); // Baca jam dari register 2 Wire.read(); // Baca hari dari register 3 (tidak digunakan) date = Wire.read(); // Baca tanggal dari register 4 bulan = Wire.read(); // Baca bulan dari register 5 tahun = Wire.read(); // Baca tahun dari register 6 DS3231_display(); // Waktu pemutaran & penundaan kalender(50); // Tunggu 50 md }
Direkomendasikan:
Cara Menggunakan Modul Jam Waktu Nyata (DS3231): 5 Langkah
Cara Menggunakan Modul Jam Waktu Nyata (DS3231): DS3231 adalah jam waktu nyata (RTC) I2C yang sangat akurat dan berbiaya rendah dengan osilator kristal kompensasi suhu (TCXO) dan kristal yang terintegrasi. Perangkat ini menggabungkan input baterai dan mempertahankan ketepatan waktu yang akurat saat daya utama ke
Jam Waktu Nyata Menggunakan AT89s52: 3 Langkah
Jam Real Time Menggunakan AT89s52: SELAMAT DATANG KEMBALI, Ini adalah shubham Trivedi dan hari ini saya akan merancang Jam Real Time menggunakan Mikrokontroler At89s52. Mikrokontroler AT89S52 adalah inti dari proyek ini. IC DS1307 digunakan sebagai RTC. IC DS1307 ini membutuhkan antarmuka I2C, tetapi 89
DS1307 Jam Waktu Nyata RTC Dengan Arduino: 4 Langkah
DS1307 Real Time Clock RTC With Arduino: Dalam Tutorial ini, kita akan belajar tentang Real Time Clock (RTC) dan bagaimana Arduino & IC Real Time Clock DS1307 disatukan sebagai perangkat pengatur waktu.Real Time Clock (RTC) digunakan untuk memantau waktu dan memelihara kalender.Untuk menggunakan RTC
Membuat Jam Dengan M5stick C Menggunakan Arduino IDE - Jam Waktu Nyata RTC Dengan M5stack M5stick-C: 4 Langkah
Membuat Jam Dengan M5stick C Menggunakan Arduino IDE | Jam Waktu Nyata RTC Dengan M5stack M5stick-C: Hai teman-teman dalam instruksi ini kita akan belajar cara membuat jam dengan papan pengembangan m5stick-C dari m5stack menggunakan Arduino IDE. Jadi m5stick akan menampilkan tanggal, waktu & minggu dalam sebulan di layar
NODEMCU Lua ESP8266 Dengan Jam Waktu Nyata (RTC) & EEPROM: 7 Langkah
NODEMCU Lua ESP8266 Dengan Real Time Clock (RTC) & EEPROM: Mendapatkan waktu yang tepat sangat penting jika Anda ingin menyimpan data log. Ada berbagai cara untuk mendapatkan waktu dari sumber di Internet. Anda mungkin bertanya mengapa tidak menggunakan ESP8266 untuk menghemat waktu Anda? Anda bisa, ia memiliki RTC internal (Real Time