Je travaille sur un projet utilisant Arduino Uno et un bouclier de carte SD. Jaimerais stocker une variable à une heure précise chaque jour sur la carte SD . Comment puis-je obtenir lheure actuelle dans Arduino? Toute aide serait appréciable.
REMARQUE: Arduino nest PAS connecté au PC.
Réponse
Un Une manière suffisamment précise consiste à utiliser la fonction millis()
. Il renverra la valeur en millisecondes depuis le démarrage de lArduino. Si vous démarrez lArduino à une heure précise, vous pourrez calculer la date et lheure exactes.
Pourquoi pas un module externe ?? Un RTC comme le DS3231 en seulement 5 $ et il comprend un capteur de température pour vous!
Commentaires
- Attention, la fonction millis () va après environ 50 jours.
- @AndreCourchesne: arduino.stackexchange.com/questions/12587/…
- Et si ça senroule? Un programme dhorloge correctement écrit ne se souciera pas de cela.
Réponse
sans source externe
Vous ne pouvez pas « t. LArduino Uno na pas dhorloge en temps réel. Une horloge en temps réel est seulement quelque chose comme 1 $ deBay. Par exemple, le DS1307 ou le DS3231. Jai trouvé 5 x cartes pré-assemblées avec la puce dhorloge, y compris le support de batterie, le cristal, la puce et le circuit imprimé pour 4,20 $ US sur eBay. Piles non fournies.
Accrochez-le aux broches I2C (A4 et A5), réglez lheure une fois à laide dun croquis approprié, puis vous êtes prêt à rouler.
Si vous voulez juste faire quelque chose toutes les 24 heures (pas nécessairement à 9h36), vous pouvez simplement utiliser millis
pour trouver quand le nombre approprié de millisecondes sest écoulé. Le résultat de millis
sera bouclé tous les 49 jours environ mais vous navez pas à vous en soucier .
Notez que cela Vous ne pourrez pas enregistrer la date et l’heure, mais vous pouvez enregistrer quelque chose (par exemple. la température) tous les jours, il vous suffirait de savoir quand vous avez commencé la journalisation.
Réponse
Une possibilité à considérer est de utilisez un minuteur de plug-in de 24 heures qui contrôle lalimentation de lUno.
Cest-à-dire quelque chose qui ressemble à ceci:
Le circuit serait: Prise secteur -> Minuterie -> Chargeur USB -> Arduino
Vous pouvez régler la minuterie pour éteindre le Uno à 23h30, par exemple, puis le rallumer minuit.
Dans une telle configuration, millis()
sera lheure depuis le dernier démarrage de Uno, qui sera généralement lheure depuis minuit précédente.
Lors du débogage, vous pouvez définir lheure de début de Uno sur une autre valeur que minuit.
Les mises en garde sont les suivantes:
- Votre situation permet une durée quotidienne de 30 minutes ( ou quels que soient les incréments de minuterie) temps darrêt
- Peut tolérer les décalages de minuterie dus à des pannes de courant