Bagaimana dan Mengapa Menambahkan Jam Waktu Nyata ke Arduino

Bagaimana dan Mengapa Menambahkan Jam Waktu Nyata ke Arduino

Menjaga waktu pada proyek Arduino tidak semudah yang Anda kira: begitu koneksi komputer tidak ada, Arduino Anda yang tidak berdaya berhenti berjalan, termasuk ticker internalnya.





dimana saya bisa mencetak dokumen secara gratis

Agar Arduino Anda tetap sinkron dengan dunia di sekitarnya, Anda akan membutuhkan apa yang disebut 'modul Jam Waktu Nyata'. Inilah cara menggunakannya.





Apa gunanya Jam Waktu Nyata (RTC)?

Komputer Anda kemungkinan besar menyinkronkan waktunya dengan internet, tetapi masih memiliki jam internal yang terus berjalan bahkan tanpa koneksi internet atau daya dimatikan. Saat Anda menggunakan Arduino yang dicolokkan ke komputer, Arduino memiliki akses ke waktu akurat yang disediakan oleh jam sistem Anda. Itu cukup berguna, tetapi sebagian besar proyek Arduino dirancang untuk digunakan jauh dari komputer - di mana, setiap kali daya dicabut, atau Arduino dihidupkan ulang, itu sama sekali tidak tahu jam berapa sekarang. Jam internal akan diatur ulang dan mulai menghitung dari nol lagi saat berikutnya dinyalakan.





Jika proyek Anda ada hubungannya dengan kebutuhan waktu - seperti lampu malam dan jam alarm matahari terbit - ini jelas akan menjadi masalah. Dalam proyek itu, kami mengatasi masalah ini dengan mengatur waktu secara manual setiap malam dengan cara yang agak kasar - pengguna akan menekan tombol reset tepat sebelum mereka pergi tidur, menyediakan sinkronisasi waktu manual. Jelas itu bukan solusi jangka panjang yang ideal.

Modul RTC adalah sedikit sirkuit tambahan, membutuhkan baterai sel koin kecil, yang terus menghitung waktu bahkan ketika Arduino Anda dimatikan. Setelah disetel sekali - itu akan menjaga waktu itu selama masa pakai baterai, biasanya sekitar satu tahun yang baik.



KecilRTC

RTC paling populer untuk Arduino disebut TinyRTC dan dapat dibeli dengan harga sekitar - di eBay. Kemungkinan besar Anda harus menyediakan baterai Anda sendiri (mengirim ini ke luar negeri ke banyak tempat adalah ilegal), dan beberapa header (pin yang dimasukkan ke dalam lubang, yang harus Anda solder sendiri).

Ini adalah modul yang saya miliki:





Bahkan memiliki sensor suhu built-in, meskipun baterai akan bertahan lebih lama jika Anda tidak menggunakannya.

Jumlah lubang pada benda itu terlihat cukup menakutkan, tetapi Anda hanya membutuhkan empat lubang; GND, VCC, SCL dan SDA - Anda dapat menggunakan pin yang relevan di kedua sisi modul RTC. Anda berbicara dengan jam menggunakan protokol I2C , yang berarti hanya dua pin yang digunakan - satu untuk 'jam' (jam data komunikasi serial, tidak ada hubungannya dengan waktu) dan satu untuk data. Bahkan, Anda bahkan merangkai hingga 121 perangkat I2C pada dua pin yang sama - lihat halaman Adafruit ini untuk pilihan perangkat I2C lainnya bisa anda tambahkan, karena ada banyak!





Mulai

Hubungkan modul TinyRTC Anda sesuai dengan diagram di bawah - garis DS merah muda tidak diperlukan, karena itu untuk sensor suhu.

Selanjutnya, unduh Waktu dan DS1307RTC perpustakaan dan tempatkan folder yang dihasilkan di . Anda /perpustakaan map.

Keluar dan luncurkan kembali lingkungan Arduino untuk dimuat di perpustakaan dan contoh.

Anda akan menemukan dua contoh di menu DS1307RTC: unggah dan jalankan Atur waktu contoh pertama - ini akan mengatur RTC ke waktu yang tepat. Kode sebenarnya tidak layak untuk diperinci, ketahuilah bahwa Anda perlu menjalankannya sekali untuk melakukan sinkronisasi waktu awal.

Selanjutnya, lihat contoh penggunaan dengan BacaTes .

cari daftar keinginan amazon

#include
#include
#include
void setup() {
Serial.begin(9600);
while (!Serial) ; // wait for serial
delay(200);
Serial.println('DS1307RTC Read Test');
Serial.println('-------------------');
}
void loop() {
tmElements_t tm;
if (RTC.read(tm)) {
Serial.print('Ok, Time = ');
print2digits(tm.Hour);
Serial.write(':');
print2digits(tm.Minute);
Serial.write(':');
print2digits(tm.Second);
Serial.print(', Date (D/M/Y) = ');
Serial.print(tm.Day);
Serial.write('/');
Serial.print(tm.Month);
Serial.write('/');
Serial.print(tmYearToCalendar(tm.Year));
Serial.println();
} else {
if (RTC.chipPresent()) {
Serial.println('The DS1307 is stopped. Please run the SetTime');
Serial.println('example to initialize the time and begin running.');
Serial.println();
} else {
Serial.println('DS1307 read error! Please check the circuitry.');
Serial.println();
}
delay(9000);
}
delay(1000);
}
void print2digits(int number) {
if (number >= 0 && number <10) {
Serial.write('0');
}
Serial.print(number);
}

Perhatikan bahwa kami juga menyertakan inti Wire.h perpustakaan - ini dilengkapi dengan Arduino dan digunakan untuk berkomunikasi melalui I2C. Unggah kode, buka konsol serial pada 9600 baud, dan tonton dan Arduino Anda mengeluarkan waktu saat ini setiap detik. Menakjubkan!

Kode yang paling penting dalam contoh adalah membuat tmElements_t tm - ini adalah struktur yang akan kita isi dengan waktu saat ini; dan RTC.baca(tm) fungsi, yang mendapatkan waktu saat ini dari modul RTC, memasukkannya ke dalam tm struktur, dan mengembalikan true jika semuanya berjalan dengan baik. Tambahkan kode debug atau logika Anda di dalam pernyataan 'jika' itu, seperti mencetak waktu atau bereaksi terhadapnya.

cara mengimpor foto iphone ke mac

Sekarang setelah Anda mengetahui cara mendapatkan waktu yang tepat dengan Arduino, Anda dapat mencoba menulis ulang proyek alarm matahari terbit atau membuat jam kata LED - kemungkinannya tidak terbatas! Apa yang akan kamu buat?

Kredit Gambar: Snootlab Melalui Flickr

Membagikan Membagikan Menciak Surel Cara Mengubah Tampilan dan Nuansa Desktop Windows 10 Anda

Ingin tahu cara membuat Windows 10 terlihat lebih baik? Gunakan penyesuaian sederhana ini untuk menjadikan Windows 10 milik Anda.

Baca Selanjutnya
Topik-topik yang berkaitan
  • buatan sendiri
  • Arduino
Tentang Penulis James Bruce(707 Artikel Diterbitkan)

James memiliki gelar BSc dalam Artificial Intelligence dan bersertifikat CompTIA A+ dan Network+. Ketika dia tidak sibuk sebagai Editor Ulasan Perangkat Keras, dia menikmati LEGO, VR, dan permainan papan. Sebelum bergabung dengan MakeUseOf, ia adalah seorang teknisi pencahayaan, guru bahasa Inggris, dan insinyur pusat data.

More From James Bruce

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan