Arduino döngü dışı nasıl kontrol edilir?

Mçınar

Hectopat
Katılım
5 Ağustos 2019
Mesajlar
461
Selam. Program döngü içerisinde iken loop fonskiyonunu da nasıl kontrol ettirebiliriz? Çünkü dögüye girdiği zaman for içinde takılıp kalıyor.

Örneğin;



if((Saat.month == a) && ( yil == b ))
{
for (int i=0; i<7884000; i++)///15
{
bu kısım döngü gerçekleştikçe çalışıyor.
}
}
 
Döngünün içinde
if(saat.Month == a && yil == b)
break;
diyerek bu şart olduğunda döngüyü terk et diyebilirsiniz
Şöyle özetleyebilirim, döngü içerisinde alarm buzzer çalışıyor buzzerı telefondan ben müdahale etmediğim için sürekli çaldığı için hem çalar iken hem loop fonskiyornunu kontrol ettirmek istiyorum.

yağmur sensörü kodlarını döngü içine kopyalama yaparak yapabilirim ama kodları uzatmadan kontrol ettirme imkanı var mıdır ??



int yagmur = 0 ;
loop kısmı{

if((Saat.month == a) && ( yil == b ))
{
for (int i=0; i<7884000; i++)///15
{
//ALARM İŞLEMLERİ BUZZER ÇALIYOR.
bu kısım döngü gerçekleştikçe çalışıyor.

}
// BAŞKA İŞLEMLERİN KONTROLÜ OLMASI İSTENİYOR.

yagmur = analogRead(A0);
İf(yagmur < 100)
{
yağmur sensör kapalı
//LED MAVİ YANIYOR

}
if(yagmur > 100)
{

// yağmur sensör kodları ve yağmur sensör alarmı
//LED KIRMIZI YANIYOR
}

}//loop kısmı tag kapanışı
Döngünün içinde
if(saat.Month == a && yil == b)
break;
diyerek bu şart olduğunda döngüyü terk et diyebilirsiniz
break komutu ile şuanda testleri gerçekleştirdim koşul sağlandığı için alarm çalıyor sürekli istediğim gibi oldu ama döngü her seferinde baştan başlıyor şuan bir sorun gözükmüyor ama inşallah patlak vermez.
 
Son düzenleme:
döngü her seferinde baştan başlamasın istiyorsanız forun içinde kullandığınız intiger değerini dışarıda tanımlayın. ama bu istediğiniz limiti aşınca sıfırlamayı unutmayın
örneğin
[CODE title="dışarıda değişken"]int i = 0;
for(i;i<500;i++)
{
// Yapılacak iş
}[/CODE]
 
döngü her seferinde baştan başlamasın istiyorsanız forun içinde kullandığınız intiger değerini dışarıda tanımlayın. ama bu istediğiniz limiti aşınca sıfırlamayı unutmayın
örneğin
[CODE title="dışarıda değişken"]int i = 0;
for(i;i<500;i++)
{
// Yapılacak iş
}[/CODE]
şöyle bir problem yaşıyorum hocam ilk zamanda break komutu ile döngüyü bitirip loop içerisini kontrol ediyor ama hocam bleutooth dan uygulama üzerinden döngünün içinde iken butona bastığımda değeri almıyor döngünün içerisinde değil ise algılıyr bunu nasıl çözebiliriz. (birde 2 tane alt alta döngü old. döngü dışına çıktığı anı yakalmak zor oluyor.)

int yagmur = 0 ;
loop kısmı{


if((Saat.month == a) && ( yil == b ))
{

for (int i=0; i<7884000; i++)///15
{
//ALARM İŞLEMLERİ BUZZER ÇALIYOR.
bu kısım döngü gerçekleştikçe çalışıyor.
delay(1000);
break;
}
if((Saat.month >= a) && ( yil >= b ))
{

for (int i=0; i<7884000; i++)///15
{
//ALARM İŞLEMLERİ BUZZER ÇALIYOR.
bu kısım döngü gerçekleştikçe çalışıyor.
delay(1000);
break;
}
// BAŞKA İŞLEMLERİN KONTROLÜ OLMASI İSTENİYOR.
//bletooth ile butona basıldığında değer alınıyor işlemler kısmı olsun..


yagmur = analogRead(A0);
İf(yagmur < 100)
{
yağmur sensör kapalı
//LED MAVİ YANIYOR

}
if(yagmur > 100)
{

// yağmur sensör kodları ve yağmur sensör alarmı
//LED KIRMIZI YANIYOR
}

}//loop kısmı tag kapanışı
 
Son düzenleme:
Muhtemelen delay kodu durduğu için input alamıyorsunuz. Nasıl çözülebilir aklıma bir yol gelmedi maalesef bilen varsa yardımcı olur umarım.

Evet hocam delay komutu 1'er saniye beklemeye aldığında bir de üstüne 2 tane dögü old. İçin.
Sıkıntı çıkarıyor.
____________________________________________konu güncel________________________________________
 
Son düzenleme:

Technopat Haberler

Geri
Yukarı