Menu
CoddyTech

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.

challenge icon

Sfida

Medio

Aggiungi la lancetta dei minuti:

  • l’orologio parte alle 10:24:50: startTime in secondi dalla mezzanotte
  • now è startTime più i secondi trascorsi dall’accensione
  • lancetta dei secondi: (now % 60) / 5, blu
  • lancetta dei minuti: ((now / 60) % 60) / 5, verde ring.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
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Progetti

Esercitati da solo: Playground Arduino