Arkadaşlar merhaba,
Arduino programlarımızda DELAY komutunu bolca kullanıyoruz. Hatta bu delay bir loop, while içine ise Arduino bol bol kullanıyor.
Fakat delay süresi uzunsa ve programın adımlarını Serial monitor den izliyorsak sistem takldı mı takılmadı mı öylece bekliyoruz delay’in bitmesini.
Ben bu durumdan rahatsız oldum ve aşağıdaki script’i yazdım, kullanabilirsiniz:
void Geciktir(unsigned long parm) {
unsigned long previousMillis = millis();
long xx = 0;
Serial.print(“Bekliyor.. “);
while (millis() – previousMillis < parm) {
xx++;
if ( xx % 10000 == 0) {
Serial.print(char(21));
}
}
Serial.println(“”);
}
Kullanımı: Geciktir(4000); gibi.
Teşekkürler hocam, ben olsam biraz daha “smart delay” konusunu araştırırdım. Bu yazdığınız kodda yine sistem bloke olacaktır.
Tam 30 gündür test için çalışıyor, henüz kitlenmedi.
UIPETHERNET testi yapıp bir SQL Veri tabanına 8000milisaniyede bir Arduino yu client olarak kullanıp veri basıyorum.
Gecikmeyi bu kod ile yapıyorum.
Hiç bir sorun olmadı.