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ément : Code 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 LED3
//PIN = Personal Identification Number, adresse utilisée pour identifier un module4
//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 programme11
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 LED20
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 seconde28
Serial.begin(9600);
29
}
30
31
// Exécution de la boucle-----------------------------------32
void loop()
33
{ //Début de boucle34
35
// Récupérer les informations depuis l'entrée Analogique n°A6 et les affecter à EtatLum36
EtatLum = analogRead(PinLum);
37
38
//Afficher le graphique des données sons recueillies dans EtatLum39
//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