Arama butonu
Bu konudaki kullanıcılar: 1 misafir
18
Cevap
1193
Tıklama
0
Öne Çıkarma
Bir programda bir kaç 'delay' kullanmak ? [ÇÖZÜLDÜ]
Y
9 yıl
Yarbay
Konu Sahibi

selam arkadaşlar.

Aynı programda bir kaç delay kullanmam gerekiyor ama her delay programın çalışmasını etkileyeceğinden bunu nasıl yapabilirim ?

mesafe sensörü için ayrı bir delay, bunların lcd de yazdırılması ayrı bir delay bunların dışınca program bu şekilde çalışırken lcd de 5 farklı sembolü 500ms arayla ekrana yazdırmak gibi ?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi yucelnet -- 2 Mart 2016; 8:21:28 >

B
9 yıl
Yüzbaşı

delay kullanmak o süre boyunca programı bloke eder. Senin işine yaramaz. Sen bunun yerine millis() fonksiyonunu kullanabilirsin. Sistemi bloke etmeden zaman bazlı işlemler yapabilirsin. Aşağıda bir örnek var. Bu sayede bir nebze multitasking yapabiliyorsun.

https://learn.adafruit.com/multi-tasking-the-arduino-part-1/using-millis-for-timing



Y
9 yıl
Yarbay
Konu Sahibi

eğer farklı zaman aralıklarında farklı işler yaptırmak isityorsak;
"modulo" kullanmalıyız. yani modüler aritmetik.
https://www.arduino.cc/en/Reference/modulo

int sayac;
delay(1);
sayac=sayac+1
if (sayac % 100==0) {digitalWrite(6,HIGH);} //sayac değerinin mod 100 e göre kalanının 0 vermesi dijital 6 pinini aktif yap.
if (sayac % 200==0) {digitalWrite(7,HIGH);} //sayac değerinin mod 200 e göre kalanının 0 vermesi dijital 7 pinini aktif yap.
if (sayac % 1000==0) {sayac=0;} // sayac her 1000ms de bir başa dönsün.





< Bu mesaj bu kişi tarafından değiştirildi yucelnet -- 2 Mart 2016; 10:02:16 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.