IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Asservissement en courant Arduino


Sujet :

Arduino

  1. #41
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Juste pour mon information et si tu as encore l'oscillo que l'on t'a prêter. Pourrais tu me décrire l'allure du signal issu de VO sur le capteur à effet hall ?

    Merci d'avance.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  2. #42
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 84
    Points : 19
    Points
    19
    Par défaut
    Pas de problème. Je te dis ça demain dans la matinée. Cette aprem je n'ai pas accès au laboratoire malheureusement!

  3. #43
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 84
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Désolé pour le temps d'attente. Le signal VO du capteur est effectivement un signal de type triangulaire et donc alternatif. Même si la tension est toujours supèrieur à 0.
    Du coup, je me retrouve avec un problème finalement...Les mesures reçues ne sont pas bonnes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    void loop()
    {
      if(MyInterval.check() != 1) //Check if the metro has passed its interval
      {
        VoltageValue = analogRead(pinCurrentSensor)*5.0/1023.0;
        //1023 matches with 10-bits available with Arduino UNO. 
        //This is used to do a conversion
        CurrentValue = (VoltageValue - 2.50)/0.185; //0.185 corresponding to the sensitivity of the sensor
        //2,5 matches with the voltage corresponding 0 current
        Serial.print("Current = ");
        Serial.print(CurrentValue, 3); //these function Serial are only used to see what the current sensor provides to the Arduino
        Serial.print("\n");
        if(CurrentValue < 0.300)
        {
          digitalWrite(pinAIN1, LOW);
          digitalWrite(pinAIN2, HIGH);
          //digitalWrite(pinBIN1, HIGH);
          //digitalWrite(pinBIN2, LOW);
          digitalWrite(pinSTDBY, HIGH);
          analogWrite(pinPWMA,90);
          //analogWrite(pinPWMB,50);
        }
        else
       {
          digitalWrite(pinSTDBY, LOW);
       }
      }
    }
     
    Je ne comprends pas pourquoi. En effet, normalement, je devrais avoir correctement calibré mon capteur...

  4. #44
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    C'est bien ce qui me semblait car une tension linéaire m'étonnait fortement.
    Cela s'explique facilement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Tension PWM (état du moteur)
     
           ON
    6V     __                 __
          |  |               |  |
          |  |     OFF       |  |
    0V ___|  |_______________|  |___________
     
     
     
     
    Tension du capteur image du Courant dans le moteur 
    (qui devrait avoir la même allure que le PWM)
     
           ON
    1V     __                 __
          |  |               |  |
          |  |     OFF       |  |
    0V ___|  |_______________|  |___________
    (Dans mon exemple) Un PWM conciste en une alimentation continue avec laquelle on s'amuserait à l'éteindre un long moment, puis la rallumer un court instant, puis l'éteindre un long moment, puis la rallumer un court instant, etc....
    Qu'elle est l'image du courant dans le moteur ? Il est le même : alimentation éteinte = pas de courant, alimenation allumé = courant qui circule etc... et tout ça au rythme du PWM.

    Tu dis qu'a l'oscilloscope le signal est triangulaire.
    Alors à mon avis :
    Soit ton composant réalise une intégration du PWM (ce qui thoriquement donnerait bien un signal triangulaire) Moi je pense que le signal est plutôt une rampe ! Avec un PWM a 50% effectivement c'est un triangle mais avec un PWM à 10% c'est signal en forme de rampe.
    Soit la bande passante de ton capteur est mal configurée du coup tu as un signal avec un temps de réponse mauvais d'où les fronts montant/descendants qui s'inclinent (par manque de bande passante) et qui deviennent triangulaire.

    Peux tu vérifier trois choses avant que je n'aille plus loin.
    1) A l'oscillo est ce bien un triangle ? (Il faudrait que je vois l'allure du signal pour comprendre)
    2) Est ce que tu peux me dire si l'amplitude de VO varie bien en fonction de la vitesse de rotation ?
    3) Peux tu me dire si l'amplitude de VO varie en fonction du couple du moteur (si jamais on créait un effort dessus pour le freiner)
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  5. #45
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 84
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Oui le signal semble bien triangulaire. Après, peux-tu me montrer ce que tu appelles une rampe?
    Mais grosso modo j'ai ça (désolé je n'ai aucun autre moyen pour te montrer le signal...):
    Nom : Sans titre.png
Affichages : 726
Taille : 4,6 Ko

    Concernant l'amplitude:
    Lorsque j'affiche VoltageValue dans mon programme, si j'augmente la vitesse de rotation des moteurs, la tension reçue augmente aussi.
    Lorsque j'augmente le couple moteur (par exemple en essayant de bloquer le moteur avec mes doigts), la tension reçue augmente également.

  6. #46
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Ce que j'appelle une rampe = intégration d'un PWM c'est ça :
    Nom : Rampe.jpg
Affichages : 788
Taille : 23,9 Ko

    Ce n'est pas ce que tu as avec un PWM à 10% ou même 1% ?
    Tu as bien un triangle ?
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  7. #47
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Le signal posté par seraphon91 est vraiment étrange, on dirait du bruit. Quel est son amplitude ?

    Edit : je me demande si le capteur de courant ne possède pas une capa en entrée pour moyenner le signal ? (je n'ai pas lu la datasheet)

  8. #48
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Y a un truc qui ne colle pas ! Ton capteur réagit bien
    J'avais pensé sur le coup à un problème de bande passante ou à une possible intégration de la part du composant mais j'ai l'impression qu'il y a autre chose là dessous.

    Dans la structure interne de ton composant on voit 2 filtres RC en cascade (donc filtre passe bas du second ordre) l'un de ces filtres est réalisé via un condensateur externe (broche 6 du composant). Est ce que tu as câblé ce condensateur externe ? Ou bien est il déjà présent sur le shield du ACS712 ?

    Je me pose la question car une tension d'allure PWM (image du courant dans le moteur) qui passe dans un filtre passe bas du second ordre donnera un signal linéaire égal à la valeur moyenne. Et c'est précisément ce que tu cherches à obtenir. Par contre si le condensateur externe formant un des filtres en cascade n'est pas câblé alors tu as un filtre passe passe bas du premier ordre qui corresponderait plus à l'allure du signal V0 que tu as en ce moment. (en gros un moitié d'intégration par abus de langage)

    [EDIT] Auteur a répondu pendant que j'écrivais et je suis également de cet avis.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  9. #49
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 84
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    @Auteur
    Alors je n'ai rien câblé du tout mise à part les pins VCC, GND et VO ainsi que les deux "connexion" à mettre en série. Donc je suppose que la capa n'est pas câblé avec le reste d'où le signal plus ou moins triangulaire.

    @Auteur, Vincent PETIT:
    Oui cela semble effectivement du bruit. Ce qui est encore plus étrange c'est que l'amplitude est de 4V!!! Ce qui devrait être impossible avec un courant de 300mA!
    Et ce qui est encore plus étrange, c'est que lorsque je lance le programme et que j'ouvre la console, le courant affiché est plus ou moins bon! (à quelques dizaine de mA près).

    Vraiment très étrange tout ça...

    EDIT: Au cas où vous auriez la flemme d'aller voir la datasheet, la bande passant est de 80 kHz.
    Au cas où je n'aurai pas mis la datasheet du composant, là voici: ici

  10. #50
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    - Le condo sur la pin 6 du capteur est présent ? Dans la datasheet elle est de 1nF pour l'application typique.

    - Tu n'as pas d'ampli op sur le shield capteur ? Un peu comme sur la page 12 de la doc (application 3) ?
    Lorsque je regarde la doc constructeur j'ai l'impression que la sensibilité est de 185mV par A.
    Si ton moteur consomme 300mA x 185mV alors VO = 55mV ce qui est très peu par rapport au bruit.


    Est ce que tu as la possibilité de mettre un capa de 1nF sur la Pin 6 et de refaire un essai de mesure ?
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  11. #51
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 84
    Points : 19
    Points
    19
    Par défaut
    N'ayant pas accès au labo cet après-midi, je ne peux vous répondre avec exactitude.

    En revanche je peux vous dire que je ne possède actuellement pas d'ampliOP. Je confirme que la sensibilité est de 185mV/A.
    Donc effectivement comparé au bruit c'est très peu...Devrais-je prendre un capteur plus précis?

    Je demanderais demain matin si je peux avoir du matériel supplémentaire.

    Mon capteur ressemble à ça. Je ne vois pas de pin 6...

    Nom : 41iVhZamLvL._SY300_.jpg
Affichages : 647
Taille : 11,8 Ko

  12. #52
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Ok. Au vu d'autre photo que j'ai trouvé sur le net, je dirai que C2 est bien la fameuse capa de filtrage pour le bruit.

    Alors ce que me gêne c'est que tu mesures 4V d'amplitude sur ton signal VO alors que d'après la datasheet et comme tu l'as dit, à juste titre également, c'est impossible :

    Pour 5A (le maxi de ton composant par exemple pour un moteur tournant en sens horaire) :
    0.185V (sensibilité typique) * 5A (max du composant) = 0.925V
    0.925V + 2.5V (car 2.5V c'est la tension de référence pour 0A) = 3.425V max sur VO

    Pour 0A (à vide)
    0.185V (sensibilité typique) * 0A (à vide) = 0.000V
    0.000V + 2.5V (car 2.5V c'est la tension de référence pour 0A) = 2.5V sur VO

    Pour -5A (le maxi de ton composant par exemple pour un moteur tournant en sens antihoraire) :
    0.185V (sensibilité typique) * -5A (max du composant) = -0.925V
    -0.925V + 2.5V (car 2.5V c'est la tension de référence pour 0A) = 1.575V max sur VO


    Afin de trouver ce qui se passe :
    Peux tu faire un essai de mesure de VO avec le moteur connecté mais à l'arrêt (normalement tu devrais avoir 2.5V sur VO en tension continue car 0A dans le moteur)
    Si il y a beaucoup de bruit alors il se peut que tu vois sur l'oscillo du bruit autour de la tension de 2.5V. Attention il est très dur d'interprêter le 2.5V au travers du bruit car ça ressemble souvent à un triangle comme ton dessin.
    Il nous faudrait l'axe 0 de l'oscillo car son ton dessin on ne sait pas si ce signal a une composante continue. A défaut de pouvoir le dessiner tu peux aussi nous donner les valeurs : crête/crête, crête donc amplitude, la composante continue.

    A demain
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  13. #53
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    J'aimerais que tu réalises en plus un autre petit test :
    - branche directement ton moteur sur ton alimentation et visualise cette tension.
    - connecte l'entrée de ton capteur sur ton moteur puis la sortie sur l'oscillo

    Si mes souvenirs sont bons ton alimentation affiche la tension et le courant débité. Indique nous ces valeurs.
    Indique nous la tension affichée par ton capteur.

    Citation Envoyé par seraphon91
    Au cas où vous auriez la flemme d'aller voir la datasheet,
    Ce n'est pas de la flemme. J'ai simplement pas beaucoup de temps à consacrer à ton sujet.

  14. #54
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 84
    Points : 19
    Points
    19
    Par défaut
    @Auteur:
    Comme je l'ai dis à Vincent, je ferai ces tests demain.

    "Ce n'est pas de la flemme. J'ai simplement pas beaucoup de temps à consacrer à ton sujet. "

    Vous me consacrez bien plus de temps que je n'oserais en demander Je vous remercie grandement pour toute l'aide. Ce n'était pas de la provocation. Désolé pour la maladresse du message.

  15. #55
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par seraphon91 Voir le message
    Comme je l'ai dis à Vincent, je ferai ces tests demain.
    Pas de souci, il n'y a pas d'urgence.

    Citation Envoyé par seraphon91 Voir le message
    Désolé pour la maladresse du message.
    il n'y a pas de mal Je continue à regarder ton problème.

  16. #56
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 84
    Points : 19
    Points
    19
    Par défaut
    Bonjour Bonjour,

    Après avoir regardé attentivement, mon oscilloscope était mal configuré je pense...
    Je l'ai donc configuré à nouveau. J'ai donc effectué des mesures pour les valeurs PWM suivante: 0, 20 et 200. A charge vide puis en augmentant la charge (à l'aide de mes doigts).
    Résultat, j'ai à chaque fois un signal continue droit (simplement une droite affichée) de valeur 2,73V à vide et un peu plus élevé lorsque j'augmente suffisamment la charge. Je pense que le bruit est trop élevé au regard du courant traversant le moteur. En effet, à vide, et pour un PWM fixé à 200, le courant est de 120 mA. Ce qui ne représente une variation de tension que de 19mV à peu près...

    Je pense que le capteur n'est tout simplement pas adapté à l'application étant donné qu'il est extrêmement rare que mon courant dépasse 1A dans UN moteur de la prothèse de main.
    Que pensez-vous?

    Je précise que j'ai branché mon oscilloscope de la manière suivante: la broche positive fixé sur VO tandis que la broche négative est branché sur le GND de l'Arduino.
    Dites moi si cela n'est pas correcte s'il vous plaît.

    @Auteur:
    Lorsque je branche directement mon moteur au générateur et que je regarde le signal sur l'oscilloscope, je constate que le signal est sinusoidal d'amplitude 6V.

  17. #57
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Salut,
    Oui le capteur n'est pas adapté et ça plage de mesure est beaucoup trop grande. De plus la doc indique qu'il est optimisé à 5A, en gros le capteur est efficace plus vers ses limites que quand on le chatouille.

    Si je résume :
    Quelle tension VO pour le moteur connecté mais éteind ? Normalement 2.5V
    2.73V à vide donc moteur qui tourne sans charge dessus = 1.24A ça ne colle pas : (2.73V mesure - 2.5V reference) / 0.185V/A sensibilité
    ou bien c'est que tu as du bruit à mort mais 200mV de bruit ce n'est plus du bruit ça...

    Pour voir le bruit à vide, tu mets ton oscillo sur AC (ce qui va supprimer la composante continue), donc le signal "continue droit" va tomber a 0. Par contre seule la composante alternative va apparaître donc le bruit que tu peux amplifier via le réglage de ton oscillo pour afinner la mesure.
    En réalité c'est le même principe quand tu veux derterminer le ripple (la stabilité) d'une alimentation et ainsi voir si admettons ton +2.5V ne fait pas en réalité +2.3V, +2.7V en oscillant au rythme du "choppeur" dans ton composant (voir dans la datasheet).
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  18. #58
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 84
    Points : 19
    Points
    19
    Par défaut
    Je vois. Merci beaucoup pour votre aide.

    Le technicien du laboratoire m'a proposé une idée dont je n'ai pas très très bien compris. Peut être que vous la comprendrez.
    Il m'a proposé d'utiliser une résistance ainsi qu'un filtre passe bas connecté sur le EDGE (je crois que c'est ça). Et ainsi mesuré directement sur A0 le courant dans le circuit.
    N'ayant absolument rien compris (en espagnol s'il vous plait XD). Auriez-vous une idée de quoi il parlait exactement?


    Par avance merci.

  19. #59
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut Erreur de calcul, désolé
    Je pense qu'il te dirige vers une solution de type "mesure aux bornes d'une résistance de shunt".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Mesure a base de shunt
     
    					+--------+
             +6V 				|	 |
    (haché au rythme du PWM) ---------------> MOTEUR <------+
                 				|	 |	|
    					+--------+	|
    							|
    							|
    					Rshunt		|
    			+---------------/\/\/\--+-------+
    			|			^
    			|			|
    		       GND			|
    					       ADC
    					     Arduino
    Ce type de mesure est bien car c'est simplement la loi d'ohm qui s'applique sur Rshunt.
    Tension sur ADC = Courant dans le moteur x Valeur de Rshunt.

    Sauf que !!!
    Ça fonctionne bien avec des faibles courants, tu vas vite comprendre par un petite démonstration.

    Exemple :
    On va dire courant max dans le moteur = 0.5A
    On va dire Rshunt = 1 Ohm
    On va dire tension moteur = 6V
    Chute de tension dans Rshunt (U=RxI) = 1 x 0.5 = 0.5V. En clair ça veut dire que pour un courant de 500mA dans le moteur tu vas lire 500mV aux bornes de Rshunt mais ces 500mV tu peux les retirer de la tension du moteur qui sera alimenté non plus en 6V mais en 5.5V.
    Puissance qui va passer dans la résistance Rshunt (P=UxI) = 0.5 x 0.5 = 1/4W. Bon déjà là on est au taquet d'une résistance tout ce qui a de plus banale !!!!.

    Voir la loi des mailles ci dessous.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    	   ---------------------+
    	^			|
    	|		    +---+----+	^
            |		    |	     |	|
    	|		    > MOTEUR <	| 5.5V
            |              	    |	     |	|
    	|		    +---+----+	|
    	|			|
        +6V	|			|
    	|		       +-+	^
       	|		       | |	|
    	|		 Rshunt| |	| 0.5V
    	|		       | |	|
    	|		       +-+	|
     	|			|
    	   ---------------------+
    Mais c'est pas tout !
    Ton moteur n'est pas du tout câblé comme je viens de le faire dans mon exemple (qui a pour but d'expliquer une mesure par shunt.) Toi ton moteur passe par un driver qui a un pont en H (bridge de transistor MOSFET) qui sont capables de part le configuration, d'inverser le GND avec le +6V pour faire tourner le moteur dans l'autre sens. Ce qui implique que dans un sens tu liras 500mV sur l'ADC de l'ARDUINO pour 500mA consommés par le moteur et quand tu fera tourner le moteur dans l'autre sens tu liras 5.5V sur l'ADC de l'ARDUINO pour toujours 500mA consommés par le moteur. Ca commence à faire compliqué tout ça ! Mais surtout plus le courant va monter dans le moteur et plus la chute de tension aux bornes du moteur (directement liée par la chute de tension dans Rshunt) va être importante donc perte de couple voir plus rien ne marche du tout !!!

    ps : Pourquoi le gars te parle d'un passe bas ? Parce qu'il a poussé la réflexion, il sait que la tension aux bornes de Rshunt aura l'image du 6V haché par le PWM (tu aurais 0.5V mais sur un oscillo on verrait qu'il est la copie conforme du PWM) et le filtre passe bas t'aurai permis d'en extraire la valeur moyenne. Et.................... il se serait trompé car toi tu veux la valeur instantanée du courant et non une valeur moyenne.

    Ce que j'appelle valeur moyenne dans mon exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    PWM à 10% @ F=100kHz, Imot=500mA, Vmot=6V, Rshunt=1Ohm
     
    500mV__|    ___                      ___
           |   |XXX|                    |   |
           |   |XXX|                    |   |
    0V   __|___|XXX|____________________|   |___
           |   '   '                    '
               '   '                    '
               '<->'                    '
               '1ms                     '
               '                        '
               '<---------- T --------->'
    	         T = 1/F = 10ms
     
     
    Vmoyen = Aire sous la courbe (modélisée par les X) / Période T     [pour un signal quelconque]
    Vmoyen = 50mV 
    Nous aurions pu aussi faire 10% de 500mV = 50mV car nous savons que c'est du PWM
    Or dans le démonstration en bleue on avait bien trouvé 500mV pour 500mA alors qu'un filtre passe bas t'aurai donné 50mV pour 0.5A !!!

    Non, non, au vu des puissances en jeu, il faut rester sur un capteur a effet hall.
    Je te laisse le soin de traduire ça en Espagnol


    Dans un de mes postes, j'avais écrit que tu cherchais une valeur moyenne. Je me suis trompé et j'en suis désolé.
    Je viens de m'en rendre compte en écrivant ce poste.
    Je commence a comprendre comment fonctionne ce capteur à effet hall et les filtres passe bas en interne n'ont pas le rôle que j'avais imaginé au départ.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  20. #60
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 84
    Points : 19
    Points
    19
    Par défaut
    Je vois...C'est donc le parfait moment pour finir mon stage (je finis ce vendredi).
    Salut les espagnols je vous laisse avec cette merde moi je me barre XD.

    Non plus sérieusement, du coup, la résistance de Shunt n'est pas une solution adapté sauf si on a des courants inférieur à 300-400 mA. C'est bien ça?

    Parce que actuellement pour un moteur, j'ai effectivement entre 120 et 400mA suivant la charge et la vitesse appliqués.
    Cependant, la question qu'il faudra alors se poser c'est qu'est ce qu'on veut mesurer au final dans la prothèse de main. Veut-on mesurer le courant dans chaque moteur ou bien le courant dans son ensemble?

    Simple question pour être sur que j'ai bien compris, si je souhaite utiliser cette "technique", je dois brancher ma résistance en série avec le moteur (donc à savoir entre le pin AO1 et le moteur par exemple)? Dans ce cas, pour envoyer l'information directement à l'Arduino, je dois brancher GND sur le - de la résistance et le + sur A0?
    J'avoue ne pas avoir très bien compris comment je pouvais connecté le tout sur un pin analogique...

    Du coup, comme tu l'as fais remarqué, je dois rester sur un capteur à effet Hall. Seulement, je devrais prendre un capteur plus précis que celui que je possède actuellement. C'est bien cela?

    Dans tous les cas, merci beaucoup pour ton explication qui soit dit en passant était très clair (même si il reste quelques points sombres pour moi ^^)!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Réponses: 24
    Dernier message: 13/04/2013, 17h51
  2. Date courante
    Par missllyss dans le forum SQL
    Réponses: 5
    Dernier message: 29/08/2003, 11h09
  3. Exécuter la classe courante ??
    Par sami_c dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 17/03/2003, 17h47
  4. repertoire courant
    Par mobee dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2002, 13h03
  5. [VB6] [Système] Tuer un processus courant
    Par mdoyer dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 22/10/2002, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo