Orologio NeoPixel: i minuti
Fa parte della sezione Progetti del percorso Arduino di Coddy. Lezione 22 di 24.
Arduino Uno non conosce l'ora del giorno: millis() conta solo a partire dall'accensione. Quindi lo sketch avvia l'orologio a un'ora scritta al suo interno e aggiunge i secondi trascorsi dall'accensione. L'ultimo passaggio aggiunge i pulsanti per impostarla.
Conserva l'ora come un unico numero: i secondi trascorsi dalla mezzanotte. Le 10:24:50 sono 10 ore, 24 minuti e 50 secondi:
const unsigned long startTime = 10 * 3600UL + 24 * 60 + 50;
unsigned long now = startTime + millis() / 1000;UL dopo 3600 rende la somma un unsigned long. Senza di esso, la scheda esegue la moltiplicazione usando int, che si ferma a 32767, e 10 volte 3600 non ci sta.
I secondi e i minuti sono resti, quindi ognuno riparte da 0 quando raggiunge 60:
int seconds = now % 60;
int minutes = (now / 60) % 60;Anche la lancetta dei minuti si sposta di un pixel ogni 5 minuti, minutes / 5, e viene disegnata in verde.
Sfida
MedioAggiungi la lancetta dei minuti:
- l’orologio parte alle 10:24:50:
startTimein secondi dalla mezzanotte nowèstartTimepiù i secondi trascorsi dall’accensione- lancetta dei secondi:
(now % 60) / 5, blu - lancetta dei minuti:
((now / 60) % 60) / 5, verdering.Color(0, 255, 0)
Premi Run: alle 10:25 la lancetta dei minuti avanza di uno scatto. Poi premi Check.
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() {
unsigned long seconds = millis() / 1000; // secondi dall'accensione
int secondPixel = (seconds % 60) / 5; // un pixel ogni 5 secondi
ring.clear();
ring.setPixelColor(secondPixel, ring.Color(0, 0, 255));
ring.show();
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