Une led allumée/éteinte à l'aide d'un capteur de lumière

Code Arduino

1
//Objectif = allumer ou éteindre une Led à l'aide d'un capteur de luminosité 
2
3
const int PinLum = A6;   
4
const int PinLed = 4;    
5
6
int EtatLum;     
7
int EtatLed = 0;   
8
int LimiteLum = 400;  
9
10
void setup() 
11
{
12
  pinMode(PinLed,OUTPUT); 
13
  pinMode(PinLum,INPUT);
14
  Serial.begin(9600);
15
}
16
17
void loop() 
18
{     
19
  EtatLum = analogRead(PinLum);
20
21
  Serial.println(EtatLum);
22
23
  if (EtatLum < LimiteLum && EtatLed==0)  
24
      {
25
        digitalWrite(PinLed, HIGH);       
26
        EtatLed = 1;      
27
        delay(1000);       
28
      }
29
30
  else  
31
      {   
32
        if (EtatLum < LimiteLum && EtatLed==1) 
33
          {
34
            digitalWrite(PinLed, LOW);      
35
            EtatLed = 0;      
36
            delay(1000);    
37
          }
38
      }
39
40
} 

ComplémentCode Arduino commenté

1
//Objectif = allumer ou éteindre une Led à l'aide d'un capteur de luminosité 
2
//passer la main sur le capteur change l'état de la LED
3
//PIN = Personal Identification Number, adresse utilisée pour identifier un module
4
//LED = Light-Emitting Diode (Diode ElectroLuminescente = DEL)
5
6
//Constantes : la valeur ne changera pas pendant l'exécution du programme 
7
const int PinLum = A6;   // J'utilise l'adresse Analogique n°A6, relié à un capteur de luminosité, pour associer le nom PinLum
8
const int PinLed = 4;    // J'utilise l'adresse numérique n°4, reliée à une LED, pour associer le nom PinLed
9
10
// variables : la valeur peut changer pendant l'exécution du programme
11
int EtatLum;          // Je crée une variable, appelée EtatLum, pour lire la valeur de luminosité captée au capteur lumière
12
int EtatLed = 0;      // Je crée une variable, appelée EtatLed, pour donner un état (éteind=0 ou allumé=1) à la LED, état initial éteind
13
int LimiteLum = 400;  // Je crée une variable, appelée LimiteLum, pour comparer l'ambiance lumineuse à un seuil 
14
15
// Configuration de départ----------------------------------
16
void setup() 
17
{
18
  // Initilisation du module de PIN n° 4 (PinLed) comme une SORTIE 
19
  // = le programme peut envoyer des informations vers la LED
20
  pinMode(PinLed,OUTPUT);
21
22
  // Initilisation du module de PIN n° A6 (PinLum) comme une ENTREE 
23
  // = le programme peut recevoir des informations du capteur de luminosité  
24
  pinMode(PinLum,INPUT);
25
26
  //Serial.begin est utilisé pour définir la vitesse de communication utiliése 
27
  //en bauds = nombre d'éléments du signal transmis en une seconde
28
  Serial.begin(9600);
29
}
30
31
// Exécution de la boucle-----------------------------------
32
void loop() 
33
{     //Début de boucle
34
35
  // Récupérer les informations depuis l'entrée Analogique n°A6 et les affecter à EtatLum
36
  EtatLum = analogRead(PinLum);
37
38
  //Afficher le graphique des données sons recueillies dans EtatLum
39
  //Pour les voir : Menu Outils > Traceur série (courbe de valeurs) ou Menu Outils > Moniteur série (valeurs)
40
  Serial.println(EtatLum);
41
42
   // est-ce que le capteur enregistre un signal supérieur à LimiteLum ?
43
  if (EtatLum < LimiteLum && EtatLed==0)  
44
45
      // Si oui, alors 
46
      {
47
        digitalWrite(PinLed, HIGH);       // allumer la LED = envoyer l'information mettre la LED en mode HIGH
48
        EtatLed = 1;      //J'affecte la valeur 1 à EtatLed, cela me sert d'indicateur pour LED allumé
49
        delay(1000);       //arrêt d'exécution pendant 1000 ms 
50
      }
51
52
  else      // Sinon
53
  {   
54
55
  // est-ce que le capteur enregistre un signal inférieur à LimiteLum et la LED allumée ?
56
    if (EtatLum < LimiteLum && EtatLed==1) 
57
     
58
  // Si oui, alors 
59
      {
60
        digitalWrite(PinLed, LOW);      // éteindre la LED = envoyer l'information mettre la LED en mode LOW
61
        EtatLed = 0;      //J'affecte la valeur 0 à EtatLed, cela me sert d'indicateur pour LED éteinte
62
        delay(1000);       //arrêt d'exécution pendant 1000 ms 
63
      }
64
  } 
65
66
} //Fin de boucle, retour au début de boucle