Indikator Tingkat Cahaya
Termasuk bagian Layar dan Sensor dalam perjalanan Arduino di Coddy. Pelajaran 22 dari 24.
Cincin dapat menampilkan angka sebagai batang: semakin besar angkanya, semakin banyak piksel yang menyala. Di sini, angkanya adalah tingkat cahaya.
Seperti pada pelajaran lampu malam, pembacaan sensor cahaya di A0 menurun saat cahaya meningkat. Balikkan nilainya terlebih dahulu agar angka yang lebih besar berarti lebih banyak cahaya:
int light = 1023 - analogRead(A0);
int count = map(light, 0, 1023, 0, 16);Lalu kosongkan cincin dan nyalakan piksel dari 0 hingga count dikurangi 1:
ring.clear();
for (int i = 0; i < count; i++) {
ring.setPixelColor(i, yellow);
}
ring.show();clear() membuat batangnya bisa memendek: tanpanya, piksel yang menyala saat terang akan tetap menyala saat gelap.
Tantangan
SedangSensor cahaya terhubung ke A0 dan cincin ke pin 6. Buat bilah cahaya:
- balik nilai pembacaan agar lebih banyak cahaya menghasilkan angka yang lebih besar
- petakan ke rentang 0 hingga 16 piksel
- kosongkan cincin, nyalakan sebanyak itu piksel mulai dari piksel 0, lalu tampilkan
Tekan Jalankan, ubah cahaya pada papan, lalu tekan Periksa.
Coba sendiri
#include <Adafruit_NeoPixel.h>
// 16 piksel, data pada pin 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t yellow = ring.Color(255, 160, 0);
void setup() {
ring.begin();
}
void loop() {
int reading = analogRead(A0); // nilainya turun saat cahaya makin terang
// nyalakan lebih banyak piksel saat cahaya makin terang
delay(50);
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Layar dan Sensor
Latihan sendiri: Playground Arduino