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