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.
Görev
OrtaLight 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 100void showLevel(int percent): 10 numaralı pin 25'in üzerinde, 11 numaralı pin 50'nin üzerinde, 12 numaralı pin 75'in üzerinde yanarloop()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
}
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