Geciktirme için Arduino Zamanlayıcı Kitaplığı

Geciktirme Icin Arduino Zamanlayici Kitapligi



Zamanlayıcı, zamana duyarlı görevlerin üstesinden gelmek için Arduino'nun temel bileşenlerinden biridir. Arduino'nun zamanlayıcıları, küçük zaman aralıklarında yürütmeyi geciktirmek veya duraklatmak için genellikle delay() işlevini kullanır. Ancak çoklu görevler için geciktirme işlevleri için özel bir kitaplık gerekir.

Bu kılavuz, kısa açıklamalarla geciktirmek için çeşitli Arduino zamanlayıcı kitaplıklarını kapsayacaktır. Bundan önce Arduino delay() fonksiyonunun sınırlamasını anlayalım.







Gecikme sınırlamaları()

Farklı görevleri aynı anda gerçekleştirmek istiyorsanız, bir engelleme işlevi olduğundan, delay() işlevi kullanılamaz. Bunun anlamı, bir görevin yürütülmesini duraklatmak için delay() işlevi kullanıldığında, bu arada başka bir işlevin yürütülmesine izin vermediğidir. Bu nedenle, birisi bir programı çalıştırırken diğerini durdurmak istediğinde, delay() kullanılamaz.



O zaman ne yapmalı?



İşlev Çağrılarını Geciktirmek için Arduino Zamanlayıcı Kitaplığı

Bu sorunu çözmek için, gecikme gerçekleştirmek için tasarlanmış özel kütüphaneler kullanmalısınız. Bu kitaplıklar, programdaki bazı işlevleri bir süre duraklatmanıza ve bu sırada diğerlerini çalıştırmanıza olanak tanır. Bu kitaplıklar, çoklu görevi engellemeyen zamanlayıcı kitaplıklarıdır. Gerektiğinde ve gerektiğinde işlevleri çağırmak için kullanılabilirler.





Arduino Koduna Arduino Zamanlayıcı Kitaplığı Nasıl Dahil Edilir

Zamanlayıcı kitaplığını dahil etmek için önce zip dosyasını şu adrese giderek eklemeliyiz: Kitaplığı Dahil Et Arduino IDE'deki bölüm. Arduino kütüphanelerini eklemenin ayrıntılı bir açıklaması için, adresindeki makaleyi okuyabilirsiniz. Arduino IDE'de Kütüphane nasıl kurulur .

Aşama 1

İlk olarak, Arduino zamanlayıcı kitaplığını indirmeniz gerekecek.



Adım 2

Zamanlayıcı kitaplığını indirdikten sonra, Arduino IDE'yi açın ve Sketch'e, ardından Include Library'ye gidin ve ardından Add ZIP Library'ye tıklayın.


Arduino gösterecek 'Kütüphane Yüklendi' çıktıda.

Aşama 3

ZIP kitaplığını Arduino IDE'ye ekledikten sonra, Arduino IDE'deki Kitaplığı Dahil Et seçenekleri açılır listesinde görünecektir. buradan dahil Zamanlayıcı kütüphane.


eklediğinizde 'Zamanlayıcı' kitaplığı, önişlemci direktifi çizimde görünecektir. Aksi takdirde, kitaplığı manuel olarak dahil etmek için 4. adımı uygulayabilirsiniz.

# katmak < Zamanlayıcı.h >

Adım 4

Arduino Timer Library'yi Arduino koduna dahil etmek için, #katmak yönergesi ile birlikte (.H) extension timer kitaplık adını girin ve ardından aşağıda gösterildiği gibi bir zamanlayıcı oluşturun.

#include
otomatik zamanlayıcı = timer_create_default ( ) ;


Bir zamanlayıcı oluşturduktan sonra, bu zamanlayıcıyı çağıracak bir işlev yapmanız gerekir. Zamanlayıcıyı belirli bir anda, kısa bir gecikmeden sonra veya belirli bir zaman aralığından sonra aramanız gerekebilir. Bu tür durumlarda zamanlayıcı çağırma örnekleri aşağıda verilmiştir.

Kısa Bir Gecikme İstiyorsanız

timer.in ( gecikme, function_to_call ) ;
timer.in ( gecikme, işlev_to_call, bağımsız değişken ) ; // veya isteğe bağlı bir bağımsız değişkenle için işlev_to_call


Bu durumda, kullanabiliriz zamanlayıcı.in() belirli bir işlevi çağırmadan önce bir gecikme başlatmak için işlev. Delay parametresi, kodu çalıştırmadan önce beklemek istediğimiz süreyi milisaniye cinsinden temsil eder.

Belirtilen gecikmeden sonra, işlev_to_call kullanılacak. Çağrı sırasında işleve iletilecek bir bağımsız değişken de tanımlanabilir.

Zamanlayıcıyı Belirli Bir Zamanda Aramak İstiyorsanız

Bu işlev, belirli bir zamanda belirli bir işlevi yürütmek için bir zamanlayıcı kurar. time parametresi, fonksiyonun çağrılacağı zamanı belirtir. Belirli bir zaman damgası veya milisaniye cinsinden bir gecikme değeri olabilir. bu işlev_to_call zamanlayıcının sona ermesinden sonra yürütülecek işlevin parametresidir.

timer.at ( zaman , işlev_to_call ) ;
timer.at ( zaman , işlev_to_call, bağımsız değişken ) ; // tartışma ile


timer.at(zaman, işlev_to_call, bağımsız değişken) işlev, çağrılan işleve bir argüman iletebilir. Argüman parametresi, işlevde iletilecek olan değer olacaktır.

Belirli Bir Zaman Aralığından Sonra Zamanlayıcıyı Aramak İstiyorsanız

Bu durumda, belirli bir zaman aralığından sonra bir işlevi tekrar tekrar çağırmak için timer.every() işlevini kullanabilirsiniz. Aralık parametresi, yürütülebilir zaman aralıkları arasındaki süreyi milisaniye cinsinden gösterir.

İstenen aralığı belirtin ve işlev_to_call bu aralıktan sonra tekrar tekrar kullanılacaktır. Önceki durumlarda olduğu gibi, çağrıldığında işleve iletilecek isteğe bağlı bir argüman ekleyebilirsiniz.

zamanlayıcı.her ( aralık, işlev_to_call ) ;
zamanlayıcı.her ( aralık, işlev_to_call, bağımsız değişken ) ; // Aralığınızı buraya yazın


İşlev çağrılarını geciktirmek için bir zamanlayıcı kitaplığı kullanmanın bu yöntemi hakkında daha fazla ayrıntıyı bağlantı aracılığıyla öğrenebilirsiniz. Geciktirme Fonksiyonları İçin Arduino Zamanlayıcı Kütüphanesi .

Arduino'da Gecikme için Diğer Bazı Kütüphaneler

Aşağıda verilen bağlantı sizi, işlev çağrılarını geciktirmek için zamanlayıcı kitaplıklarını kurabileceğiniz Arduino'nun zamanlayıcı kitaplıklarına götürecektir.

Zamanlayıcı Kitaplığı, Michael Contreras

İşlev çağrılarını geciktirmek için kendi yarattığı bloke olmayan Arduino zamanlayıcı kitaplığını sağlayan bir yazar da vardır. Bloke etmeden geciktirme fonksiyonlarını gerçekleştirmek için millis() ve micros() gibi Arduino'nun dahili fonksiyonlarını kullanmıştır. Kütüphanesine bir link aşağıda verilmiştir:

Michael Uray Arduino Zamanlayıcı Kitaplığı

Çözüm

Delay () işlevi Arduino'da zaten mevcut olmasına rağmen, aynı anda birden fazla görevi gerçekleştirmek için kullanılamaz. Aynı anda birden fazla görevi yürütmek için, gerektiğinde kullanılabilecek, bloke olmayan zamanlayıcı kütüphaneleri Arduino topluluğu tarafından oluşturulmuştur.