Hiç öyle bir niyetim yoktu ama ufak açıklama ve eklemeler yapayım derken, bunun aynı konu üzerindeki 4. yazı olduğu düşünülürse, bu yazılar da bir Seri'ye dönecekmiş havası seziliyor sanki ;)
Son yazıda, analogRead() hakkında yazmışım.. Sonrasından devam edelim..
Bizi karşılayan kod:
-Denilmez ve belki iddialı bir laf olur ama- Denilse ki; Şu programlama dilini hatta ve hatta BÜTÜN Programlama dillerini ve programcılık mantığını tek KELİME ile nasıl özetlersin?
Bu sorunun o tek kelimelik cevabı
olurdu sanırım.
Ve başlıktan da anlaşılacağı üzere, herhangi bir programın ya da cihazın, "algılamasından", "sınama-doğrulama yapmasından", "değişikliği fark etmesinden", "belli bir koşulun gerçeklemesi ile belirli şeyler yapmasından" vb.. bahsediyorsak temelde IF'ten bahsediyoruz demektir.
Eğer (şifre yanlışsa) { Ekrana hata mesajı yazdır. Yanlış şifre denemesi yapıldığın dair mail at. }
IF (Steem fiyatı 1 USDT'nin altına düşerse) { 100 Steem Sat. 50 SBD Al. EOS'a %10 aşağıdan AL emri gir. }
IF (evi su basmaya başladıysa) { telefona bildirim gönder. }
Ve gelelim üzerinde çalıştığımız örneğe, Şayet (gün ağardıysa ){ Sokak lambalarını söndür }
Bir önceki bölümden hatırlayacak olursak;
kodu ile A0 pinine bağlamış olduğumuz Işık Sensörü'nden (LDR) gelen değerleri okuyor ve bunu x'e atıyorduk.
Şimdi bi kere daha düşünelim;
Gün ağarınca, sokak lambaları sönsün..
Yani? LDR-Sensör üzerine düşen ışık miktarı artınca.. lambalar sönsün..
Yani LDR'den okuduğumuz değer artında..
Yani x değeri artınca
Algılama dediğimiz şey işte tam burası..
// Aydınlık artınca x de artacağı için, x 200'den büyük ise, süslü parantez içindeki yap
// Programlama dilleri arasında ufak tefek imla farkları olabilir ama genel mantık budur.
// Şöyle ise, şöyle değilse, büyükse, küçükse, büyük eşit değilse vb..
// Dilerseniz iki koşulu birlikte de verebilirsiniz. Ali gelmişse ama Zeynep gelmemişse, şunları yap gibi..
// So..
Ok. Ortam aydınlık ve x 200'den büyük. Şimdi lambaları kapatalım.
// Yukarıda A0 pininden değer okumuştuk.
// Bu kez herhangi bir pine bir değer gönderdiğimiz için READ yerine WRITE kullanıyoruz.
// Geniş bir yelpazede veriler/değerler değil de sadece Aç-Kapa , 1-0 gibi bir değer göndereceğimiz için
// yani Dijital bir işlem yapacağımız için digitalWrite() kullanıyoruz.
// burada Sokak lambalarımızın ana hattını kontrol eden Röle, 3 nolu pine bağlı olduğu için
// 3 nolu pine LOW gönderiyoruz. Yani sokak lambalarımızı kapatıyoruz.
Görsel: hdwallsource, shutterstock