Hoe de huidige tijd en datum in Arduino te krijgen zonder externe bron?

Ik “werk aan een project met Arduino Uno en SD-kaartschild. Ik” zou graag elke dag een variabele op een specifiek tijdstip op de SD-kaart opslaan . Hoe kan ik de huidige tijd in Arduino krijgen? Alle hulp zou merkbaar zijn.

OPMERKING: Arduino is NIET aangesloten op pc.

Antwoord

Een nauwkeurig genoeg is om de functie millis() te gebruiken. Het retourneert de waarde in milliseconden sinds de start van de Arduino. Als je de Arduino op een bepaald tijdstip start, kun je de exacte datum en tijd berekenen.


Waarom geen externe module ?? Een RTC zoals de DS3231 kost slechts 5 $ en bevat een temperatuursensor voor jou!

Opmerkingen

Antwoord

zonder externe bron

U kunt “t. De Arduino Uno heeft geen real-time klok. Een real-time klok is zoiets als $ 1 van eBay. Bijvoorbeeld de DS1307 of DS3231. Ik vond 5 x borden die voorgemonteerd waren met de klokchip, inclusief batterijhouder, kristal, chip en printplaat voor $ 4,20 op eBay. Batterijen niet meegeleverd.

Sluit dat aan op de I2C-pinnen (A4 en A5), stel de tijd eenmaal in met een geschikte schets en dan ben je klaar om te rollen.


Als je gewoon iets wilt doen elke 24 uur (niet per se om 9:36 uur), dan kun je millis gebruiken om te zoeken wanneer het juiste aantal milliseconden is verstreken. Het resultaat van millis wordt ongeveer elke 49 dagen ingepakt, maar hoeft u zich daar geen zorgen over te maken .

Merk op dat dit U kunt de datum en tijd niet registreren, maar u kunt wel iets loggen (bijv. de temperatuur), hoeft u alleen maar te weten wanneer u begon met loggen.

Antwoord

Een mogelijkheid om te overwegen is om gebruik een 24-uurs plug-in timer die de stroom naar de Uno regelt.

D.w.z. iets dat er zo uitziet:

voer hier een afbeeldingsbeschrijving in

Het circuit zou zijn: stopcontact -> Timer -> USB-oplader -> Arduino

Je zou de timer kunnen instellen om de stroom naar de Uno bijvoorbeeld om 23:30 uur uit te schakelen en weer aan te zetten middernacht.

Onder een dergelijke instelling is millis() de tijd sinds de laatste Uno-start, wat gewoonlijk de tijd is sinds de vorige middernacht.

Bij het debuggen kunt u de tijd-at-Uno-start op een andere tijd dan middernacht instellen.

De kanttekeningen zijn:

  • Uw situatie laat dagelijks 30 minuten ( of wat de stappen van de timer ook zijn) uitvaltijd
  • Kan timerverschuivingen tolereren als gevolg van stroomuitval

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *