Arduino zaman fonksiyonları- delay, delayMicroseconds, millis, micros – 1.ölüm – Ders 25 –

Arduino içerisinde süreli işler için; delay, delaymicroseconds, millis ve micros komutları ile kontrol sağlanmaktadır. Bir işlem yaparken arada gecen zamanı yada geçmesini istediğimiz zamanı bu komutlar ile sağlarız. Zaman komutlarıyla bir ledin yanması, bir fanın çalışma süresi, bir sensörün ölçüm aralığı gibi bir çok donanımı kontrol edebiliriz. Delay ve delaymicroseconds arduino içerisinde kullanıldığı satırda algoritmayı bekletirken millis ve micros komutları algoritmayı bekletmeden işlemler yapmaktadır.

delay kullanımı: delay komutu milisaniye cinsinde süre tutan bir fonksiyondur. Arduino içerisinde delay komutu parantez içerisine –delay(süre)– yazdığımız süre kadar algoritmanın o satırda en son yaptığı işi yaparak beklmesidir diyebiliriz. Bir ledi yaktık bir alt satırda delay 2000 dediğimiz zaman o satırda 2 saniye beklenir bu sırada bir üst satırdaki en son işlemde ne yapılmışsa o haliyle bekler, bir alt satırda geçince ledi söndürürüz ve bir alt satırda tekrar delay kullanırız bu süre boyunca yine bir üst satırdaki ledin sönük kalma süresini ayarlamış oluruz.
delay mili saniye cinsinden süre tutar daha hassas zaman aralığı için delayMicrosends komutuyla mikro saniye cinsinden zamanlar kullanılır. delayMicroseconds 16383 mikrosaniye ye kadar değerleri döndürebilir. Bundan daha büyük zaman aralığı için delay kullanmalısınız.
Delay yerine millis ve micros adını verdiğimiz komutları kullanmak algoritmayı durdurmadan yapılacak işler için kullanılır.
Millis: delay kullanıldığı zaman algoritma o satırda delayın içerisine yazdığımız süre kadar bekliyordu millis kullanarak beklemeden başka işlemler yapmak mümkündür. Millis arduinoya enerji verildiği zaman saymaya başlayan ve siz onu kullansanız da kullanmasanızda hep çalışan bir kronometredir. Arkaplanda çalışmaya devam eder ve hiçbir zaman durmaz.
Millis fonksiyonu unsigned long ile tanımlanarak 49 gün boyunca aralıksız çalışabilir bu zaman sonunda arduino resetlenir sıfırlanır.
Micros: bu komut milllis ile aynı mantıkta çalışan zamanı mikrosaniye saniye cinsinden tutan bir komuttur.

Arduino içerisnde aynı anda birden farklı işler yapabilmek için millis komutunu tercih ederiz. Birden fazla ledin farklı aralıklarla yanması, aynı anda sensörden veri okuması yapılması ve aynı anda butonlardan veri alınması buna dahildir.

Daha detaylı öğrenmek için videomu izleyebilirsiniz >>
Videoyu İzlemek İçin Tıklayınız

//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı zaman fonksiyonları kullanımı örnek Kodları

unsigned long simdikizaman;
unsigned long oncekizaman=0;

void setup() {


 
Serial.begin(9600);  

}

void loop() {

simdikizaman=millis();
//oncekizaman=simdikizaman;
  Serial.print("simdiki zaman ilk satır:");
  Serial.println(simdikizaman);
  Serial.print("onceki zaman ilk satır:");
  Serial.println(oncekizaman);
if(simdikizaman-oncekizaman >= 1000)

{
  
         
  oncekizaman=simdikizaman;
  Serial.print("simdiki zaman son satır:");
  Serial.println(simdikizaman);
  Serial.print("onceki zaman son satır:");
  Serial.println(oncekizaman);
  }



}