Capteur de force FSR02 – Senseur FSR – Arduino

Un capteur de force FSR02 (Force Sensing Resistor) permet de détecter une pression physique.

Le capteur FSR est un capteur qui répond en faisant décroitre sa résistance. Si nous n’effectuons aucune pression sur le capteur, la résistance approchera l’infini. Plus on appuie sur le capteur, plus la résistance va être petite.

Le document constructeur est disponible à cette adresse.

Caractéristiques :
Plage de mesure: 100 g à 2 kg
Applications: détection de présence, d’objets …
Durée de vie: 10 millions de cycles
Épaisseur: 0,46 mm
Dimensions: 56 x Ø19 mm

 

Le code suivant va lire la tension qu’envoie le capteur de force. En fonction de cette tension, nous allons faire varier la tension de la LED.
Donc plus on exerce une pression sur le capteur de force, plus la LED va s’allumer. Il faut faire attention à bien utiliser une sortie PWM pour la LED (interface avec le signe ~).

Dans le code, nous utilisons également la commande map.
En entrée, sur le port A0, nous récupérons une valeur qui varie entre 0 et 5V. Le CAN convertit cette plage avec 0V –> 0 et 5 V –> 1023. Nous ne pouvons pas envoyer sur la LED une valeur comprise entre 0 et 1023. Le PWM permet d’envoyer sur la LED une valeur entre 0 et 255. La commande map effectuera donc un rapport proportionnel à partir des valeurs 0 => 0 et 1023 => 255.

map(variable, ValeurMin, ValeurMax, versValeurMin, versValeurMax);

exemple :

val = map(luminosite_led, 0, 1023, 0, 255);
  int capteur_force = 0; // FSR branché sur pin Analog 0

int led = 3; // connecter LED rouge sur pin 3 (pin PWM)

int lecture_FSR; // Lecture analogique de la tension du pont diviseur du capteur FSR
int luminosite_led;

void setup(void) {
Serial.begin(9600); // Envoi de message de déboggage sur connexion série
pinMode(led, OUTPUT);
}

void loop(void) {
lecture_FSR = analogRead(capteur_force);
Serial.print("Capteur de Force = ");
Serial.println(lecture_FSR);

// Nous devons convertir la valeur analogique lue (0-1023)
// en une valeur utilisable par analogWrite (0-255).
// C'est ce que fait l'instruction map!

luminosite_led = map(lecture_FSR, 0, 1023, 0, 255);
// Ecrire sur la lLED la valeur décimal luminosite_LED (en fonction de la pression)
analogWrite(led, luminosite_led);
delay(100);

}
Capteur de Force - FSR02

 

20 comments

comments user
Sébastien

bonjour,

peut on brancher sur une carte Arduino uno en même temps ce type de capteur de force et un gyroscope electronique pour avoir des mesures d’angulation et de force ?

    comments user
    mataucarre

    Bonjour,
    Bien entendu que c’est possible. Je me permets de vous renvoyer vers ce lien en complément de mon article concernant le gyroscope : http://gilles.thebault.free.fr/spip.php?article32

    Si vous avez des questions, n’hésitez pas.

comments user
Maxime

Bonjour,

En réalisant le même programme que vous ainsi que le même montage, en appuyant sur le capteur la led dimunue puis s’eteint et se rallume au lieu de s’allumer de plus en plus forte et s’éteindre. Pouvez-vous m’aider merci.

    comments user
    mataucarre

    Possible de voir votre montage ?

comments user
guillard

Bonjour
Je me permets si cela est possible de vous posez une question
Mon projet n est pas d augmenter la luminosité d une led mais avec 4 leds qui s allume successivement lorsque l on remplis une bouteille d eau,est ce possible,?,
Cordialement

comments user
guillard

Sa me servirais de niveau😉
Savoir quand là bouteille est au tier à la moitié au trois quarts ou pleine!😊

comments user
Laurent

Bonjour Mataucarre,
Est-il possible pour la carte Arduino Uno de supporter trois capteur fsr et de transmettre les données des appuis en temps réels vers un ordinateur ?

    comments user
    mataucarre

    Oui, il suffit de brancher les capteurs sur d’autres entrées analogiques (A1, A2, A3, etc)…

      comments user
      Ekramyf

      Bonjour svp comment je peux envoyer les données d’un capteur FSR à une plateforme pour le surveillé…. Svp j’ai vraiment besoin de votre aide
      J’ai un SIM900 capteur de force FSR carte arduino méga
      Q’est ce que je dois faire ???

        comments user
        mataucarre

        quel est le problème ?

comments user
colot guy

Bonjour je voudrais le programme Arduino complet pour le raccordement d’un servo a un capteur de force FSR je sais manouvre mon servos mais j’aimerais que il soie diriger par le pression sur capteur de force

    comments user
    mataucarre

    Comment ça qu’il soit dirigé ?
    Lors d’une pression, que doit-faire exactement le servo ?

comments user
xabid

Bonjour, je veux afficher l’effort exercé sur le capteur sur un écran LCD. Comment faire? Merci

    comments user
    mataucarre

    Quel écran LCD ?

comments user
xabid

Bonjour, je voudrais afficher la force de mon capteur FSR402 sur l’écran LCD. Comment faire pour convertir le résultat du capteur analogique sur l’écran LCD en Newton ou kilo? Merci pour vos conseils

    comments user
    mataucarre

    Bien entendu. Quel est votre écran ?

comments user
slimane

Bonjour,
pour un projet à l’université je fais la conception d’une semelle pour mesurer les pressions (on va intégrer des capteurs fsr, une centrale inertielle et on va faire l’acquisition des données dans un microcontrôleur ) en premier temps je vais tester les capteurs grâce à votre méthode mais par la suite je dois traduire cette variation de résistance en pression.
pourriez-vous m’aider sur conversion en pression ? et que pourriez vous me dire sur le calibrage pour ce genre d’applications ?
merci

    comments user
    mataucarre

    Avez-vous le modèle du capteur ?

comments user
Lufox

Bonjour,
Je cherche a compare une pression d’un FSR dans une condition if pouvait vous m’aider?

    comments user
    mataucarre

    Bonjour,
    La valeur mesurée par le capteur est enregistré dans la variable lecture_FSR. Elle varie entre 0 et 1023.
    Après la dernière ligne, dans la fonction loop (avant l’accolade) :

    // SI FSR supérieur à x
    if (lecture_FSR > x) {
    // Faire qqchose
    }

    // SI FSR inférieure à x
    if (lecture_FSR < x) { // Faire qqchose }