Arduino - LED - Clignotement sans délai
Imaginons qu'Arduino doive effectuer deux tâches : faire clignoter une LED et vérifier l'état d'un bouton, qui peut être pressé à tout moment. Si nous utilisons la fonction delay() (décrite dans un tutoriel précédent), Arduino pourrait manquer certains des événements de pression. En d'autres termes, Arduino ne peut pas accomplir pleinement la deuxième tâche.
Dans ce tutoriel, nous apprendrons comment Arduino fait clignoter une LED et vérifie l'état du bouton sans manquer aucun événement de pression.
Nous examinerons trois exemples ci-dessous et comparerons les différences entre eux.
- Arduino fait clignoter la LED en utilisant la fonction delay().
- Arduino fait clignoter la LED en utilisant la fonction millis().
- Arduino fait clignoter la LED en utilisant la bibliothèque ezLED.
※ NOTE THAT:
- Cette méthode ne sert pas uniquement à faire clignoter une LED et à vérifier l'état d'un bouton. En général, cette méthode permet à Arduino d'effectuer plusieurs tâches en même temps sans qu'elles se bloquent mutuellement.
- Ce tutoriel fournit des connaissances approfondies qui vous aideront à comprendre le principe de fonctionnement. Pour simplifier, vous pouvez utiliser la bibliothèque Arduino - LED.
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos des LED et des boutons.
Si vous ne connaissez pas les LED et les boutons (brochage, fonctionnement, programmation...), renseignez-vous sur ces éléments dans les tutoriels suivants :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Code Arduino - Avec Délai
Étapes rapides
- Connectez Arduino au PC via le câble USB
- Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code sur Arduino
- Ouvrir le moniteur série
- Appuyez sur le bouton 4 fois
- Observer la LED : La LED bascule entre ON/OFF périodiquement toutes les secondes
- Voir la sortie dans le moniteur série
- Sur le moniteur série, certains temps de pression ont été manqués. Cela est dû au fait que, pendant le temps de délai, l'Arduino NE PEUT RIEN faire. Par conséquent, il est incapable de détecter l'événement de pression.
Code Arduino - Sans Délai
Étapes rapides
- Exécutez le code ci-dessus et appuyez sur le bouton 4 fois
- Observez la LED : La LED bascule périodiquement entre ON/OFF toutes les secondes
- Consultez la sortie dans le moniteur série
- Tous les événements urgents ont été détectés.
Explication du Code
Vous pouvez trouver l'explication dans la ligne des commentaires du code Arduino ci-dessus.
Ajouter plus de tâches
Le code ci-dessous fait clignoter deux LED à des intervalles différents et vérifie l'état du bouton.
Vidéo
Extensibilité
Cette méthode peut être utilisée pour permettre à Arduino d'effectuer plusieurs tâches simultanément sans se bloquer mutuellement. Par exemple, envoyer une requête sur Internet et attendre la réponse, pendant l'attente de la réponse, faire clignoter des indicateurs LED et vérifier le bouton d'annulation.