Bibliothèque de temporisateurs Arduino pour retarder

Bibliotheque De Temporisateurs Arduino Pour Retarder



La minuterie est l'un des composants clés d'Arduino pour gérer les tâches sensibles au temps. Les temporisateurs d'Arduino utilisent généralement la fonction delay() pour retarder ou mettre en pause l'exécution pendant de petits intervalles de temps. Cependant, une bibliothèque spéciale pour les fonctions de retardement est requise pour le multitâche.

Ce guide couvrira diverses bibliothèques de minuteries Arduino pour retarder avec de brèves descriptions. Avant cela, comprenons la limitation de la fonction Arduino delay().







Limites de délai()

La fonction delay() ne peut pas être utilisée si vous souhaitez effectuer différentes tâches simultanément, car il s'agit d'une fonction bloquante. Cela signifie que chaque fois que la fonction delay() est utilisée pour interrompre l'exécution d'une tâche, elle ne permet à aucune autre fonction de s'exécuter entre-temps. Par conséquent, lorsque quelqu'un veut arrêter un programme tout en en exécutant d'autres, delay() ne peut pas être utilisé.



Alors que faire?



Bibliothèque de minuteries Arduino pour retarder les appels de fonction

Pour résoudre ce problème, vous devez utiliser des bibliothèques spéciales conçues pour effectuer un retard. Ces bibliothèques vous permettent de suspendre certaines fonctions du programme pendant un certain temps et d'en exécuter d'autres entre-temps. Ces bibliothèques sont des bibliothèques de minuterie qui ne bloquent pas le multitâche. Ils peuvent être utilisés pour appeler des fonctions selon les besoins.





Comment inclure la bibliothèque de minuteries Arduino dans le code Arduino

Pour inclure la bibliothèque de minuteries, nous devons d'abord ajouter le fichier zip en allant dans le Inclure la bibliothèque section dans l'IDE Arduino. Pour une description détaillée de l'ajout de bibliothèques Arduino, vous pouvez lire l'article sur comment installer la bibliothèque dans l'IDE Arduino .

Étape 1

Tout d'abord, vous devrez télécharger la bibliothèque de minuterie Arduino.



Étape 2

Après avoir téléchargé la bibliothèque de minuterie, ouvrez l'IDE Arduino et accédez à Sketch puis Inclure la bibliothèque, puis cliquez sur Ajouter une bibliothèque ZIP.


Arduino affichera 'Bibliothèque installée' dans la sortie.

Étape 3

Après avoir ajouté la bibliothèque ZIP à l'IDE Arduino, elle apparaîtra dans la liste déroulante des options Inclure la bibliothèque dans l'IDE Arduino. D'ici inclure Minuteur bibliothèque.


Lorsque vous incluez le 'Minuteur' bibliothèque, la directive du préprocesseur apparaîtra sur l'esquisse. Sinon, vous pouvez suivre l'étape 4 pour inclure manuellement la bibliothèque.

# inclure < Minuterie.h >

Étape 4

Pour inclure la bibliothèque Arduino Timer dans le code Arduino, vous devez utiliser le #inclure directive avec la (.h) nom de la bibliothèque de minuterie d'extension, puis créez une minuterie comme indiqué ci-dessous.

#include
minuteur automatique = timer_create_default ( ) ;


Après avoir créé une minuterie, vous devez créer une fonction pour appeler cette minuterie. Vous devrez peut-être appeler la minuterie à un instant précis, après un court délai ou après un intervalle de temps. Des exemples d'appel de temporisateurs dans de telles conditions sont donnés ci-dessous.

Au cas où vous voudriez un court délai

timer.in ( retard, function_to_call ) ;
timer.in ( retard, function_to_call, argument ) ; // ou avec un argument optionnel pour fonction_à_appeler


Dans ce cas, nous pouvons utiliser le timer.in() fonction pour introduire un délai avant d'appeler une fonction spécifique. Le paramètre delay représente le temps en millisecondes que l'on veut attendre avant d'exécuter le code.

Après le délai spécifié, le fonction_à_appeler sera utilisé. Un argument peut également être défini pour passer à la fonction au moment de l'appel.

Au cas où vous voudriez appeler la minuterie à une heure précise

Cette fonction configure une minuterie pour exécuter une fonction spécifique à un moment donné. Le paramètre time spécifie l'heure à laquelle la fonction doit être appelée. Il peut s'agir d'un horodatage spécifique ou d'une valeur de retard en millisecondes. Le fonction_à_appeler est le paramètre de la fonction qui doit être exécutée après l'expiration du temporisateur.

minuterie.at ( temps , fonction_à_appeler ) ;
minuterie.at ( temps , fonction_à_appeler, argument ) ; // avec argumentation


timer.at(time, function_to_call, argument) fonction peut passer un argument à la fonction appelée. Le paramètre argument sera la valeur qui doit être passée dans la fonction.

Au cas où vous voudriez appeler la minuterie après un intervalle de temps

Dans ce cas, vous pouvez utiliser la fonction timer.every() pour appeler à plusieurs reprises une fonction après un intervalle de temps spécifique. Le paramètre d'intervalle affiche le temps en millisecondes entre les intervalles de temps exécutables.

Spécifiez l'intervalle souhaité et le fonction_à_appeler sera utilisé à plusieurs reprises après cet intervalle. Comme dans les cas précédents, vous pouvez inclure un argument facultatif à passer à la fonction lorsqu'elle est appelée.

minuterie.chaque ( intervalle, fonction_à_appeler ) ;
minuterie.chaque ( intervalle, fonction_à_appeler, argument ) ; // Écrivez votre intervalle ici


Vous pouvez en savoir plus sur cette méthode d'utilisation d'une bibliothèque de minuterie pour retarder les appels de fonction via le lien Bibliothèque de minuterie Arduino pour les fonctions de retard .

Quelques autres bibliothèques pour le retard dans Arduino

Le lien ci-dessous vous mènera aux bibliothèques de minuterie d'Arduino, où vous pouvez installer les bibliothèques de minuterie pour retarder les appels de fonction.

Bibliothèque de minuterie par Michael Contreras

Il existe également un auteur qui a fourni sa propre bibliothèque de minuterie Arduino non bloquante pour retarder les appels de fonction. Il a utilisé des fonctions intégrées d'Arduino comme millis() et micros() pour effectuer des fonctions de retardement sans blocage. Un lien vers sa bibliothèque est donné ci-dessous:

Michel Uray Bibliothèque de minuterie Arduino

Conclusion

Bien que la fonction delay() soit déjà présente dans Arduino, elle ne peut pas être utilisée pour effectuer plusieurs tâches simultanément. Pour exécuter plusieurs tâches en même temps, des bibliothèques de minuteries non bloquantes ont été créées par la communauté Arduino qui peuvent être utilisées selon les besoins.