Orologio NeoPixel: i secondi
Fa parte della sezione Progetti del percorso Arduino di Coddy. Lezione 21 di 24.
L'ultimo progetto è un orologio senza numeri: un anello di 12 NeoPixel, come le 12 ore sul quadrante di un orologio, con ogni lancetta rappresentata da una luce colorata. Il pixel 0 si trova in alto, a ore 12, e i numeri procedono in senso orario. Due pulsanti imposteranno l'ora.
Per prima cosa, la lancetta dei secondi. Un minuto ha 60 secondi e l'anello ha 12 pixel, quindi la lancetta si sposta di un pixel ogni 5 secondi.
seconds % 60 conta da 0 a 59 e poi ricomincia da 0, come i secondi di un orologio. La divisione intera per 5 trasforma i valori da 0 a 59 in valori da 0 a 11:
unsigned long seconds = millis() / 1000;
int secondPixel = (seconds % 60) / 5;A ogni passaggio di loop(), disegna l'anello da zero: ring.clear(), imposta il pixel della lancetta, ring.show(). Senza la cancellazione, le posizioni precedenti restano illuminate e l'anello si riempie. Dieci ridisegni al secondo sono più che sufficienti, quindi il codice iniziale termina con delay(100).
Sfida
MedioL'anello è sul pin 6. Disegna la lancetta dei secondi:
- calcola i secondi trascorsi dall'accensione con
millis() / 1000 - il pixel della lancetta è
(seconds % 60) / 5 - cancella l'anello, illumina quel pixel di blu con
ring.Color(0, 0, 255)e mostralo
Mantieni il delay(100). Premi Esegui e osserva la lancetta girare, poi premi Verifica.
Provalo tu
#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() {
// calcola la posizione della lancetta dei secondi e disegnala in blu
delay(100); // ridisegna dieci volte al secondo
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Progetti
3Sensore di parcheggio
Sensore di parcheggio: distanzaSensore di parcheggio: luciSensore di parcheggio: segnali acusticiSensore di parcheggio: display6Orologio NeoPixel
Orologio NeoPixel: i secondiOrologio NeoPixel: i minutiOrologio NeoPixel: combinare le lancetteOrologio NeoPixel: impostare l'oraEsercitati da solo: Playground Arduino