Raspberry Pi - LED - Clignoter sans délai
Imaginons que le Raspberry Pi doive accomplir deux tâches : faire clignoter une LED et surveiller l'état d'un bouton qui peut être pressé à tout moment. Si nous utilisons la fonction time.sleep() (comme discuté dans Raspberry Pi - LED.), le Raspberry Pi pourrait ne pas détecter certaines pressions du bouton. En d'autres termes, le Raspberry Pi est incapable de réaliser complètement la deuxième tâche.
Ce tutoriel vous explique comment le Raspberry Pi peut faire clignoter une LED et surveiller l'état d'un bouton sans manquer aucun événement d'appui.
Nous examinerons trois exemples et comparerons les distinctions entre eux :
- Raspberry Pi faisant clignoter une LED avec la fonction time.sleep()
- Raspberry Pi faisant clignoter une LED avec la fonction millis()
Cette méthode ne se limite pas seulement à faire clignoter une LED et à vérifier l'état du bouton. Elle permet au Raspberry Pi d'effectuer plusieurs tâches simultanément sans interférer les unes avec les autres.
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 de la LED et du bouton
Si vous ne connaissez pas les LED et les boutons (y compris le brochage, la fonctionnalité et la programmation), les tutoriels suivants peuvent vous guider :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :
Code Raspberry Pi - Avec Délai
Étapes rapides
- Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible avec Raspberry Pi installé sur votre Pi.
- Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
- Assurez-vous que votre Raspberry Pi est connecté à Internet si vous devez installer des bibliothèques.
- Si c'est la première fois que vous utilisez Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
- Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sous Linux et macOS ou PuTTY sous Windows. Voir comment connecter votre PC au Raspberry Pi via SSH.
- Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Si ce n'est pas le cas, installez-la en utilisant la commande suivante :
- Créez un fichier script Python led_blink_with_delay.py et ajoutez le code suivant :
- Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le terminal :
- Appuyez sur le bouton quatre fois.
- Vérifiez la LED ; elle alternera entre allumée et éteinte toutes les secondes.
- Regardez la sortie dans le Terminal.
- Sur le terminal, certains temps de pression n'ont pas été enregistrés. Cela est dû au fait que le Raspberry Pi est incapable de faire quoi que ce soit pendant le temps de retard, et donc, il n'est pas en mesure de détecter l'événement de pression.
Le script s'exécute en boucle infinie de manière continue jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.
Code Raspberry Pi - Sans Délai
Étapes rapides
- Créez un fichier de script Python led_blink_without_delay.py et ajoutez le code suivant :
- Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le terminal :
- Appuyez sur le bouton 4 fois.
- Vérifiez la LED, qui alternera entre ALLUMÉ et ÉTEINT chaque seconde.
- Vérifiez la sortie dans le Terminal.
- Tous les événements pressés ont été identifiés pendant que la LED clignotait.
Le script s'exécute dans une boucle infinie en continu jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.
Explication du code
Consultez l'explication ligne par ligne dans les commentaires du code source !
Vidéo
Extensibilité
Cette méthode permet au Raspberry Pi d'effectuer plusieurs tâches simultanément sans interférer les unes avec les autres. Par exemple, envoyer une requête à Internet et attendre la réponse, tout en faisant clignoter des indicateurs LED et en vérifiant le bouton d'annulation.