Enregistrement des événements avec Arduino Partie 1
Il existe différentes options en matière de gestion du temps avec l’Arduino. Dans l’article Envoyer des données à l’ordinateur et le bloc “Execute every”, nous montrons comment utiliser le bloc Execute every pour effectuer des opérations de temps en temps, et dans l’article Sorties numériques et bloc Wait, nous expliquons le fonctionnement du bloc Wait.
Le bloc Wait est largement utilisé dans l’Arduino. Ce qui est fait lorsqu’il est inséré, c’est de laisser le tableau dans l’état où il était juste avant l’attente, aussi longtemps que dure l’attente. Le problème avec la fonction Wait est qu’elle laisse la carte verrouillée dans l’état précédent pendant ce temps d’attente, c’est-à-dire qu’elle ne reçoit ni n’envoie de nouvelles commandes pendant ce temps. C’est pourquoi vous devez être prudent lorsque vous l’utilisez. Cependant, il est très facile et pratique à utiliser pour de nombreuses applications simples.
Une autre façon plus professionnelle de gérer le temps consiste à utiliser les blocs “Temps écoulé” et “Chronomètre”, qui se trouvent également dans la section Temps. Pour comprendre leur fonctionnement, il est nécessaire de connaître une particularité de la gestion du temps dans Arduino :
Instructions de gestion du temps ARDUINO – Jorge APC
C’est dans la fonction getMaxValue() qu’elle assigne la valeur de millis() à previousMillis, et comme cette fonction est appelée dans chaque boucle lorsqu’elle atteint millis() – previousMillis >= 5000, la différence de temps ne peut être que ce que la boucle a pris pour s’exécuter, ce qui, je pense, n’est pas plus de 5000 millisecondes (ou 5 secondes), donc la comparaison est toujours fausse :
D’après mes essais, j’ai fait de nombreuses mesures sur plus de 15 équipements et j’ai observé les valeurs que le capteur me donne, étant les équipements éteints et allumés, j’ai fait un tableau pour calculer quel était le pourcentage EN VEILLE par rapport à l’EQUIPEMENT EN FONCTION. Conclusion : cela ne dépasse pas 20% dans les plus de 15 équipements que j’ai mesurés.
Ainsi, si la valeur lue est inférieure de 60% à la précédente, L’APPAREIL EST EN VEILLE. Théoriquement, ils ne dépassent pas 20 %, mais prévoyant que ce n’est pas toujours le cas, j’augmente ce pourcentage à 60 %, pour cette raison je multiplie VALEUR par 0,4 pour enlever 40 % et il ne reste que les 60 % restants.
2- Si ( CURRENT < VALUE * 0.4) Attendre un temps dans ce cas 5 sec – > si ((millis()- previousMillis) >= 5000) mesurer à nouveau et si c’est toujours inférieur couper le courant. S’il est plus élevé parce qu’il a été éteint par erreur et que je le rallume, la mesure revient à un nombre supérieur à VALEUR, laissez-le allumé.
Instructions de gestion du temps pour Arduino
Dans ce billet, nous allons parler d’Arduino en offrant un aperçu de ce qu’il est et de toutes les possibilités qu’il offre. Nous parlons de l’un des éléments les plus célèbres du monde des makers et, à ce titre, il convient de savoir quelles sont ses principales vertus, ainsi que la meilleure façon d’apprendre à programmer avec lui.
Il est très facile à utiliser et son énorme flexibilité est ce qui donne aux programmeurs et aux fabricants tant de liberté, car il est très facile de manipuler des aspects spécifiques du matériel pour les modifier ou les supprimer.
Pour comprendre la portée de ces caractéristiques de l’Arduino, qui sont finalement la principale vertu mondialement reconnue de cette carte, il est nécessaire de comprendre ce que sont le logiciel libre et le matériel libre.
Dire qu’Arduino permet de programmer de manière très simple revient à réduire les fonctions que cette carte englobe à une définition simpliste. En fait, ce que l’Arduino vous permet de faire peut être divisé en deux groupes principaux :
Le microcontrôleur que l’on trouve sur l’Arduino possède ce que l’on appelle une interface d’entrée. Il est utilisé pour créer une connexion qui permet de connecter divers périphériques à la carte. Les informations de ces périphériques seront transférées au microcontrôleur, qui sera chargé de travailler et de traiter les informations qu’il reçoit d’eux.
CONSEILS D’ARDUINO #2 : Gestion de la mémoire dans la déclaration de mémoire
Jusqu’à présent, nous avons mesuré le temps en millisecondes et utilisé le délai pour chronométrer les choses, nous avons donc utilisé un délai d’environ 250 ms pour que la LED clignotante s’allume et s’éteigne, tranquillement.
Le problème avec le délai () est qu’il gèle l’Arduino pendant le temps spécifié. Tant que ce n’est pas trop long, nous pouvons l’accepter, mais imaginez que nous voulions faire clignoter la LED pour un feu de circulation, où les temps d’attente vont de 30 secondes à 1 minute.
Nous pouvons lui demander d’effectuer un délai de 60 secondes * 1 000 = 60 000 millis, mais cela signifie bien sûr que nous ne pourrons rien faire d’autre avant qu’une minute ne se soit écoulée, pas même voir si un bouton a été pressé, ou rafraîchir un écran avec le temps restant du feu de circulation.
L’utilisation des délais ne semble donc pas être une très bonne idée dans de nombreuses situations. Il n’est pas rare que nous voulions programmer des tâches périodiques sur nos Arduinos dans des plages allant de quelques microsecondes à plusieurs minutes, mais nous voulons le faire de manière à pouvoir continuer à travailler pendant ce temps.