Relógio NeoPixel: Minutos
Parte da seção Projetos do Journey de Arduino da Coddy. Lição 22 de 24.
O Uno não sabe que horas são: millis() só conta a partir do momento em que é ligado. Então, o sketch inicia o relógio com um horário definido nele e soma os segundos desde que foi ligado. A última etapa adiciona botões para ajustá-lo.
Mantenha o horário como um único número: os segundos desde a meia-noite. 10:24:50 são 10 horas, 24 minutos e 50 segundos:
const unsigned long startTime = 10 * 3600UL + 24 * 60 + 50;
unsigned long now = startTime + millis() / 1000;O UL após 3600 faz com que a soma seja um unsigned long. Sem ele, a placa multiplica usando int, que vai até 32767, e 10 vezes 3600 não cabe.
Os segundos e os minutos são restos, então cada um recomeça em 0 quando chega a 60:
int seconds = now % 60;
int minutes = (now / 60) % 60;O ponteiro dos minutos também se move um pixel a cada 5 minutos, minutes / 5, e é desenhado em verde.
Desafio
MédioAdicione o ponteiro dos minutos:
- o relógio começa às 10:24:50:
startTimeem segundos desde a meia-noite nowéstartTimemais os segundos desde que o dispositivo foi ligado- ponteiro dos segundos:
(now % 60) / 5, azul - ponteiro dos minutos:
((now / 60) % 60) / 5, verdering.Color(0, 255, 0)
Pressione Run: às 10:25 o ponteiro dos minutos avança. Depois, Check.
Experimente você mesmo
#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; // segundos desde que foi ligado
int secondPixel = (seconds % 60) / 5; // um pixel a cada 5 segundos
ring.clear();
ring.setPixelColor(secondPixel, ring.Color(0, 0, 255));
ring.show();
delay(100); // redesenha dez vezes por segundo
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Projetos
3Sensor de Estacionamento
Sensor de Estacionamento: DistânciaSensor de Estacionamento: LuzesSensor de Estacionamento: BipesSensor de Estacionamento: Visor6Relógio NeoPixel
Relógio NeoPixel: SegundosRelógio NeoPixel: MinutosRelógio NeoPixel: Combinando os ponteirosRelógio NeoPixel: Ajustar a horaPratique por conta própria: Playground de Arduino