Isi kandungan:

Menetapkan DS3231 RTC (Jam Masa Sebenar) Dengan tepat, pantas dan automatik menggunakan Java (+ -1s): 3 Langkah
Menetapkan DS3231 RTC (Jam Masa Sebenar) Dengan tepat, pantas dan automatik menggunakan Java (+ -1s): 3 Langkah

Video: Menetapkan DS3231 RTC (Jam Masa Sebenar) Dengan tepat, pantas dan automatik menggunakan Java (+ -1s): 3 Langkah

Video: Menetapkan DS3231 RTC (Jam Masa Sebenar) Dengan tepat, pantas dan automatik menggunakan Java (+ -1s): 3 Langkah
Video: Lesson 19: Using LCD Screen with Arduino LCD1602 LCD2004 | Arduino Step By Step Course 2024, Julai
Anonim
Menetapkan DS3231 RTC (Jam Masa Nyata) dengan tepat, cepat dan automatik menggunakan Java (+ -1s)
Menetapkan DS3231 RTC (Jam Masa Nyata) dengan tepat, cepat dan automatik menggunakan Java (+ -1s)

Instructable ini akan menunjukkan kepada anda cara mengatur waktu pada Jam Real Time DS3231 menggunakan Arduino dan aplikasi Java kecil yang menggunakan sambungan bersiri dari Arduino.

Logik asas program ini:

1. Arduino menghantar permintaan bersiri.

2. Program Java melihat hari / bulan /… apa yang diminta oleh arduino dan mengirim kembali data yang relevan.

3. Setelah semua maklumat yang diperlukan dikumpulkan, arduino menyimpan data dalam DS3231.

Modul RTC DS3231

Modul RTC DS3231 adalah modul RTC yang agak murah dengan ketepatan yang tinggi. (beberapa minit setahun)

Terdapat pelbagai jenis yang fungsi asasnya sama dengan hanya perbezaan kecil.

Perbandingan terperinci boleh didapati di sini: Perbandingan DS323x | maximintegrated.com

Beli DS3231: DS3231 | ebay.com

Lembar Data: Lembaran Data DS3231 | maximintegrated.com

Lembar Data: Lembaran Data DS1307 | maximintegrated.com

Bahagian Diperlukan

1x Arduino (Nano, Uno, MEGA, dll.)

Wayar Pelompat 4x

1x Modul DS3231 (Modul DS1307)

Langkah 1: Pendawaian

Pendawaian
Pendawaian

Kawat DS3231 seperti yang ditunjukkan dalam gambar di atas. Sudah tentu anda boleh melakukannya tanpa menggunakan papan roti, tetapi ia akan menjadi lebih kemas. Saya telah menggunakan Arduino Nano untuk demonstrasi tetapi Uno atau MEGA harus berfungsi juga. (Orang lain mungkin juga bekerja tetapi saya malas untuk mengesahkan)

  • Arduino -> DS3231
  • A4 -> SCL
  • A5 -> SDA
  • 5V -> VCC
  • GND -> GND

Langkah 2: Kod Arduino

Kod Arduino
Kod Arduino

Muat turun fail.ino dari bawah dan muat naik ke Arduino anda (dalam kes saya Nano).

Sketsa memerlukan perpustakaan berikut dipasang untuk berfungsi dengan betul:

github.com/PaulStoffregen/ Masa

github.com/JChristensen/DS3232RTC

Tutorial mengenai cara memuat naik kod ke arduino anda boleh didapati di sini (arduino.cc).

Dalam IDE Arduino mengesahkan bahawa kod telah dihantar dengan betul. (Selesai memuat naik)

Arduino anda kini bersedia untuk menerima maklumat masa

Muat turun kod di sini: DS3231TimeSync.zip (mediafire.com)

Muat turun sumbernya di sini: DS3231TimeSyncSRC.zip (mediafire.com)

Repositori GitHub: Penyegerakan Masa RTC DS3213 (github.com)

Repositori bitbucket: DS3231 RTC Time Sync (bitbucket.com)

Langkah 3: Aplikasi Java

Aplikasi Java
Aplikasi Java

1. Jalankan "DS3231Sync.jar" yang dimuat turun sebelumnya dengan mengklik dua kali

2. Dialog kecil akan dibuka meminta anda untuk port arduino anda

Sekiranya anda tidak pasti mengenai port yang digunakan oleh arduino anda, lihatlah Arduino IDE di sebelah kanan bawah.

(Lihat gambar di atas)

3. Dialog lain akan terbuka dan meminta anda mengimbangi zon waktu

Pengimbangannya bergantung pada waktu tempatan komputer anda. Untuk menetapkan RTC ke waktu tempatan anda, masukkan +00: 00.

Penting untuk memasukkan zon waktu mengimbangi dalam format tertentu!

Format umum ialah + hh: mm atau -hh: mm. Sentiasa sertakan sifar terkemuka!

(Cth: -03: 00; -06: 00; +09: 00; +02: 30)

4. Aplikasi Java akan melancarkan tetingkap kecil dengan output konsol

Awasi mesej pengesahan seperti: "Masa ditetapkan selesai"

Apabila proses penetapan masa selesai, kod akan mencetak masa semasa pada DS3231 setiap 5 saat. Anda boleh mengesahkan bahawa waktunya ditetapkan dengan betul.

Sekiranya anda tidak mendapat output selepas ~ 20-an tekan butang reset pada arduino anda dan tunggu lagi.

Sekiranya masih tidak berfungsi, sahkan lakaran di Arduino dan / atau muat naik lagi. (Penting: Tutup Port di aplikasi Java sebelum memuat naik ke Arduino; Jika tidak, ia akan menyekat port bersiri!) Kemudian tetapkan semula sambungan dalam program Java.

(Program Java menggunakan LocalDateTime untuk mendapatkan tarikh terkini.)

Masanya sudah ditetapkan. Berseronok

Sekiranya anda mempunyai masalah yang tidak dapat diselesaikan dalam menetapkan masa, sila komen di bawah dan kongsi log.txt anda (dalam folder yang sama dengan balang) dengan saya. Terima kasih banyak-banyak!