Elektrik Elektronik Teknolojisi Alan Temrinleri

 
Hogeldiniz Ziyareti. Ltfen giri yapn veya kayt olun.

Kullanc adnz, ifrenizi ve aktif kalma sresini giriniz

Gnderen Konu: 12. Arduino milis komutunun kullanýmý  (Okunma says 37911 defa)

0 ye ve 1 Ziyareti konuyu incelemekte.

06 Mart 2016, 00:54:31
Millis fonksiyonu Arduino'ya enerji verildiði zaman otomatik olarak çalýþmaya baþlar. Fonksiyon içerisinde Arduino'nun çalýþma zamaný milisaniye cinsinden tutulur. Bu fonksiyon çaðrýldýðýnda Arduino'nun kaç milisaniye süresince çalýþtýðý döndürülür. Millis fonksiyonunu yaklaþýk 50 gün çalýþabilmektedir. Bu süreden sonra kendisini sýfýrlar. Arduino'yu 50 gün boyunca hiç kapatmadan çalýþtýrdýðýmýzý düþünelim. 50. günün sonunda millis fonksiyonunu kullandýðýmýzda, fonksiyon sýfýrlanacaðý için Arduino yeniden baþlamýþ gibi deðerler döndürecektir.

Millis fonksiyonunun kullanýmý gecikme için kullanýlan delay fonksiyonunun kullanýmýna benzemektedir fakat delay fonksiyonu kullanýldýðýnda Arduino baþka bir iþlem yapamamaktadýr. Örneðin saniyede bir LED yakýp söndürmek isteyelim. Bu iþlemi aþaðýdaki komutla çok kolay bir þekilde yapabiliriz.

Kod:
Kodlari sadece uyeler gorebilir. Lutfen Uye Olun ya da Giris Yapin.
Yukarýdaki kod denendiðinde gerçekten de saniyede bir yanan ve sönen LED elde etmiþ oluruz. Bu sýrada LED'i yakýp söndürmekten baþka bir iþ yapamayýz, çünkü delay fonksiyonu Arduino'yu bir saniye süresince bekletmektedir. Eðer bir saniyede bir LED yakýp söndürmek ve bu arada da seri monitöre sürekli olarak bir þeyler yazdýrmak isteseydik, burada delay fonksiyonu kullanamazdýk. Ýþte bu noktada millis fonksiyonunun kullanýlmasý gerekmektedir.

Delay fonksiyonu yerine millis fonksiyonunun kullanýlmasý
Aþaðýdaki kodla hem saniyede bir LED yakýp söndürülmüþ hem de sürekli olarak serial monitöre "Arduino burada baþka iþlemler de yapabilir." mesajý yazdýrýlmýþtýr.

Kod:
Kodlari sadece uyeler gorebilir. Lutfen Uye Olun ya da Giris Yapin.
Yukarýdaki kodda setup fonksiyonu içerisinde LED pini çýkýþ yapýlmýþ ve seri haberleþme baþlatýlmýþtýr. Daha sonra millis fonksiyonunun döndürdüðü deðerlerin tutulmasý için unsigned long tipinde deðiþkenler tanýmlanmýþtýr. "yeniZaman" deðiþkeni millis fonksiyonundan dönecek sayýlarý tutmak için kullanýlmýþtýr. "eskiZaman" fonksiyonu ise önceki süreyi tutmaktadýr.

Bin salise yani bir saniyenin geçip geçmediðini kontrol etmek için "yeniZaman" deðiþkeninden "eskiZaman" deðiþkeni çýkartýlmýþtýr. Eðer bu çýkartma iþleminin deðeri 1000 deðerinden fazlaysa bir saniyenin geçtiði anlaþýlmaktadýr. Bu iþlemlerin dýþýnda da ekrana sürekli olarak mesaj yazdýrýlmaktadýr. Böylece delay fonksiyonu yerine millis fonksiyonunun kullanýlýrsa, bu sürede baþka iþlemlerin de yapýlabileceðini görmüþ olduk.

Kaynak: gelecegiyazanlar.turkcell.com.tr
« Son Dzenleme: 30 Eyll 2016, 22:23:43 Gnderen: fatek »


ileti?im: 0542 343 09 15