Jam NeoPixel: Detik
Termasuk bagian Proyek dalam perjalanan Arduino di Coddy. Pelajaran 21 dari 24.
Proyek terakhir adalah jam tanpa angka: cincin berisi 12 NeoPixel, seperti 12 jam pada muka jam, dengan setiap jarum berupa cahaya berwarna. Pixel 0 berada di atas, pada posisi pukul 12, dan angka-angkanya berputar searah jarum jam. Dua tombol akan mengatur waktu.
Pertama, jarum detik. Satu menit memiliki 60 detik dan cincin memiliki 12 pixel, jadi jarum bergerak satu pixel setiap 5 detik.
seconds % 60 menghitung dari 0 hingga 59, lalu mulai lagi dari 0, seperti detik pada jam. Pembagian bilangan bulat dengan 5 mengubah 0 hingga 59 menjadi 0 hingga 11:
unsigned long seconds = millis() / 1000;
int secondPixel = (seconds % 60) / 5;Pada setiap putaran loop(), gambar cincin dari awal: ring.clear(), atur pixel jarum, lalu ring.show(). Tanpa menghapusnya, posisi lama akan tetap menyala dan cincin akan penuh. Sepuluh penggambaran ulang per detik sudah cukup, jadi kode awal diakhiri dengan delay(100).
Tantangan
SedangCincin terhubung ke pin 6. Gambar jarum detik:
- hitung detik sejak daya dinyalakan dengan
millis() / 1000 - piksel jarumnya adalah
(seconds % 60) / 5 - bersihkan cincin, nyalakan piksel itu dengan warna biru menggunakan
ring.Color(0, 0, 255), lalu tampilkan
Pertahankan delay(100). Tekan Jalankan dan amati jarumnya bergerak memutar, lalu tekan Periksa.
Coba sendiri
#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() {
// tentukan posisi jarum detik, lalu gambar dengan warna biru
delay(100); // gambar ulang sepuluh kali per detik
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Proyek
6Jam NeoPixel
Jam NeoPixel: DetikJam NeoPixel: MenitJam NeoPixel: Menggabungkan JarumJam NeoPixel: Atur WaktuLatihan sendiri: Playground Arduino