Sisällysluettelo:
Video: DS3231 RTC (reaaliaikainen kello) -asetuksen määrittäminen tarkasti, nopeasti ja automaattisesti Javan avulla (+-1 s): 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tämä opas näyttää sinulle kuinka asettaa aika DS3231 -reaaliaikaiselle kellolle käyttämällä Arduinoa ja pientä Java -sovellusta, joka käyttää Arduinon sarjayhteyttä.
Ohjelman peruslogiikka:
1. Arduino lähettää sarjapyynnön.
2. Java -ohjelma näyttää, mitä päivää/kuukautta/… arduino pyysi ja lähettää tarvittavat tiedot takaisin.
3. Kun kaikki tarvittavat tiedot on kerätty, arduino tallentaa tiedot DS3231 -laitteeseen.
DS3231 RTC -moduuli
DS3231 RTC -moduuli on suhteellisen halpa RTC -moduuli, jolla on suuri tarkkuus. (muutama minuutti vuodessa)
On olemassa erilaisia lajikkeita, joiden perustoiminnot ovat samat vain pienillä eroilla.
Yksityiskohtainen vertailu löytyy täältä: DS323x Vertailu | maximintegrated.com
Osta DS3231: DS3231 | ebay.com
Tietolomake: DS3231 Datasheet | maximintegrated.com
Tietolomake: DS1307 Datasheet | maximintegrated.com
Tarvittavat osat
1x Arduino (Nano, Uno, MEGA jne.)
4x hyppyjohdot
1x DS3231 -moduuli (DS1307 -moduuli)
Vaihe 1: Johdotus
Kytke DS3231 -kaapeli yllä olevan kuvan mukaisesti. Voit tietysti tehdä sen ilman leipälautaa, mutta se on hieman sotkuisempaa. Olen käyttänyt Arduino Nanoa esittelyyn, mutta Unon tai MEGA: n pitäisi toimia myös. (Muut voivat myös toimia, mutta olen laiska vahvistamaan)
- Arduino -> DS3231
- A4 -> SCL
- A5 -> SDA
- 5V -> VCC
- GND -> GND
Vaihe 2: Arduino -koodi
Lataa.ino -tiedosto alta ja lähetä se Arduinoosi (minun tapauksessani Nano).
Luonnos vaatii seuraavat kirjastot asennettuna toimiakseen oikein:
github.com/PaulStoffregen/Time
github.com/JChristensen/DS3232RTC
Opetusohjelma koodin lataamiseen arduinoosi löytyy täältä (arduino.cc).
Tarkista Arduino IDE: ssä, että koodi on lähetetty oikein. (Lataus valmis)
Arduino on nyt valmis vastaanottamaan aikatietoja
Lataa koodi täältä: DS3231TimeSync.zip (mediafire.com)
Lataa lähde täältä: DS3231TimeSyncSRC.zip (mediafire.com)
GitHub -arkisto: DS3213 RTC Time Sync (github.com)
Bitbucket -arkisto: DS3231 RTC Time Sync (bitbucket.com)
Vaihe 3: Java -sovellus
1. Suorita aiemmin ladattu "DS3231Sync.jar" kaksoisnapsauttamalla sitä
2. Näkyviin tulee pieni valintaikkuna, jossa kysytään arduino -porttiasi
Jos olet epävarma arduinosi käyttämästä portista, katso Arduino IDE oikeassa alakulmassa.
(Katso kuvat yllä)
3. Toinen valintaikkuna avautuu ja pyytää aikavyöhykkeen siirtymää
Siirtymä on suhteessa tietokoneen paikalliseen aikaan. Jos haluat asettaa RTC: n paikalliseen aikaan, syötä +00: 00.
On tärkeää, että syötät aikavyöhykkeen siirtymän tietyssä muodossa!
Yleinen muoto on +hh: mm tai -hh: mm. Sisällytä aina nollit eteen!
(Esimerkiksi: -03: 00; -06: 00; +09: 00; +02: 30)
4. Java -sovellus käynnistää pienen ikkunan, jossa on konsolilähtö
Pidä silmällä vahvistusviestejä, kuten: "Aika asetettu valmiiksi"
Kun aika -asetus on valmis, koodi tulostaa nykyisen ajan DS3231 -laitteeseen 5 sekunnin välein. Voit vahvistaa, että aika on asetettu oikein.
Jos et saa mitään lähtöä ~ 20 sekunnin kuluttua, paina arduino -laitteen nollauspainiketta ja odota uudelleen.
Jos se ei vieläkään toimi, tarkista luonnos Arduinosta ja/tai lataa se uudelleen. (Tärkeää: Sulje portti Java -sovelluksessa ennen lataamista Arduinoon; Muussa tapauksessa se estää sarjaportin!) Nollaa sitten yhteys Java -ohjelmassa.
(Java -ohjelma käyttää LocalDateTimea nykyisen päivämäärän saamiseen.)
Aika on nyt asetettu. Pidä hauskaa
Jos sinulla on ratkaisemattomia ongelmia ajan asettamisessa, kommentoi alle ja jaa log.txt (samassa kansiossa kuin purkki) kanssani. Kiitos paljon!