Menu
CoddyTech

Işık Ölçer

Coddy'nin Arduino Journey'sinin Girişler bölümünün bir parçası. Ders 22 / 22.

Bu ders, bölümü bir araya getiriyor: ışık seviyesini yüzde olarak yazdıran ve telefondaki sinyal çubukları gibi üç LED'den oluşan bir çubukta gösteren bir ışık ölçer.

İşi, her biri tek bir görevi olan işlevlere böl; böylece loop() bir açıklama gibi okunur:

void loop() {
  int percent = lightPercent();
  showLevel(percent);
  // yüzdeyi yazdır
}

lightPercent(), ışık modülünün AO değerini okur ve 0 (karanlık) ile 100 (aydınlık) arasında bir değer döndürür. Işık arttıkça AO azalır, bu yüzden eşlemeyi ters yönde yap: map(reading, 0, 1023, 100, 0), 1023'ü 0'a ve 0'ı 100'e dönüştürür.

showLevel(int percent), çubuktaki her LED için kendi eşiğini belirler: ilki 25'in üzerinde, ikincisi 50'nin üzerinde, üçüncüsü 75'in üzerinde yanar. Her biri için kendi else bloğu gerekir; böylece ışık azaldığında çubuk yeniden kısalabilir.

challenge icon

Görev

Orta

Light modülünün AO çıkışı A0'a, çubuğun LED'leri ise 10, 11 ve 12 numaralı pinlere bağlıdır:

  • int lightPercent(): karanlıkta 0, parlak ışıkta 100
  • void showLevel(int percent): 10 numaralı pin 25'in üzerinde, 11 numaralı pin 50'nin üzerinde, 12 numaralı pin 75'in üzerinde yanar
  • loop() içinde her ikisini de çağırın, yüzdeyi yazdırın ve 200 ms bekleyin

Run'a basın, ışık kaydırıcısını hareket ettirin, ardından Check'e basın.

Kendin dene

const int lowPin = 10;
const int midPin = 11;
const int highPin = 12;

// int lightPercent() fonksiyonunu buraya yaz

// void showLevel(int percent) fonksiyonunu buraya yaz

void setup() {
  pinMode(lowPin, OUTPUT);
  pinMode(midPin, OUTPUT);
  pinMode(highPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // ışık düzeyini yüzde olarak oku, çubukta göster, yazdır, 200 ms bekle
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Girişler bölümündeki tüm dersler

Kendi başına pratik yap: Arduino playground