Zegar NeoPixel: sekundy
Część sekcji Projekty ścieżki Arduino w Coddy. Lekcja 21 z 24.
Ostatni projekt to zegar bez cyfr: pierścień z 12 diodami NeoPixel, jak 12 godzin na tarczy zegara, gdzie każda wskazówka jest kolorowym światłem. Piksel 0 znajduje się na górze, na godzinie 12, a kolejne numery biegną zgodnie z ruchem wskazówek zegara. Dwa przyciski będą służyć do ustawiania godziny.
Najpierw wskazówka sekundowa. Minuta ma 60 sekund, a pierścień 12 pikseli, więc wskazówka przesuwa się o jeden piksel co 5 sekund.
seconds % 60 zlicza od 0 do 59, a potem zaczyna od 0, tak jak sekundy na zegarze. Dzielenie całkowite przez 5 zamienia zakres od 0 do 59 na zakres od 0 do 11:
unsigned long seconds = millis() / 1000;
int secondPixel = (seconds % 60) / 5;Przy każdym przebiegu loop() narysuj pierścień od nowa: ring.clear(), ustaw piksel wskazówki, ring.show(). Bez czyszczenia poprzednie pozycje pozostają podświetlone i pierścień się zapełnia. Dziesięć odświeżeń na sekundę w zupełności wystarczy, więc kod startowy kończy się na delay(100).
Wyzwanie
ŚredniPierścień jest podłączony do pinu 6. Narysuj wskazówkę sekundową:
- oblicz liczbę sekund od włączenia zasilania za pomocą
millis() / 1000 - piksel wskazówki to
(seconds % 60) / 5 - wyczyść pierścień, zaświeć ten piksel na niebiesko za pomocą
ring.Color(0, 0, 255)i wyświetl go
Zostaw delay(100). Naciśnij Run i obserwuj, jak wskazówka się obraca, a następnie naciśnij Check.
Spróbuj swoich sił
#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() {
// ustal położenie wskazówki sekundowej i narysuj ją na niebiesko
delay(100); // odświeżaj dziesięć razy na sekundę
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Projekty
3Czujnik parkowania
Czujnik parkowania: odległośćCzujnik parkowania: światłaCzujnik parkowania: sygnały dźwiękoweCzujnik parkowania: wyświetlacz6Zegar NeoPixel
Zegar NeoPixel: sekundyZegar NeoPixel: minutyZegar NeoPixel: mieszanie wskazówekZegar NeoPixel: ustawianie godzinyPoćwicz samodzielnie: Edytor online Arduino