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
   71   72   73   74   75   76   77   78   79   80   81