INHOUDSOPGAWE:

Stel die DS3231 RTC (Real Time Clock) akkuraat, vinnig en outomaties in met behulp van Java (+-1s): 3 stappe
Stel die DS3231 RTC (Real Time Clock) akkuraat, vinnig en outomaties in met behulp van Java (+-1s): 3 stappe

Video: Stel die DS3231 RTC (Real Time Clock) akkuraat, vinnig en outomaties in met behulp van Java (+-1s): 3 stappe

Video: Stel die DS3231 RTC (Real Time Clock) akkuraat, vinnig en outomaties in met behulp van Java (+-1s): 3 stappe
Video: Отображение температуры на LCD1602 с помощью датчика температуры LM35 с Arduino 2024, November
Anonim
Stel die DS3231 RTC (Real Time Clock) akkuraat, vinnig en outomaties in met behulp van Java (+-1s)
Stel die DS3231 RTC (Real Time Clock) akkuraat, vinnig en outomaties in met behulp van Java (+-1s)

Hierdie instruksies gaan u wys hoe u die tyd op 'n DS3231 Real Time Clock kan stel met 'n Arduino en 'n klein Java -toepassing wat die seriële verbinding van die Arduino gebruik.

Die basiese logika van hierdie program:

1. Die Arduino stuur 'n reeks versoek.

2. Die Java -program kyk watter dag/maand/… die arduino aangevra het en stuur die relevante data terug.

3. Nadat al die nodige inligting versamel is, stoor die arduino die data in die DS3231.

Die DS3231 RTC -module

Die DS3231 RTC -module is 'n relatief goedkoop RTC -module met 'n hoë akkuraatheid. ('n paar minute per jaar)

Daar is verskillende variëteite waarvan die basiese funksionaliteit dieselfde is, met slegs geringe verskille.

Hier kan u 'n gedetailleerde vergelyking vind: DS323x Vergelyking | maximintegrated.com

Koop DS3231: DS3231 | ebay.com

Gegevensblad: DS3231 Gegevensblad | maximintegrated.com

Gegevensblad: DS1307 Gegevensblad | maximintegrated.com

Onderdele benodig

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

4x Jumper drade

1x DS3231 -module (DS1307 -module)

Stap 1: Bedrading

Bedrading
Bedrading

Bedraad die DS3231 soos in die prent hierbo getoon. U kan dit natuurlik doen sonder die gebruik van 'n broodbord, maar dit sal 'n bietjie morsiger wees. Ek het 'n Arduino Nano vir demonstrasie gebruik, maar 'n Uno of 'n MEGA behoort ook te werk. (Ander kan ook werk, maar ek is te lui om te bevestig)

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

Stap 2: Die Arduino -kode

Die Arduino -kode
Die Arduino -kode

Laai die.ino -lêer van onder af en laai dit op na u Arduino (in my geval 'n Nano).

Die skets benodig die volgende biblioteke om korrek te werk:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

U kan hier 'n handleiding vind om die kode na u arduino op te laai (arduino.cc).

Verifieer in die Arduino IDE dat die kode korrek ingedien is. (Oplaai klaar)

U Arduino is nou gereed om tydinligting te ontvang

Laai die kode hier af: DS3231TimeSync.zip (mediafire.com)

Laai die bron hier af: DS3231TimeSyncSRC.zip (mediafire.com)

GitHub -bewaarplek: DS3213 RTC Time Sync (github.com)

Bitbucket -bewaarplek: DS3231 RTC Time Sync (bitbucket.com)

Stap 3: Die Java -toepassing

Die Java -toepassing
Die Java -toepassing

1. Begin "DS3231Sync.jar" wat voorheen afgelaai is deur dubbel te klik

2. 'n Klein dialoog word oopgemaak waarin u gevra word na die poort van u arduino

As u onseker is oor die poort wat u arduino gebruik, kyk dan na die Arduino IDE regs onder.

(Sien prente hierbo)

3. 'n Ander dialoog sal oopmaak en u vra vir 'n tydsone -verrekening

Die offset is relatief tot die plaaslike tyd van u rekenaar. Voer +00: 00 in om die RTC op u plaaslike tyd in te stel.

Dit is van kritieke belang dat u die tydsone -offset in 'n spesifieke formaat betree!

Die algemene formaat is +hh: mm of -hh: mm. Sluit altyd voorste nulle in!

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

4. Die Java -toepassing stel 'n klein venster oop met konsole -uitset

Hou bevestigingsboodskappe dop soos: "Tyd vasgestel"

As die tydsbepalingsproses voltooi is, sal die kode elke 5 sekondes die huidige tyd op die DS3231 druk. U kan bevestig dat die tyd korrek ingestel is.

As u na ongeveer 20's geen uitset kry nie, druk die reset -knoppie op u arduino en wag weer.

As dit nog steeds nie werk nie, verifieer die skets op die Arduino en/of laai dit weer op. (Belangrik: sluit die poort in die Java -toepassing voordat u dit na die Arduino laai; anders blokkeer dit die reekspoort!) Stel dan die verbinding in die Java -program terug.

(Die Java -program gebruik LocalDateTime om die huidige datum te kry.)

Die tyd is nou vasgestel. Hê pret

Moet u probleme ondervind om die tyd vas te stel, lewer 'n opmerking hieronder en deel u log.txt (in dieselfde gids as die pot) met my. Baie dankie!