[Programmation] Inclinomètre avec un accéléromètre (Arduino)
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Inclinomètre avec un accéléromètre (Arduino)



  1. #1
    Victor_S

    Question Inclinomètre avec un accéléromètre (Arduino)


    ------

    Bonjour tout le monde !
    Je suis actuellement en terminale S SI. Je souhaite réaliser un capteur d'inclinaison me permettant de mesurer à tout instant le degré d'inclinaison d'une route.
    Je dispose d'un accéléromètre ADXL335 et d'un carte électronique Arduino.


    Le problème est que je ne comprends pas comment "transformer" le signale électrique de l'accéléromètre en une mesure d'angle en degré.

    J'ai déjà essayé avec le programme suivant, celui-ci me donne des résultats qui me semblent faux. J'espère que quelqu'un saura m'aider à finir mon capteur d'inclinaison de la route, merci.


    Code:
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    //on inclue la bibliothèque
    #include <LiquidCrystal.h>         
    
    
    LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
    
    
    float pot1 = A0;
    float pot2 = A1;          
    float x = 0;
    float y = 0;
    
    //Inclinaison de la route
    int I = 0;
    
    
    void setup()
    {   
    // définie les entrées
      pinMode(pot1, INPUT); 
      pinMode(pot2, INPUT); 
    
    //LCD de 16 lignes et 2 colonnes
      lcd.begin(16, 2);
    
    }
    
    
    
    void loop(){ 
      delay(1000);
       
    //Accéléromètre
    //Ax est la valeur de pot1
      float Ax = analogRead(pot1);
    //Ay est la valeur de pot2                      
      float Ay = analogRead(pot2);
      
    //Calcule d'inclinaison de la route          //c'est réellement ici que je bloque. 
      float I;                           
      I = tan(Ax/Ay);                 
    
    
    //LCD
      lcd.setCursor(0,0);
      lcd.print("I=");
      lcd.setCursor(3, 0);
      lcd.print(I);
    
    
    }

    -----
    Dernière modification par Antoane ; 29/04/2016 à 07h48. Motif: Ajout balises [code]

  2. #2
    HAYAC

    Re : Inclinomètre avec un accéléromètre (Arduino)

    Bonjour et bienvenu,

    C'est normal, voici pourquoi :
    http://forums.futura-sciences.com/el...linometre.html

  3. #3
    jiherve

    Re : Inclinomètre avec un accéléromètre (Arduino)

    Bonjour,
    un inclinomètre est un accéléromètre dont on a conditionné les mesures ,en l'absence de toute autre sollicitation extérieure les sorties d'un accéléromètre trois axes ne dépendent que de la gravité, donc l'idée est bonne mais il eut fallu utiliser ATAN pour obtenir un angle à partir des mesures x,y en supposant qu'il n'y ait pas de composante sur l'axe Z!!!
    JR
    l'électronique c'est pas du vaudou!

  4. #4
    HAYAC

    Re : Inclinomètre avec un accéléromètre (Arduino)

    Bonjour JIHERVE,

    Je souhaite réaliser un capteur d'inclinaison me permettant de mesurer à tout instant le degré d'inclinaison d'une route
    Cette phase, sauf mauvaise interprétation de ma part, nous précise que le dit Véhicule équipé se déplace car une route ne change pas d'inclinaison ...
    D’où ma réponse.
    Cordialement,

  5. A voir en vidéo sur Futura
  6. #5
    jiherve

    Re : Inclinomètre avec un accéléromètre (Arduino)

    Re
    tant que le véhicule se déplace à vitesse constante ou avec une faible accélération (nota il faut une F1 pour subir 1g = 10m/s²) un accéléromètre fournira la bonne indication ou pas loin.
    JR
    l'électronique c'est pas du vaudou!

  7. #6
    HAYAC

    Re : Inclinomètre avec un accéléromètre (Arduino)

    Je demande à voir ...
    Mais je ne connais pas tout

  8. #7
    Victor_S

    Re : Inclinomètre avec un accéléromètre (Arduino)

    Bonjour,
    Merci de tous vos retour sur le sujet !
    Mon accéléromètre sera placer sur un vélo pour connaître l'inclinaison de route.
    Je vais essayer avec atan, merci

  9. #8
    Victor_S

    Re : Inclinomètre avec un accéléromètre (Arduino)

    Bonjour,
    Je pense avoir trouvé une solution, j'ai utilisé la fonction map(Valeur min, Valeur max, -90, 90)
    ( Valeur min et max afficher par l'accéléromètre sur l'axe X ).
    Cela pourrait-il fonctionner selon vous?

    Mon professeur de SI m'a aussi dit qu'il faudrait étalonner l'accéléromètre avant chaque utilisation. Mais pourquoi et comment?

  10. #9
    Dynamix

    Re : Inclinomètre avec un accéléromètre (Arduino)

    Salut
    Pour mesurer une inclinaison , il faut une référence horizontale ou verticale .

  11. #10
    jiherve

    Re : Inclinomètre avec un accéléromètre (Arduino)

    bonjour
    si l'axe x est l'axe longitudinal du mobile (normalement horizontal) alors l’accélération qui y est mesurée est proportionnelle au sinus de l'angle de la pente et pour les petits angles grosso modo proportionnelle à cet angle; Mais effectivement pour avoir une mesure absolue il faut étalonner l'accéléromètre , ce qui n'est pas nécessaire si l'on utilise ATAN(ax/az) avec les conventions de la data sheet.http://www.analog.com/media/en/techn...ts/ADXL335.pdf
    JR
    l'électronique c'est pas du vaudou!

  12. #11
    Victor_S

    Re : Inclinomètre avec un accéléromètre (Arduino)

    Bonsoir !
    Désolé de ne pas avoir répondu plus tôt....
    J'ai réussi a créer l'inclinomètre avec mon accéléromètre !
    Pour les curieux voilà le code. Cela fonctionne bien même si je suis certain que la précision pourrais être améliorée.
    Merci à tous pour votre aide
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
    float pot1 = A0;
    float pot2 = A1;

    void setup(){
    pinMode(pot1, INPUT);
    pinMode(pot2, INPUT);
    lcd.begin(16, 2);
    }
    void loop(){
    delay(500);
    float Ax = analogRead(pot1);
    float Ay = analogRead(pot2);


    /*
    Nous utilisons -1000 et 1000 au lieu de -1 et 1 car la fonction map() ne travail qu'avec des nombres entiers.
    268 et 404 sont les valeur de tension de sortie minimale et maximale de l'accéléromètre en x. (de même pour 271 et 406 en y)
    */

    float AX = map(Ax, 268, 404, -1000, 1000);
    float AY = map(Ay, 271, 406, -1000, 1000);
    //*180/PI pour convertir les radians en degré
    float I = atan(AX/AY)*180/PI;

    //Affiche la valeur de l'angle en degré
    Serial.print("I: ");
    Serial.println(I);
    }

Discussions similaires

  1. Différence Gyroscope / Accéléromètre / Inclinomètre ?
    Par alban77 dans le forum Électronique
    Réponses: 7
    Dernier message: 14/05/2016, 11h25
  2. Inclinomètre / Accéléromètre
    Par invite3c8df379 dans le forum Électronique
    Réponses: 3
    Dernier message: 23/01/2013, 11h33
  3. Comment avoir un inclinomètre avec un accéléromètre
    Par invite08fc9639 dans le forum Physique
    Réponses: 8
    Dernier message: 09/06/2009, 17h26
  4. Acceléromètre ==> Inclinometre
    Par iliouk dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 12/02/2009, 17h09
  5. TPE Tale SSi : utliser un accéléromètre en inclinomètre
    Par invitea90f92d5 dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 15/01/2005, 10h42
Découvrez nos comparatifs produits sur l'informatique et les technologies.