Qu'est-ce qu'un capteur d'inclinaison ? Comment l'adapter dans votre projet ?

Un capteur d’inclinaion permet de mesurer l’inclinaison de votre circuit ou système embarqué. Ce capteur peut être très utile dans un robot ou un avion par exemple.

 Le capteur d’inclinaison fonctionne sur tous les axes. En effet, il suffit d’incliner le capteur dans l’axe que vous souhaitez et si le capteur sort de l’axe, il vous previendra.

Le capteur d’inclinaison peut aussi détecter les vibrations. En effet, celle-ci peuvent faire bouger la bille et donc se faire détecter par le capteur.

Comment fonctionne un capteur d'inclinaison ?

Le capteur d’inclinaison est une petite boite qui contient une bille. La bille est libre de tout mouvement.

Quand la bille est en bas de la boite, le capteur est donc à la verticale et indique 0.

Quand la bille se situe de l’autre côté de la boite, cela veut dire que le capteur est penché et donc indique 1.

Le capteur d’inclinaison n’est pas très précis, il permet juste de dire si votre circuit est penché.  Il ne vous indiquera pas de combien de degré il est penché par exemple.Si vous souhaitez un capteur qui vous donne plus de précision, on vous conseille un gyroscope par exemple.

Les broches du capteur !

  • Signal : permet d’obtenir la mesure du capteur
  • Vcc : branche au 3V ou 5V de la carte Arduino
  • GND : A brancher à la masse de la carte Arduino

Afficher la valeur sur le moniteur série

On va voir comment afficher les valeurs du capteur d’inclinaison sur le moniteur série. Si la valeur vaut 1, alors c’est que le capteur est incliné, sinon cela vaut 0.

int inclinaison_cap = 3;// Broche du capteur

void setup(){
  pinMode(inclinaison_cap, INPUT); // On initialise le capteur en entré
  Serial.begin(9600); // On initialise le moniteur série
}

void loop(){
  int valeur_cap = digitalRead(3);// On récupère la valeur du capteur
  Serial.print("Valeur du capteur d'inclinaison :");
  Serial.println(valeur_cap);
  delay(100); // On attends 100 millisecondes entre deux valeurs
}

Voici ce que l’on obtient sur le moniteur série :

Allumer une Led avec l'inclinaison

On va maintenant voir comment allumer une LED en fonction de l’inclinaison du capteur. La LED s’allume si le capteur est incliné, sinon elle est éteinte.

const int inclinaison_cap = 2;// le capteur d'inclinaison
const int led =  13;// La broche de la led
int Etat_bouton = 0;// variable pour lire l'état du capteur
 
void setup() {
 pinMode(led, OUTPUT);// On initialise la led en sortie
 pinMode(inclinaison_cap, INPUT); // On initialise le capteur comme une entrée
}
 
void loop() {
 Etat_bouton = digitalRead(inclinaison_cap);// On lit la valeur du capteur
 if (Etat_bouton == HIGH) { // si la surface est incliné
   digitalWrite(led, HIGH); // On allume la led
 } else {
   digitalWrite(led, LOW); // on éteint la led
 }
}

Servomoteur et l'inclinaison

On va maintenant voir comment adapter la position du servomoteur en fonction du capteur d’inclinaison.

La position du servomoteur si le capteur d’inclinaison est pas incliné est de 0°, sinon celui-ci est positionné à 180°.

#include <Servo.h> // Librairie du servomoteur
int inclinaison_cap = 2; // Broche du capteur
Servo Servomoteur; // Le servomoteur

void setup(){
  pinMode(inclinaison_cap, INPUT); // On initialise le capteur en entrée
  Servomoteur.attach(13); // On initalise le servomoteur sur la borne 13.
}

void loop() {
  int lecture_valeur = digitalRead(inclinaison_cap);// On lit la valeur du capteur
  if(lecture_valeur) { //Si le capteur est pas incliné
    Servomoteur.write(0); // On positionne le servomoteur a 0°
  }else{ // si il est incliné
    Servomoteur.write(180);//On positionne le servomoteur a 180°
  }
}