Une led allumée à l'aide d'un capteur son

Code Arduino

1
int PinSon  = A2; 
2
int PinLed = 4; 
3
int LimiteSon = 400;
4
int EtatSon;
5
6
void setup() {
7
8
  pinMode(PinLed, OUTPUT);
9
  pinMode(PinSon , INPUT);
10
  Serial.begin(9600);
11
12
}
13
14
void loop(){
15
  EtatSon = analogRead(PinSon ); 
16
  Serial.println(EtatSon);
17
18
  if (EtatSon > LimiteSon) 
19
  {
20
    digitalWrite(PinLed, HIGH);
21
    delay(500);
22
  }
23
  else
24
  {
25
    digitalWrite(PinLed, LOW);
26
  }
27
28
}

ComplémentCode Arduino commenté

1
//Objectif = Son pour allumer une Led
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 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 programme
10
int LimiteSon = 300; // Je crée une variable, appelée LimiteSon, pour comparer l'ambiance sonore à un seuil
11
int EtatSon;
12
13
void setup() {
14
15
  // Initilisation du module de PIN n° 4 (PinLed) comme une SORTIE 
16
  // = le programme peut envoyer des informations vers la LED
17
  pinMode(PinLed, OUTPUT);
18
  
19
  // Initilisation du module de PIN n° A2 (PinSon) comme une ENTREE 
20
  // = le programme peut recevoir des informations du capteur sonore  
21
  pinMode(PinSon, INPUT);
22
  
23
  //Serial.begin est utilisé pour définir la vitesse de communication utiliése 
24
  //en bauds = nombre d'éléments du signal transmis en une seconde
25
  Serial.begin(9600);
26
27
}
28
29
void loop(){
30
31
  EtatSon = analogRead(PinSon ); // Lire l'état du capteur sonore et attribuer la valeur à la variable EtatSon
32
  
33
  //Afficher le graphique des données sons recueillies dans EtatSon
34
  //Pour les voir : Menu Outils > Traceur série (courbe de valeurs) ou Menu Outils > Moniteur série (valeurs)
35
  Serial.println(EtatSon);   
36
 
37
 if (EtatSon > LimiteSon) // est-ce que le capteur enregistre un signal (valeur EtatSon) supérieur à LimiteSon
38
    {      
39
    digitalWrite(PinLed, HIGH);  // allumer la LED = envoyer l'information mettre la LED en mode HIGH
40
    delay(100);           //arrêt d'exécution pendant 500 ms (1/2 seconde)
41
    }
42
else     // Sinon
43
    {
44
    digitalWrite(PinLed, LOW);   // éteindre la LED = envoyer l'information mettre la LED en mode LOW
45
    }
46
47
}