Sisällysluettelo:

DS3231 RTC (reaaliaikainen kello) -asetuksen määrittäminen tarkasti, nopeasti ja automaattisesti Javan avulla (+-1 s): 3 vaihetta
DS3231 RTC (reaaliaikainen kello) -asetuksen määrittäminen tarkasti, nopeasti ja automaattisesti Javan avulla (+-1 s): 3 vaihetta

Video: DS3231 RTC (reaaliaikainen kello) -asetuksen määrittäminen tarkasti, nopeasti ja automaattisesti Javan avulla (+-1 s): 3 vaihetta

Video: DS3231 RTC (reaaliaikainen kello) -asetuksen määrittäminen tarkasti, nopeasti ja automaattisesti Javan avulla (+-1 s): 3 vaihetta
Video: DS3231 RTC from AliExpress are FAKE 2024, Heinäkuu
Anonim
DS3231 RTC (reaaliaikainen kello) -asetuksen täsmällinen, nopea ja automatisoitu Java (+-1s)
DS3231 RTC (reaaliaikainen kello) -asetuksen täsmällinen, nopea ja automatisoitu Java (+-1s)

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

Johdotus
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

Arduinon koodi
Arduinon 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

Java -sovellus
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!