Une led allumée par pression maintenue d'un bouton

MéthodeMontage

Code Arduino

1
//Constantes : 
2
const int PinLed =  4;      
3
const int PinBouton = 6;    
4
// variables : 
5
int EtatBouton = 0;         
6
7
// Configuration de départ--------------------------------
8
void setup() 
9
{
10
  pinMode(PinBouton, INPUT);
11
  pinMode(PinLed, OUTPUT);
12
}
13
14
//Exécution de la boucle----------------------------------
15
void loop() 
16
{ 
17
  EtatBouton = digitalRead(PinBouton);
18
   if (EtatBouton == HIGH)        
19
    {
20
      digitalWrite(PinLed, HIGH);
21
    } 
22
  else      
23
    {
24
      digitalWrite(PinLed, LOW);
25
    }
26
} 

Code Python

1
# Péparation utilisation Python
2
from pyfirmata import *
3
from time import *
4
carte = Arduino('COM3') #Port de Communication à chercher (voir Introduction)
5
# itérateur permet de ne pas engorger la communication série
6
it = util.Iterator(carte)
7
it.start()
8
9
# Contantes
10
PinLed = 4
11
PinBouton = 6
12
# Variables
13
EtatBouton = 0
14
15
# setup
16
Bouton = carte.digital[PinBouton]
17
Bouton.mode = pyfirmata.INPUT
18
Led = carte.digital[PinLed]
19
20
# boucle
21
while True:
22
    EtatBouton = Bouton.read()
23
24
    if EtatBouton == 1:
25
        Led.write(1)
26
    else:
27
        Led.write(0)

ComplémentCode Arduino commenté

1
//Objectif = Bouton pour allumer une Led (tant qu'il est appuyé)
2
//PIN = Personal Identification Number, adresse utilisée pour identifier un module
3
//LED = Light-Emitting Diode (Diode ElectroLuminescente = DEL)
4
5
//Constantes : la valeur ne changera pas pendant l'exécution du programme 
6
const int PinLed =  4;      // J'utilise l'adresse numérique n°4, reliée à une LED, pour associer le nom PinLed
7
const int PinBouton = 6;    // J'utilise l'adresse numérique n°6, reliée au bouton, pour associer le nom PinBouton
8
// variables : la valeur peut changer pendant l'exécution du programme:
9
int EtatBouton = 0;         // Je crée une variable, appelée EtatBouton, pour donner un état (appuyé ou non) au bouton 
10
11
// Configuration de départ--------------------------------
12
void setup() 
13
{
14
   // Initilisation du module d'adresse numérique n° 6 (PinBouton) comme une ENTREE 
15
  // = le programme peut recevoir des informations du bouton
16
  pinMode(PinBouton, INPUT);
17
  
18
  // Initilisation du module d'adresse numérique n° 4 (PinLed) comme une SORTIE 
19
  // = le programme peut envoyer des informations vers la LED
20
  pinMode(PinLed, OUTPUT);
21
}
22
23
//Exécution de la boucle----------------------------------
24
void loop() 
25
{ //Début de boucle
26
27
  // Lire l'entrée numérique n°6 (PinBouton) et mettre la valeur (HIGH ou LOW) dasn EtatBouton
28
  EtatBouton = digitalRead(PinBouton);
29
30
  // Vérification de la pression sur le bouton : un signal est-il reçu depuis l'entrée n°6 (PinBouton) ? 
31
   if (EtatBouton == 1)        // = EtatBouton est-il en mode HIGH ? 
32
33
     // Si oui, alors 
34
    {
35
      // allumer la LED : envoyer un signal à la sortie n°4 (PinLed) pour se mettre en mode HIGH
36
      digitalWrite(PinLed, 1);
37
    } 
38
39
  else       // Sinon    
40
    {
41
      // éteindre la LED : envoyer un signal à la sortie n°4 (PinLed) pour se mettre en mode LOW
42
      digitalWrite(PinLed, 0);
43
    }
44
45
} //Fin de boucle, retour au début de boucle