Le capteur de force permet de mesure une contrainte faite par l’utilisateur ou un objet et le transmet à la carte arduino sous forme de tension. Il est composé d’une cellule de force. La cellule de force est une jauge de contrainte permettant de mesurer un effort.
Elle contient une resistance qui décroît en fonction de l’effort fourni. De cette façon l’effort peut-être calculé par rapport à la valeur de référence de la résistance.
Le capteur de force peut lire une valeur allant de 0 newton à 10 newtons, ce qui corresponds à 1kg. Vous pourrez retrouver des capteurs allant jusqu’à 2-3 kg sur arduino.
Selon ce dont vous avez besoin pour votre projet, il existe des capteurs de force de différentes taille et precision.
Voici une petite liste de différents capteurs en fonction de leurs caractéristiques:
Certain capteurs possèdent en plus un module de conversion pour amplifier le signal et le convertir en une valeur numérique. Ces capteurs ce branches sur une borne digital numérique de la carte Arduino.
Voici un kit de different capteur de pression fonctionnant avec un module de conversion :
On va maintenant voir comment afficher les valeurs de force sur le moniteur série en newton-mètre.
#define capteur_force A0 // broche capteur de force
void setup() {
Serial.begin(9600); // Initialisation du moniteur serie
}
void loop() {
int lecture_valeur = analogRead(capteur_force); // on lit la valeur venant du capteur de force
// Affichage de la valeur sur le moniteur serie
Serial.print("Valeur du capteur : ");
Serial.print(lecture_valeur);
Serial.println(" milli Newton metre");
delay(100); // pause pour attendre la valeur suivante
}
Voici le résultat sur le moniteur série :
On va maintenant voir comment allumer des leds en fonctions de la force en newton-mètre.
Voici les valeurs pour lesquels les leds vont s’allumer:
Couleur Led | Valeur en Newton-mètre |
---|---|
LED Blanche | 200 > |
LED Bleu | 450 > |
LED Verte | 550 > |
LED Jaune | 650 > |
LED Orange | 800 > |
LED Rouge | 900 > |
#define capteur_force A0 // broche capteur de force
// on definit les leds
#define led_blanche 2
#define led_bleu 3
#define led_verte 4
#define led_jaune 5
#define led_orange 6
#define led_rouge 7
void setup() {
// on definit les leds en sortie
pinMode(led_blanche, OUTPUT);
pinMode(led_bleu, OUTPUT);
pinMode(led_verte, OUTPUT);
pinMode(led_jaune, OUTPUT);
pinMode(led_orange, OUTPUT);
pinMode(led_rouge, OUTPUT);
}
void loop() {
int lecture_valeur = analogRead(capteur_force); // on lit la valeur venant du capteur de force
// si la valeur est supérieur à 2 newton-mètre on allume la led blanche
if (lecture_valeur > 200) {
digitalWrite(led_blanche, HIGH);
}
else digitalWrite(led_blanche, LOW); // On éteint la led si ce n'est pas le cas
// On allume la led bleu si la valeur est supérieur à 4.5 Newton mètre
if (lecture_valeur > 450) {
digitalWrite(led_bleu, HIGH);
}
else digitalWrite(led_bleu, LOW);
// on allume la led verte si la valeur est supérieur à 5.5 Newton-mètre
if (lecture_valeur > 550) {
digitalWrite(led_verte, HIGH);
}
else digitalWrite(led_verte, LOW);
// On allume la led jaune si la valeur est supérieur à 6.5 newton mètre
if (lecture_valeur > 650) {
digitalWrite(led_jaune, HIGH);
}
else digitalWrite(led_jaune, LOW);
// On allume la led orange si la valeur est supérieur à 8 Newton-mètre
if (lecture_valeur > 800) {
digitalWrite(led_orange, HIGH);
}
else digitalWrite(led_orange, LOW);
// On allume la led rouge si la valeur est supérieur à 9 Newton-mètre
if (lecture_valeur > 900) {
digitalWrite(led_rouge, HIGH);
}
else digitalWrite(led_rouge, LOW);
}