Comment clignoter sans utiliser la fonction de retard dans Arduino

Comment clignoter sans utiliser la fonction de retard dans Arduino
Blink sans délai () est le projet Arduino le plus simple pour une meilleure compréhension des débutants et dans Arduino, il existe une fonction intégrée de Delay () qui génère un retard d'un temps spécifié (en millisecondes). Alors pourquoi a-t-il besoin de faire un projet de LED clignotants sans fonction ()? Dans cet article, nous essaierons de comprendre la réponse à cette question et discuterons de la méthode par laquelle nous pouvons clignoter sans utiliser la fonction de retard () dans Arduino.

Pourquoi devons-nous clignoter sans utiliser la fonction de retard () dans Arduino

La fonction de retard () produit un délai d'une période définie dans l'exécution des instructions ou que nous pouvons dire que la fonction de retard () fait une pause tout le programme et qu'aucune déclaration ne sera exécutée jusqu'à ce que le retard () n'arrive pas à une fin.

Cela signifie que nous ne pouvons effectuer aucune autre tâche tant que le retard n'est pas terminé, c'est la principale préoccupation de la raison pour laquelle il est parfois découragé d'utiliser la fonction de retard (). Considérons l'exemple d'un homme de messagerie, il va à la maison et ne trouve personne à domicile, ont déclaré les voisins, la personne concernée sera de retour chez lui dans une heure. Maintenant, que devrait faire le Courier-Man? Soit il peut attendre ou peut livrer les parcelles des clients voisins et revenir après une heure pour livrer le colis de cette personne.

De même, dans la programmation, nous ne recommandons pas d'utiliser la fonction de retard () et de faire une pause dans l'ensemble du programme pendant un certain temps, au lieu de cela, nous préférons effectuer une autre tâche pendant que la LED clignote.

Clignoter sans utiliser le code de fonction de retard () dans Arduino

Dans Arduino, nous pouvons clignoter des LED sans utiliser la fonction de retard () par un code très simple. Avant de passer par le code, expliquons l'objectif de certaines fonctions intégrées qui sont utilisées dans le code:

Les fonctions But
pinMode () Cette fonction est utilisée pour définir la broche spécifique pour agir comme une sortie ou une entrée
DigitalWrite () Cette fonction est utilisée pour configurer la broche en fonction des états élevés ou bas
En série.commencer() Cette fonction est utilisée pour la communication série
millis () Cette fonction est utilisée pour extraire le temps d'exécution du code en millisecondes

Considérez le code suivant:

int led = 13;
int x = 1;
Long D1 non signé, D2;
void setup()
PinMode (LED, sortie);
DigitalWrite (LED, 1);
En série.commencer (9600);

VOID LOOP ()
d2 = millis ();
if (d2-d1> = 1000)
x = 1-x;
d1 = millis ();
DigitalWrite (LED, X);

L'explication du code ci-dessus est:

  • Nous avons défini une variable «X» avec un type de données entier et il sera utilisé pour modifier l'état de la LED.
  • Nous définissons également une LED variable avec un type de données entier et stockons 13. Ce 13 sera utilisé pour la broche numéro de treize nombres d'Arduino.
  • Deux variables D1 et D2 sont définies avec le type de données longs non signé. Le type de données «long non signé» est utilisé pour stocker 32 bits de nombre et il peut stocker jusqu'à 4 294 967 295 nombres et la chose à dire est que ce type de données ne stocke pas des nombres négatifs.
  • Dans la configuration vide (), nous utilisons d'abord la fonction pinmode () et déclarer la broche 13 comme broche de sortie.
  • Ensuite, nous avons utilisé la fonction numériquewrite () pour rendre l'état de la broche 13 haut.
  • Enfin, nous avons utilisé la communication série à un taux en bauds de 9600.
  • Dans la boucle void (), nous tapons le code de clignotement des LED parce que nous voulons le répéter pendant une période infinie.
  • Nous extrons le moment d'exécution du code jusqu'à présent et stockons la valeur en variable d2.
  • Ensuite, en utilisant l'instruction if, nous avons vérifié la condition si (d2-d1> 1000), si c'est vrai, cela modifiera la valeur de x.
  • Ensuite, nous stockons l'autre valeur d'exécution du code dans D1.
  • Enfin, en utilisant la fonction numériquewrite (), a changé l'état de la LED en utilisant la valeur de x.
  • Cela se poursuivra pour un temps infini (car la valeur de D2-D1 ne sera pas supérieure à 1000 en aucun cas).

Simulation

Nous exécuterons ce code dans la simulation Proteus, nous ouvrirons le Proteus et trouverons les composants suivants:

  1. Arduino Uno R3
  2. DIRIGÉ
  3. Résistance
  4. Sol

Connectez la borne de la résistance à la broche 13 d'Arduino, connectez la borne positive de la LED avec l'autre terminal de la résistance et connectez le sol avec la borne négative de la LED. Une fois le circuit terminé, double-cliquez sur Arduino et téléchargez un fichier «hexadécimal» du code Arduino.

Jouez le projet et la LED commencera à clignoter comme indiqué ci-dessous:

Configuration matérielle

Le même circuit simulé sur le protéus sera assemblé sur la planche à pain. Nous avons utilisé des fils de cavalier pour connecter les composants LED, Arduino et Resistor:

Le fil de cavalier noir est connecté au sol de l'Arduino et à la borne négative de la LED. Ensuite, une résistance (220 ohms) est connectée à la borne positive de la LED et une autre étape de la résistance (220 ohms) est connectée à la broche 13 d'Arduino à l'aide du fil de cavalier rouge. Le code est déjà téléchargé sur l'Arduino, le fonctionnement du projet est:

La LED est en train de clignoter avec succès sans utiliser la fonction de retard ().

Conclusion

La fonction Blink sans retard () dans Arduino est le projet au niveau débutant qui est utilisé pour démontrer comment le projet peut être exécuté sans utiliser la fonction de retard (). Sans utiliser la fonction de retard (), nous ne sommes pas limités à une seule tâche et pouvons exécuter toute autre instruction du code. Dans cet article, nous avons expliqué la fonction LED Blink sans retard () dans Arduino à l'aide d'une démonstration de sa simulation ainsi que de sa configuration matérielle.