Menu
CoddyTech

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.

challenge icon

Görev

Orta

Işı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);
}
quiz iconKendini test et

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

Kendi başına pratik yap: Arduino playground