Työskentelen projektissa, jossa käytetään Arduino Unoa ja SD-korttisuojaa. Haluan tallentaa muuttujan tiettyyn aikaan päivittäin SD-kortille . Kuinka saan nykyisen ajan Arduinossa? Kaikki apu olisi tuntuvaa.
HUOMAUTUS: Arduino EI OLE kytketty tietokoneeseen.
Vastaa
An riittävän tarkka tapa on käyttää millis()
-toimintoa. Se palauttaa arvon millisekunteina Arduinon alusta lähtien. Jos käynnistät Arduinon tiettynä ajankohtana, pystyt laskemaan tarkan päivämäärän ja kellonajan. RTC, kuten DS3231 vain 5 dollaria, ja se sisältää sinulle lämpötila-anturin!
Kommentit
- Varo millis () -toimintoa kääri noin 50 päivän kuluttua.
- @AndreCourchesne: arduino.stackexchange.com/questions/12587/…
- Entä jos se kiertyy? Oikein kirjoitettu kello-ohjelma ei välitä siitä.
Vastaa
ilman ulkoista lähdettä
Voit ”t”. Arduino Unolla ei ole reaaliaikaista kelloa. Reaaliaikainen kello on vain jotain 1 dollari eBaysta. Esimerkiksi DS1307 tai DS3231. Löysin 5 x levyä, jotka on esiasennettu kellosirulla, mukaan lukien paristopidike, kristalli, siru ja piirilevy, 4,2 dollaria eBayssa. Paristoja ei toimiteta.
Kiinnitä I2C-nastoihin (A4 ja A5) asti, aseta aika kerran sopivalla luonnoksella, ja olet sitten valmis rullalle.
Jos haluat vain tehdä jotain 24 tunnin välein (ei välttämättä klo 9:36), voit vain käyttää millis
-toimintoa löytääksesi, kun sopiva määrä millisekunteja on kulunut. Tulos kohteesta millis
kääri karkeasti 49 päivän välein, mutta sinun ei tarvitse huolehtia siitä .
Huomaa, että En anna sinun kirjata päivämäärää ja aikaa, mutta voit kirjata jotain (esim. lämpötila), sinun on vain tiedettävä, kun aloitit kirjautumisen.
Vastaa
Yksi mahdollisuus harkita on käytä 24 tunnin laajennuksen ajastinta , joka ohjaa Unon virtaa.
Eli. jotain, joka näyttää tältä:
Piiri olisi: Pistorasia -> Ajastin -> USB-laturi -> Arduino
Voit asettaa ajastimen sammuttamaan Unon virran sanottuna kello 23.30 ja käynnistämään uudelleen. keskiyö.
Tällaisessa asennuksessa millis()
on aika viimeisestä Uno-käynnistyksestä, joka on yleensä aika edellisestä keskiyöstä.
Virheenkorjauksessa voit asettaa Uno-start-ajan muuksi kuin keskiyöksi.
Varoitukset ovat:
- Tilanne sallii päivittäisen 30 minuutin ( tai mikä tahansa ajastimen lisäys on) seisokkeja
- Voi sietää ajastimen siirtymiä sähkökatkosten vuoksi