Horloge NeoPixel : les secondes
Fait partie de la section Projets du Journey Arduino de Coddy. Leçon 21 sur 24.
Le dernier projet est une horloge sans chiffres : un anneau de 12 NeoPixels, comme les 12 heures d’un cadran, où chaque aiguille est une lumière colorée. Le pixel 0 se trouve en haut, à 12 heures, et les nombres augmentent dans le sens des aiguilles d’une montre. Deux boutons permettront de régler l’heure.
Commençons par l’aiguille des secondes. Une minute compte 60 secondes et l’anneau comporte 12 pixels : l’aiguille avance donc d’un pixel toutes les 5 secondes.
seconds % 60 compte de 0 à 59, puis recommence à 0, comme les secondes d’une horloge. La division entière par 5 transforme les valeurs de 0 à 59 en valeurs de 0 à 11 :
unsigned long seconds = millis() / 1000;
int secondPixel = (seconds % 60) / 5;À chaque passage dans loop(), dessine l’anneau depuis le début : ring.clear(), règle le pixel de l’aiguille, puis ring.show(). Sans effacement, les anciennes positions restent allumées et l’anneau se remplit. Dix redessins par seconde suffisent largement, alors le programme de départ se termine par delay(100).
Défi
MoyenL’anneau est sur la broche 6. Dessine l’aiguille des secondes :
- calcule le nombre de secondes écoulées depuis la mise sous tension avec
millis() / 1000 - le pixel de l’aiguille est
(seconds % 60) / 5 - efface l’anneau, allume ce pixel en bleu avec
ring.Color(0, 0, 255)et affiche-le
Conserve le delay(100). Appuie sur Run et regarde l’aiguille faire le tour, puis appuie 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() {
// déterminer où se trouve l’aiguille des secondes et la dessiner en bleu
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