NeoPixel Saati: Saniyeler
Coddy'nin Arduino Journey'sinin Projeler bölümünün bir parçası. Ders 21 / 24.
Son proje, sayıları olmayan bir saattir: saat kadranındaki 12 saat gibi, her bir ibresi renkli bir ışık olan 12 NeoPixel'den oluşan bir halka. Piksel 0 üstte, saat 12 yönündedir ve sayılar saat yönünde ilerler. İki düğme saati ayarlayacak.
Önce saniye ibresi. Bir dakika 60 saniyedir ve halkada 12 piksel vardır; bu nedenle ibre her 5 saniyede bir piksel ilerler.
seconds % 60, saatteki saniyeler gibi 0'dan 59'a kadar sayar ve sonra yeniden 0'dan başlar. Tam sayı bölmesiyle 0'dan 59'a kadar olan değerler 0'dan 11'e dönüştürülür:
unsigned long seconds = millis() / 1000;
int secondPixel = (seconds % 60) / 5;loop()'un her geçişinde halkayı baştan çizin: ring.clear(), ibrenin pikselini ayarlayın, ring.show(). Temizlemeden eski konumlar yanık kalır ve halka dolar. Saniyede on kez yeniden çizmek yeterlidir; bu nedenle başlangıç kodu delay(100) ile biter.
Görev
OrtaHalka 6 numaralı pine bağlı. Saniye ibresini çiz:
- güç verildiğinden beri geçen saniye sayısını
millis() / 1000ile hesapla - ibrenin pikseli
(seconds % 60) / 5 - halkayı temizle, o pikseli
ring.Color(0, 0, 255)ile mavi yak ve göster
delay(100) değerini koru. Çalıştır'a bas ve ibrenin dönmesini izle, ardından Kontrol Et'e bas.
Kendin dene
#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() {
// Saniye ibresinin nerede olduğunu hesapla ve onu mavi renkte çiz
delay(100); // Saniyede on kez yeniden çiz
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Projeler bölümündeki tüm dersler
6NeoPixel Saati
NeoPixel Saati: SaniyelerNeoPixel Saati: DakikalarNeoPixel Saati: Akrep ve Yelkovanı BirleştirmeNeoPixel Saati: Saati AyarlamaKendi başına pratik yap: Arduino playground