Salut à tous,

Après avoir faits le tutoriel sur le voice Recorder et en utilisant un module capteur de proximité infrarouge, je me suis rendu compte que je n’avais pas fait de tutoriel sur celui-ci et que je ne l’avais pas détaillé par la même occasion.

Et bien voilà, comme son nom l’indique il s’agit d’un capteur de proximité, muni de deux leds infrarouges. Une transparente et une plus foncée. L’une correspondant à la LED émettrice et la LED réceptrice.

J’ai cru comprendre que lorsqu’un corps quelconque passe devant le faisceau il le renvoi alors a la diode réceptrice. Et détecte ainsi le corps à proximité.

ir_proximity_sensor

 

On reçoit alors un signal de la pin OUT vers l’Arduino (pin 2 dans notre cas).

 

Branchements

Module -> Arduino

  • VCC -> 5V de l’Arduino
  • GND -> GND de l’Arduino
  • OUT -> PIN 2 de l’Arduino

ir_proximity_sensor_arduino

Code Arduino

Il s’agit ici du même code que pour le détecteur de mouvement PIR -> ICI

ils font la même chose c’est surtout la portée de détection qui sera plus courte dans ce cas ci.

Si le capteur détecte un mouvement il s’affichera: « Motion detected! », Ce message restera tant qu’il y aura un mouvement.
Une fois qu’il n’y a plus de mouvement, il s’affiche: « Motion ended! »

int inputPin = 2;               // choose the input pin (for PIR sensor)
          int pirState = LOW;             // we start, assuming no motion detected
          int val = 0;                    // variable for reading the pin status
           
          void setup() {
            pinMode(inputPin, INPUT);     // declare sensor as input
           
            Serial.begin(9600);
          }
           
          void loop(){
            val = digitalRead(inputPin);  // read input value
            if (val == HIGH) {            // check if the input is HIGH
              if (pirState == LOW) {
                // we have just turned on
                Serial.println("Motion detected!");
                // We only want to print on the output change, not state
                pirState = HIGH;
              }
            } else {  
              if (pirState == HIGH){
                // we have just turned of
                Serial.println("Motion ended!");
                // We only want to print on the output change, not state
                pirState = LOW;
              }
            }
          }