Işık Seviyesi Çubuğu
Coddy'nin Arduino Journey'sinin Ekranlar ve Sensörler bölümünün bir parçası. Ders 22 / 24.
Halka, bir sayıyı çubuk olarak gösterebilir: sayı ne kadar büyükse o kadar çok piksel yanar. Burada sayı, ışık seviyesidir.
Gece lambası dersinde olduğu gibi, ışık sensörünün A0 üzerindeki okuması ışık arttıkça azalır. Önce tersine çevirin; böylece daha büyük bir sayı daha fazla ışık anlamına gelir:
int light = 1023 - analogRead(A0);
int count = map(light, 0, 1023, 0, 16);Ardından halkayı temizleyin ve 0'dan count eksi 1'e kadar olan pikselleri yakın:
ring.clear();
for (int i = 0; i < count; i++) {
ring.setPixelColor(i, yellow);
}
ring.show();clear() çubuğun kısalmasını sağlar: bu komut olmadan, aydınlıkken yanan pikseller hava karardığında da yanmaya devam eder.
Görev
OrtaIşık sensörü A0'da, halka ise 6 numaralı pinde. Bir ışık çubuğu oluştur:
- daha fazla ışık daha büyük bir sayı verecek şekilde okumayı dönüştür
- 0 ile 16 piksel arasına eşle
- halkayı temizle, 0 numaralı pikselden başlayarak bu sayıda pikseli yak ve göster
Run'a bas, kart üzerindeki ışığı değiştir, ardından Check'e bas.
Kendin dene
#include <Adafruit_NeoPixel.h>
// 16 piksel, veri 6 numaralı pinde
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); // ışık arttıkça azalır
// ışık arttıkça daha fazla pikseli yak
delay(50);
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Ekranlar ve Sensörler bölümündeki tüm dersler
1Yedi Segmentli Göstergeler
Yedi Segmentli GöstergeBaytlardaki Rakam DesenleriGöstergede SaymaSıfıra Geri SayımZar AtıcıKendi başına pratik yap: Arduino playground