Knihovna časovače Arduino pro zpoždění

Knihovna Casovace Arduino Pro Zpozdeni



Časovač je jednou z klíčových součástí Arduina pro zpracování časově citlivých úloh. Časovače Arduina obvykle používají funkci delay() k zajištění zpoždění nebo pozastavení provádění na malé časové intervaly. Pro multitasking je ale potřeba speciální knihovna pro zpožďovací funkce.

Tato příručka pokryje různé knihovny časovačů Arduino pro zpoždění se stručnými popisy. Předtím pochopíme omezení funkce Arduino delay().







Omezení zpoždění()

Funkci delay() nelze použít, pokud chcete provádět různé úkoly současně, protože se jedná o blokovací funkci. To znamená, že kdykoli je funkce delay() použita k pozastavení provádění úkolu, neumožňuje mezitím provést žádnou jinou funkci. Proto, když někdo chce zastavit jeden program, zatímco běží jiné, nelze použít delay().



Co tedy dělat?



Knihovna časovačů Arduino pro odložení volání funkcí

Chcete-li tento problém vyřešit, měli byste použít speciální knihovny určené pro provádění zpoždění. Tyto knihovny umožňují pozastavit některé funkce v programu na nějakou dobu a jiné mezitím spustit. Tyto knihovny jsou knihovny časovačů, které neblokují multitasking. Mohou být použity k volání funkcí podle potřeby.





Jak zahrnout knihovnu časovače Arduino do kódu Arduino

Chcete-li nejprve zahrnout knihovnu časovače, musíme přidat soubor zip přechodem na Zahrnout knihovnu sekce v Arduino IDE. Podrobný popis přidávání knihoven Arduino si můžete přečíst v článku na jak nainstalovat knihovnu v Arduino IDE .

Krok 1

Nejprve si budete muset stáhnout knihovnu časovače Arduino.



Krok 2

Po stažení knihovny časovače otevřete Arduino IDE a přejděte na Sketch, poté Include Library a poté klikněte na Add ZIP Library.


Zobrazí se Arduino ‚Knihovna nainstalována‘ ve výstupu.

Krok 3

Po přidání knihovny ZIP do Arduino IDE se tato objeví v rozevíracím seznamu možností Zahrnout knihovnu v Arduino IDE. Odtud patří Časovač knihovna.


Když zahrnete „časovač“ knihovny, direktiva preprocesoru se objeví na skice. Jinak můžete podle kroku 4 knihovnu zahrnout ručně.

# zahrnout < Časovač.h >

Krok 4

Chcete-li zahrnout knihovnu časovače Arduino do kódu Arduino, musíte použít #zahrnout směrnice spolu s (.h) název knihovny časovače rozšíření a poté vytvořte časovač, jak je znázorněno níže.

#include
automatický časovač = timer_create_default ( ) ;


Po vytvoření časovače musíte vytvořit funkci pro volání tohoto časovače. Možná budete muset zavolat časovač v určený okamžik, po krátké prodlevě nebo po určitém časovém intervalu. Příklady časovačů volání za takových podmínek jsou uvedeny níže.

V případě, že chcete krátké zpoždění

timer.in ( zpoždění, function_to_call ) ;
timer.in ( zpoždění, funkce_k_volání, argument ) ; // nebo s volitelným argumentem pro funkce_k_volání


V tomto případě můžeme použít timer.in() funkce pro zavedení zpoždění před voláním konkrétní funkce. Parametr delay představuje čas v milisekundách, který chceme čekat před provedením kódu.

Po zadaném zpoždění se funkce_k_volání bude použito. Argument lze také definovat tak, aby byl předán funkci v době volání.

V případě, že chcete zavolat časovač v konkrétní čas

Tato funkce nastavuje časovač pro provedení konkrétní funkce v konkrétním čase. Parametr time určuje čas, kdy má být funkce volána. Může to být konkrétní časové razítko nebo hodnota zpoždění v milisekundách. The funkce_k_volání je parametr funkce, která se má provést po vypršení časovače.

časovač.at ( čas , funkce_k_volání ) ;
časovač.at ( čas , funkce_k_volání, argument ) ; // s argumentem


timer.at(čas, funkce_k_volání, argument) funkce může předat argument volané funkci. Parametr argumentu bude hodnota, která má být ve funkci předána.

V případě, že chcete zavolat časovač po určité době

V tomto případě můžete použít funkci timer.every() k opakovanému volání funkce po určitém časovém intervalu. Parametr interval zobrazuje čas v milisekundách mezi spustitelnými časovými intervaly.

Zadejte požadovaný interval a funkce_k_volání bude po tomto intervalu opakovaně používán. Stejně jako v předchozích případech můžete zahrnout volitelný argument, který se předá funkci při jejím volání.

časovač.každý ( interval, funkce_k_volání ) ;
časovač.každý ( interval, funkce_k_volání, argument ) ; // Sem napište svůj interval


Další podrobnosti o této metodě použití knihovny časovače pro zpoždění volání funkcí se můžete dozvědět prostřednictvím odkazu Knihovna časovačů Arduino pro funkce zpoždění .

Některé další knihovny pro zpoždění v Arduinu

Níže uvedený odkaz vás zavede do knihoven časovačů Arduino, kde si můžete nainstalovat knihovny časovačů pro zpoždění volání funkcí.

Knihovna časovačů od Michaela Contrerase

Existuje také autor, který poskytl svou vlastní vytvořenou neblokující knihovnu časovačů Arduino pro zpoždění volání funkcí. Použil vestavěné funkce Arduina jako millis() a micros() k provádění zpožďovacích funkcí bez blokování. Níže je uveden odkaz na jeho knihovnu:

MichaelUray Knihovna časovače Arduino

Závěr

Přestože je funkce delay() již v Arduinu přítomna, nelze ji použít k provádění více úloh současně. Aby bylo možné provádět více úloh současně, komunita Arduino vytvořila neblokující knihovny časovačů, které lze použít podle potřeby.