Horloge NeoPixel : les minutes
Fait partie de la section Projets du Journey Arduino de Coddy. Leçon 22 sur 24.
L’Uno ne connaît pas l’heure de la journée : millis() ne compte que depuis la mise sous tension. Le sketch démarre donc l’horloge à une heure qui y est inscrite et ajoute les secondes écoulées depuis la mise sous tension. La dernière étape ajoute des boutons pour la régler.
Gardez l’heure sous la forme d’un seul nombre : le nombre de secondes écoulées depuis minuit. 10:24:50, c’est 10 heures, 24 minutes et 50 secondes :
const unsigned long startTime = 10 * 3600UL + 24 * 60 + 50;
unsigned long now = startTime + millis() / 1000;Le UL après 3600 fait de la somme un unsigned long. Sans lui, la carte effectue la multiplication en int, qui s’arrête à 32767, et 10 fois 3600 ne tient pas dans cette plage.
Les secondes et les minutes sont des restes : elles repartent donc chacune de 0 lorsqu’elles atteignent 60 :
int seconds = now % 60;
int minutes = (now / 60) % 60;L’aiguille des minutes avance également d’un pixel toutes les 5 minutes, minutes / 5, et est dessinée en vert.
Défi
MoyenAjoute l’aiguille des minutes :
- l’horloge démarre à 10:24:50 :
startTimeen secondes depuis minuit nowcorrespond àstartTimeplus le nombre de secondes écoulées depuis la mise sous tension- aiguille des secondes :
(now % 60) / 5, bleue - aiguille des minutes :
((now / 60) % 60) / 5, vertering.Color(0, 255, 0)
Appuie sur Run : à 10:25, l’aiguille des minutes avance d’un cran. Puis clique sur Check.
Essayez vous-même
#include <Adafruit_NeoPixel.h>
const int ringPin = 6;
const int pixelCount = 12;
Adafruit_NeoPixel ring(pixelCount, ringPin, NEO_GRB + NEO_KHZ800);
void setup() {
ring.begin();
}
void loop() {
unsigned long seconds = millis() / 1000; // secondes depuis la mise sous tension
int secondPixel = (seconds % 60) / 5; // un pixel toutes les 5 secondes
ring.clear();
ring.setPixelColor(secondPixel, ring.Color(0, 0, 255));
ring.show();
delay(100); // redessiner dix fois par seconde
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Projets
3Capteur de stationnement
Capteur de stationnement : DistanceCapteur de stationnement : LumièresCapteur de stationnement : BipsCapteur de stationnement : Affichage6Horloge NeoPixel
Horloge NeoPixel : les secondesHorloge NeoPixel : les minutesHorloge NeoPixel : mélanger les aiguillesHorloge NeoPixel : régler l’heureEntraînez-vous par vous-même : Playground Arduino