L’utilisation de la technologie pour créer des dispositifs innovants est devenue une pratique courante dans le monde moderne. Les appareils électroniques sont de plus en plus utilisés pour répondre à des besoins variés. L’utilisation d’un bouton-poussoir (BP) pour allumer une diode électroluminescente (LED) est un exemple de cette technologie. Dans cet article, nous allons examiner en détail comment un BP peut être utilisé pour allumer une LED et les avantages qu’il offre.
L’appui sur un BP allume une LED.
Présentation
Ce programme L’appui sur un BP allume une LED.
Matériel Nécessaire
L’espace de développement Arduino
- … pour éditer, compiler le programme et programmer la carte Arduino.

Le matériel suivant pour réaliser le montage associé
- une plaque d’essai pour montage sans soudures,

- des straps,

- une LED rouge 5mm,

- une résistance 1/4w de 200 Ohms environ,

- un bouton poussoir pour CI,

Instructions de montage
- Connecter sur la broche 2 (configurée en entrée) un BP connecté à la masse (0V)
- Connecter sur la broche 3 (configurée en sortie) une LED en série avec sa résistance connectée au 0V
Le schéma théorique du montage
- A noter que cette broche sera configurée en entrée avec la résistance interne de « rappel au + » (pullup) activée (pour plus de détail voir la rubrique « COMPRENDRE »).

Le schéma théorique du montage
Le circuit du montage

Le schéma du montage à réaliser
Explication du programme
Structure globale du programme
Ce programme simple comprend :
- une entête déclarative
- une partie « configuration » qui ne sera exécutée qu’une fois (fonction setup( ) )
- une partie constituée d’une boucle sans fin que le programme répètera à l’infini ( fonction loop( ) ) : c’est le coeur du programme.
Déroulement du programme
Le programme se déroule de la façon suivante :
- Après avoir pris en compte les instructions de la partie déclarative,
- puis après avoir exécuté la partie configuration ( fonction setup( ) ),
- le programme bouclera sans fin ( fonction loop ( ) ), exécutant de façon répétée le code compris dans la boucle sans fin.

Le déroulement du programme
Au niveau de la partie déclarative :
Déclaration de constantes utiles
- On déclare les constantes utiles dans le programme :
- Déclaration des constantes utiles pour l’utilisation des boutons poussoirs :
const int APPUI=0; // constante état du BP - appui sur niveau bas const int PAS_APPUI=1; // constante état du BP - relâché sur niveau haut
Déclaration des constantes de broches
- Déclaration des constantes pour les broches utilisées dans le programme :
const int BP=2; //declaration constante de broche const int LED=3; //declaration constante de broche
Déclaration des variables globales
- Déclaration des variables globales du programmes :
- Déclaration d’une variable globale utile pour l’utilisation des boutons poussoirs :
int ETAT_BP=0; // variable témoin de l'état du BP
Au niveau de la fonction d’initialisation setup( ) :
configuration des broches utilisées :
- Configuration des broches en sortie : on met en sortie la broche utilisée avec la LED
pinMode(LED, OUTPUT); //met la broche en sortie
- Configuration des broches en entrée : on met en entrée la broche utilisée avec le bouton poussoir
pinMode(BP, INPUT); //met la broche en entree
- Activation du rappel au + interne des broches en entrée si nécessaire : on active le rappel au plus interne pour la broche connectée au BP. Ceci est indispensable car lorsque le BP n’est pas appuyé, la broche n’est connectée à « rien »… Le rappel au plus permet de fixer sa valeur à +5V en l’absence d’appui du BP.
digitalWrite(BP, HIGH) ; // activation du pullup de la broche en entrée
Au niveau de la boucle principale, la fonction loop ( ) :
- On commence par lire l’état du bouton poussoir à l’aide de l’instruction digitalRead(broche) et le résultat est mis dans la variable prévue pour mémoriser l’état du bouton poussoir.
ETAT_BP=digitalRead(BP); // lit l'état du BP et met la valeur 0/1 dans la variable
- Ensuite, on réalise un test de la valeur de cette variable qui reflète l’état du bouton poussoir :
- si le bouton est appuyé (càd si la variable = 0 car l’appui sur le BP connecte la broche au 0V), alors on allume la LED.
- Sinon, la LED est éteinte.
if (ETAT_BP==APPUI){ // si l'état du BP est appuyé (càd si variable état BP = 0) // Attention à bien utiliser == et non = digitalWrite(LED,1); // allume la LED } else { // sinon (càd si variable état bp=1) digitalWrite(LED,0); // éteint la LED } // remarque : on aurait pu écrire ceci sur une seule ligne selon : // if (ETAT_BP==APPUI)digitalWrite(LED,1); else digitalWrite(LED,0);
- Le programme recommence en boucle les instructions de la fonction loop( ). Au final, la LED va s’allumer en fonction de l’état du bouton poussoir. Il faut bien se rendre compte que le test est réalisé des milliers de fois par seconde, donc l’état de la LED reflète instantanément l’état du bouton poussoir.
Se reporter aux commentaires présents dans le programme pour plus de détails.
Mise en oeuvre du programme
Préparation du montage et programmation de la carte Arduino :
- Commencer par réaliser le montage indiqué sur plaque d’expérimentation
- Ensuite, programmer la carte Arduino avec ce programme (en bas de page) selon la procédure habituelle
Fonctionnement
- La LED va s’allumer en fonction de l’état du bouton poussoir :
- l’appui sur le BP allume la LED
- le BP relâché éteint la LED
Le programme complet en langage Arduino :
A copier/coller directement dans l’éditeur Arduino
// --- Programme Arduino --- // par X. HINAULT - 01/2010 // --- Que fait ce programme ? --- /* Une LED reste allumée tant qu'un bouton poussoir est appuyé et s'éteint lorsqu'il n'est pas appuyé */ // --- Fonctionnalités utilisées --- // --- Circuit à réaliser --- // Connecter BP à la masse sur la broche 2 (configurée en entrée) // Connecter LED et sa résistance en série sur la broche 3 (configurée en sortie) //**************** Entête déclarative ******* // A ce niveau sont déclarées les librairies, les constantes, les variables... // --- Inclusion des librairies utilisées --- // --- Déclaration des constantes --- const int APPUI=0; // constante état du BP - appui sur niveau bas const int PAS_APPUI=1; // constante état du BP - relâché sur niveau haut // --- constantes des broches --- const int BP=2; //declaration constante de broche const int LED=3; //declaration constante de broche // --- Déclaration des variables globales --- int ETAT_BP; // variable d'état du bouton poussoir // --- Initialisation des fonctionnalités utilisées --- //**************** FONCTION SETUP = Code d'initialisation ***** // La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme void setup() { // debut de la fonction setup() // --- ici instructions à exécuter au démarrage --- pinMode(LED, OUTPUT); //met la broche en sortie pinMode(BP, INPUT); //met la broche en entree digitalWrite(BP, HIGH) ; // activation du pullup de la broche en entrée } // fin de la fonction setup() // ******************************************************************************** //*************** FONCTION LOOP = Boucle sans fin = coeur du programme ************* // la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension void loop(){ // debut de la fonction loop() // --- ici instructions à exécuter par le programme principal --- ETAT_BP=digitalRead(BP); // lit l'état du BP et met la valeur 0/1 dans la variable if (ETAT_BP==APPUI){ // si l'état du BP est appuyé (càd si variable état BP = 0) // Attention à bien utiliser == et non = digitalWrite(LED,1); // allume la LED } else { // sinon (càd si variable état bp=1) digitalWrite(LED,0); // éteint la LED } // remarque : on aurait pu écrire ceci sur une seule ligne selon : // if (ETAT_BP==APPUI)digitalWrite(LED,1); else digitalWrite(LED,0); } // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin // ******************************************************************************** // --- Fin programme ---
Articles Liés
- L'Appui sur un BP lance la lecture d'un son dans l'interface Processing
L'utilisation de l'Appui sur un BP (Bouton Poussoir) pour lancer la lecture d'un son est…
- L'appui sur 5 BP lance la lecture de 5 sons différents dans l'interface Processing
L'interface Processing est un outil puissant qui permet aux utilisateurs de créer des programmes informatiques…
- L'appui sur un BP déclenche une trame GPS en provenance d'un module GPS EM-406
A L'utilisation des technologies GPS est devenue un élément essentiel de notre vie quotidienne. Que…