Blokla if / else: ışık sensörüyle (LDR) otomatik gece lambası
"eğer / değilse" bloğu, programın bir koşula göre iki yoldan birini seçmesini sağlar. Bunu görmenin en kolay yolu LDR ile otomatik gece lambası. Devre: LDR'nin bir bacağı 5V'a, diğer bacağı A0'a. A0 ayrıca 10 kΩ direnç ile GND'ye bağlanır, böylece bir gerilim bölücü oluşur. LED 220 Ω direnç üzerinden 13 numaralı pine. Bloklar: 1. Genel değişkenlerde value adında bir tam sayı (int) tanımla. 2. Kurulumda "13 numaralı pini ÇIKIŞ olarak ayarla". 3. Sürekli tekrarla içinde önce "value değişkenine analog oku A0 ata". Bu blok ışığı 0 ile 1023 arasında bir sayıya çevirir. 4. Ardından "eğer value < 50 yap: 13 numaralı pine YÜKSEK yaz, değilse: 13 numaralı pine DÜŞÜK yaz". Oda karanlıkken okunan değer küçülür, 50'nin altına inince LED yanar. Eşik değeri ortamına göre değişir. Bulmak için kod rehberindeki if_else örneğinde olduğu gibi değeri seri porta yazdırabilirsin: odanın aydınlık hâlindeki sayıyı ve LDR'nin üstünü elinle kapattığındaki sayıyı not et, eşiği ikisinin arasına koy. Aynı blokların Arduino kodu aşağıda.
1int value; // genel değişken: ışık değeri (0-1023)
2
3void setup() {
4 pinMode(13, OUTPUT); // 13 numaralı pini ÇIKIŞ olarak ayarla
5}
6
7void loop() {
8 value = analogRead(A0); // value değişkenine analog oku A0 ata
9 if (value < 50) { // eğer value < 50
10 digitalWrite(13, HIGH); // karanlık: LED yanar
11 } else { // değilse
12 digitalWrite(13, LOW); // aydınlık: LED söner
13 }
14}
1 yorum
Yorum yapmak için giriş yap
Projenin blokları uygulamada: https://bluegrays.com/p/12 Kod rehberinde de if_else kartı var; orada aynı karşılaştırmayı seri port çıktısıyla, her örneği bloklarla da görebilirsin. Kendin dene: "değilse eğer" ekleyip üç durum yap. Çok karanlıkta LED yansın, alacakaranlıkta yanıp sönsün, aydınlıkta sönsün. Sen eşiği kaç yaptın? Odanın ışığına göre herkesin sayısı farklı çıkıyor, buraya yazarsan karşılaştıralım.