Arduino Timer Library за забавяне

Arduino Timer Library Za Zabavane



Таймерът е един от ключовите компоненти на Arduino за справяне със чувствителни към времето задачи. Таймерите на Arduino обикновено използват функцията delay(), за да осигурят забавяне или спиране на изпълнението за малки интервали от време. За многозадачност обаче е необходима специална библиотека за функции за забавяне.

Това ръководство ще обхване различни библиотеки с таймери на Arduino за забавяне с кратки описания. Преди това нека разберем ограничението на функцията delay() на Arduino.







Ограничения на закъснението()

Функцията delay() не може да се използва, ако искате да изпълнявате различни задачи едновременно, тъй като е блокираща функция. Това означава, че когато функцията delay() се използва за спиране на изпълнението на задача, тя не позволява междувременно да се изпълни никоя друга функция. Следователно, когато някой иска да спре една програма, докато изпълнява други, delay() не може да се използва.



Тогава какво да правим?



Библиотека с таймер на Arduino за забавяне на извиквания на функции

За да разрешите този проблем, трябва да използвате специални библиотеки, предназначени за извършване на забавяне. Тези библиотеки ви позволяват да поставите на пауза някои от функциите в програмата за известно време и междувременно да стартирате други. Тези библиотеки са библиотеки с таймери, които не блокират многозадачността. Те могат да се използват за извикване на функции, както и когато е необходимо.





Как да включите Arduino Timer Library в Arduino Code

За да включим първо библиотеката с таймери, трябва да добавим zip файла, като отидем на Включете библиотека раздел в Arduino IDE. За подробно описание на добавянето на библиотеки на Arduino можете да прочетете статията как да инсталирате библиотека в Arduino IDE .

Етап 1

Първо ще трябва да изтеглите библиотеката на таймера на Arduino.



Стъпка 2

След като изтеглите библиотеката на таймера, отворете Arduino IDE и отидете на Sketch, след това на Include Library и след това щракнете върху Add ZIP Library.


Arduino ще се покаже „Инсталирана библиотека“ в изхода.

Стъпка 3

След като сте добавили ZIP библиотеката към Arduino IDE, тя ще се появи в падащия списък на опциите за включване на библиотека в Arduino IDE. От тук включете Таймер библиотека.


Когато включите „Таймер“ библиотека, директивата за препроцесор ще се появи на скицата. В противен случай можете да следвате стъпка 4, за да включите ръчно библиотеката.

# включват < Таймер.ч >

Стъпка 4

За да включите Arduino Timer Library в кода на Arduino, трябва да използвате #включи директива заедно с (.h) име на библиотека с таймер за разширение и след това създайте таймер, както е показано по-долу.

#include
автоматичен таймер = timer_create_default ( ) ;


След като създадете таймер, трябва да направите функция за извикване на този таймер. Може да се наложи да извикате таймера в определен момент от време, след кратко забавяне или след интервал от време. Примери за извикване на таймери при такива условия са дадени по-долу.

В случай, че искате кратко забавяне

таймер.в ( забавяне, функция_за_извикване ) ;
таймер.в ( забавяне, функция_за_извикване, аргумент ) ; // или с незадължителен аргумент за функция_за_извикване


В този случай можем да използваме timer.in() функция за въвеждане на забавяне преди извикване на конкретна функция. Параметърът за забавяне представлява времето в милисекунди, което искаме да изчакаме, преди да изпълним кода.

След посоченото забавяне, т функция_за_извикване ще бъде използвано. Аргумент може също да бъде дефиниран за предаване на функцията по време на извикването.

В случай, че искате да извикате таймера в определен час

Тази функция настройва таймер за изпълнение на конкретна функция в определено време. Параметърът time указва времето, в което функцията трябва да бъде извикана. Може да е конкретен времеви печат или стойност на забавяне в милисекунди. The функция_за_извикване е параметърът на функцията, която трябва да се изпълни след изтичане на таймера.

таймер.в ( време , функция_за_извикване ) ;
таймер.в ( време , функция_за_извикване, аргумент ) ; // с аргумент


timer.at(време, функция_за_извикване, аргумент) функцията може да предаде аргумент на извикваната функция. Параметърът на аргумента ще бъде стойността, която трябва да бъде предадена във функцията.

В случай, че искате да се обадите на таймер след интервал от време

В този случай можете да използвате функцията timer.every() за многократно извикване на функция след определен интервал от време. Параметърът интервал показва времето в милисекунди между изпълними интервали от време.

Посочете желания интервал и функция_за_извикване ще се използва многократно след този интервал. Както в предишните случаи, можете да включите незадължителен аргумент, който да бъде предаден на функцията, когато бъде извикана.

таймер.всеки ( интервал, функция_за_извикване ) ;
таймер.всеки ( интервал, функция_за_извикване, аргумент ) ; // Напишете своя интервал тук


Можете да научите повече подробности за този метод за използване на библиотека с таймери за забавяне на извиквания на функции чрез връзката Библиотека с таймер на Arduino за функции за забавяне .

Някои други библиотеки за забавяне в Arduino

Връзката, дадена по-долу, ще ви отведе до библиотеките с таймери на Arduino, където можете да инсталирате библиотеките с таймери за забавяне на извиквания на функции.

Таймер библиотека от Майкъл Контрерас

Има и автор, който е предоставил собствено създадена неблокираща библиотека с таймери на Arduino за забавяне на извиквания на функции. Той е използвал вградени функции на Arduino като millis() и micros(), за да изпълнява функции за забавяне без блокиране. По-долу е дадена връзка към неговата библиотека:

Майкъл Урай Библиотека с таймер на Arduino

Заключение

Въпреки че функцията delay() вече присъства в Arduino, тя не може да се използва за изпълнение на множество задачи едновременно. За да изпълнявате множество задачи едновременно, общността на Arduino създаде неблокиращи библиотеки с таймери, които могат да се използват, както и когато е необходимо.