Döngünün Kabuğunu Kırıp Dışarı Çıkmak

in #tr6 years ago (edited)


Önceki konular:
26 Satırda İsrafı Önleme
26 Satır Bahanesiyle, Ucundan Bit-Byte, MBit/s Meali
void loop() ve analogRead açıklaması
“Cihazın Algılaması” Dediğimiz Şey
Evdeki Hesap Döngüye Uymazsa
Tamam Sabah Söndü ama Akşam Olunca da Yansın
Döngü Kilidi


Yukarıdaki yazılara atıf yaparak girişi biraz hızlı geçeyim..
( Google ya da başka bir kaynaktan ilk olarak bu sayfaya geldi iseniz.. öncelikle linklere göz atmanız daha ağlıklı olabilir.
Diğer yandan halihazırda ileri derecede kodlamaya hakimseniz, buradaki yazılar siz kesmeyebilir.)

x değişkenimizin tam sayı olduğunu söylemiş,
LDR ışık sensöründen gelen değerleri A0 analog pininden okumuş ve bunları x'e atamıştık.

Ardından, -tecrübeye dayalı olarak, sabah ve akşam saatlerinde elde edilen gerçek veri değerlerini girmek gerekir- günün ağarmasına denk geldiğini varsaydığımız 200'den büyükse, 3 nolu pine giden elektriği kesmiştik.
// Ki bu pine bir röle ve bu röleye de sokak lambalarının ana hattının bağlı olduğunu kurgulamıştık.

IF (x>200) sınaması ile kısmen amacımıza ulaşsak da Arduino gibi cihazların sürekli Loop/döngü halinde kalıyor olması reel uygulamalarda işleri biraz karıştıracaktı.

ve bu yüzden kendi Sonsuz Döngü Kilidimizi oluşturmuştuk..


Şimdi yapmamız gereken şu:

Sabah olduğunda;
"Lamba Yanık kal" lakaplı :) Sonsuz döngüyü kırıp, "Lamba Sönük kal" lakaplı Sonsuz döngüye geçmek..

ve tahmin edeceğiniz üzere

Akşam olduğunda;
"Lamba Sönük kal" lakaplı Sonsuz döngüyü kırıp, "Lamba Yanık Kal" lakaplı Sonsuz döngüye geçmek..

Bunun için, Lamba hangi durumda olacağını belirlemek için Sonsuz dönme işlemi ESNASINDA, LDR-Işık değerini yeniden biliyor olmamız LAZIM ki, bu sonsuzluk kırılsın.. While dışında bir yerde okuttuğumuz X değeri için kıyaslama yapacak olursak; döngü içine girmiş akışın, dışarıdaki YENİ güneş ışığı değerinden haberi olmadığı için, bir gün elektrikler kesilene kadar kendi döngüsü içinde devam edip gidecektir.

Yakından bakalım ;)


Ve toplu halde uzaktan bakarak, açıklama serimizi bitirmiş olalım..

int x;

void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(3, OUTPUT);}

void loop() {

x = analogRead(A0);
if (x > 200) {
digitalWrite(3, LOW);
while (1) {
x = analogRead(A0);
if (x < 200) { break; }
}
}

x = analogRead(A0);
if (x < 200) {
digitalWrite(3, HIGH);
while (1) {
x = analogRead(A0);
if (x > 200) { break; }
}
}
}

(Steemit üzerinden okuyorsanız, aşağıdaki linkten kodları daha okunur olarak görebilirsiniz)

Posted from my blog with SteemPress :
https://murattatar.xyz/dongunun-kabugunu-kirip-disari-cikmak/

Sort:  

Tasarruf projeniz adım adım işliyor hocam inşallah uygulamaya geçirilir.

inşallah..

olmadı @tahirozgen'i seçeriz, o belki yapar :)

😁 hocam olmamasına ihtimal vermiyorum ama siz yine de beni seçin başka döngülerin de kabuğunu kıralım :)

Tabiiki şimdi @tahirozgen hocam çok vaatlerde bulundu. Vaatlerini yerine getirmesi için oyumu @tahirozgen hocama veriyorum. Bir dahaki seçimlerde de oyum size olsun @murattatar hocam :))

Coin Marketplace

STEEM 0.16
TRX 0.15
JST 0.027
BTC 60063.85
ETH 2313.06
USDT 1.00
SBD 2.46