Page 76 - arduino_Neat
P. 76
Montage électronique
À présent, il nous faut incorporer notre capteur de souffle au circuit. Notez que vous pouvez
utiliser un potentiomètre pour simuler ce capteur et réaliser le projet. Il est toutefois inutile de
souffler sur le potentiomètre, il ne réagira pas! Le capteur que nous utilisons ici a trois fils. Le fil
négatif (-) doit aller à la pin Gnd de l'Arduino. Le fil positif (+) doit être connecté à la pin 5V de
la carte Arduino. Finalement, le fil du signal doit être connecté à la pin 0 de l'Arduino.
Programmation
// déclarer la variable pour contenir la pin associée au moteur
int pinMoteur = 9;
// déclarer la variable pour contenir la pin associée au capteur
int pinCapteur = A0;
// déclarer la variable pour contenir la valeur du capteur
int valeurCapteur;
// déclarer la valeur minimale pour déclencher le moteur
int seuilCapteur = 550;
// déclarer la variable pour contenir accumuler des valeurs tampon
int tampon = 0;
// déclarer la variable pour contenir la valeur d'arret pour le tampon
int seuilTampon = 5;
void setup()
{
// établir connection sérielle
Serial.begin(9600);
// spécifier les entrées et sorties
pinMode(pinMoteur, OUTPUT);
pinMode(pinCapteur, INPUT);
}
void loop()
{
// lire le capteur et mettre dans variable
valeurCapteur = analogRead(pinCapteur);
// afficher la valeur pour débugger
Serial.println(valeurCapteur);
// si la valeur du capteur est supérieur au seuil fixé
if(valeurCapteur > seuilCapteur)
{
// transformer les valeurs analogiques 0-1023 à 100 à 255
valeurCapteur = map(valeurCapteur, 0, 1023, 100, 255);
// envoyer valeur au moteur
analogWrite(pinMoteur, valeurCapteur);
// remettre le compteur tampon à zéro
tampon = 0;
}
else{ // si le capteur est inférieur
// incrémenter le tampon
tampon++;
}
// si le compteur tampon a dépassé le seuil
if(tampon >= seuilTampon)
{
// arrêter le moteur
analogWrite(pinMoteur, 0);
}
// attendre 100 millisecondes pour avoir moins d'erreurs de lecture
76