Menu
CoddyTech

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).

challenge icon

Tantangan

Sedang

Cincin 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
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Proyek

Latihan sendiri: Playground Arduino