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 :

Contrôle de deux moteurs DC à l'aide d'une carte arduino et d'un driver


Sujet :

Arduino

  1. #41
    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
    Pardon, c'est mon erreur. J'ai mesuré aux bornes de AO1 et AO2. C'est là où je n'avais pas de voltage.
    Au contraire, sur les pins AIN1 j'ai 5V et AIN2 0V (donc comme tout à fait normal par rapport au programme).

  2. #42
    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, met ton PWM à 127 (50%).
    Mesure directement sur la sortie de l'arduino.
    Mesure sur l'entrée PWMA ou B (tout dépend du cablage)


    Tu devrais avoir environ 2,5V. Je cherche à savoir si tu as bien câblé (où fil cassé, ou mal connecté)

    En fait il faut y aller par étape du début à la fin. Tu mesures à la sortie du Arduino et de l'autre côté, c'est à dire sur les entrées du module pour être sûr de trouver les mêmes valeurs.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  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
    ça marche. Je vous fournis les résultats demain matin vers 10h-10h30.

    De nouveau merci.

  4. #44
    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
    Après avoir relis les différents postes sur le forum, j'ai constaté que j'avais déjà mesuré les pins PWMA et PWMB ainsi que les pins contrôlant le sens de rotation des moteurs.
    Tout était okay. Je vais tout de même refaire les mesures au cas où.

    EDIT: Je viens de refaire les mesures. Tous les pins de l'Arduino sont okay. J'ai le voltage qu'il me faut.

    Simple question: Je dois bien avoir 5V sur le pin STDBY (lorsqu'il est en état haut)?

  5. #45
    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
    Oui STBY doit être à 5V pour que ça marche d'après la doc.

    Tu veux dire qu'avec un PWM à 50% tu as 2.5V sur ton pwm en sortir de Arduino, 2.5V sur PWMA du module et 0V entre AO1 et GND ?
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  6. #46
    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
    Oui c'est exactement cela. Je précise que de nouveau j'ai branché les pins VCC et VMOT au 5V de l'Arduino tout en prenant la précaution de remplacer les moteurs par des multimètres.

    C'est vraiment très bizarre.

  7. #47
    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
    Je viens de penser à une chose au sujet des transistors MOS dans le driver. D'un coup je suis moins sur que ce soit une bonne idée de faire un test sans le moteur car les transistors fonctionnent à vide et sans charges je me demande si ça fonctionne tout court ! Si nous avions eu des transistors bipolaires là sans charge c'est sur que rien ne marche et pour un MOS je pense qu'il faut quand même une petite charge.

    Je voudrai que tu remplacés le moteur par une résistance de 1k par exemple (ça fait 5mA et l'alimentation du Arduino les fournira)

    Peux tu faire un test avec un seul PWM relié sur PWMA et la résistance à la place du moteur correspondant ? Il suffira de mesurer aux bornes de la résistance.

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

  8. #48
    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,

    Très bonne remarque!!! Je n'y aurais jamais pensé. Je vais voir si je peux disposer d'une résistance de 1k mais à priori, il ne devrait pas y avoir de soucis.

    Je pense pouvoir faire les tests demain. Je vous tiens le plus rapidement possible au courant.

  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,

    Comme convenu, j'ai remplacé cette fois-ci les moteurs par des résistances de 1k. De nouveau, je trouve des résultats pour le moins étranges.
    Lorsque je place mon multimètre sur les pins AO1/AO2 ainsi que BO1/BO2, je n'ai aucune tension.
    En revanche, lorsque je place mon multimètre entre AO1 et GND du driver j'obtiens 0,5V. De même pour AO2. Par contre, lorsque j'essaye de faire la mesure avec BO1 et BO2, j'ai 0V.

    Je ne comprends absolument rien. J'ai essayé de modifier mon code afin de faire "tourner un seul moteur" mais les résultats sont similaires...

    Je vais tenter de changer de board pour voir si le problème ne proviendrait pas de là.

  10. #50
    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 viens de refaire les même tests mais en changeant de cables ainsi que le board.

    Maintenant, j'ai 5V entre GND et AO1, AO2, BO1, BO2. Par contre, j'ai toujours 0V quand je place mon voltmètre sur AO1/AO2. Est-ce bien normal?

    Si cela est normal, alors c'était bien les cables et/ou le board....

  11. #51
    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 c'est déjà plus rassurant
    Citation Envoyé par seraphon91 Voir le message
    Maintenant, j'ai 5V entre GND et AO1, AO2, BO1, BO2.
    Avec un PWM a 50% ?????? Je m'attendais à moins que ça mais après tout dépend de la bande passante du multimètre. Si le PWM va trop vite (en Hertz) et que le mutlitmètre a une bande passante largement inférieure alors il se peut qu'avec un PWM de 50% tu ne trouves pas 50% de 5V. C'est quand même étrange

    Citation Envoyé par seraphon91 Voir le message
    Par contre, j'ai toujours 0V quand je place mon voltmètre sur AO1/AO2. Est-ce bien normal?
    Oui par contre ça c'est normal. Un voltmètre mesure une différence de potentielle et si AO1 et AO2 sont à 5V alors 5V - 5V = 0V.

    Dit m'en un peu plus sur le PWM, le programme test envoi quel rapport cyclique ?
    Comment sont tes entrées AIN ? On dirait que tu es en mode STOP là.

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

  12. #52
    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
    Voila ce que j'ai mis dans ma boucle loop de mon programme:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       digitalWrite(pinAIN1,LOW);
       digitalWrite(pinAIN2,HIGH);
       digitalWrite(pinBIN1, LOW);
       digitalWrite(pinBIN2, HIGH);
       digitalWrite(pinSTBY, HIGH);
       analogWrite(pinPWMA,127);
       analogWrite(pinPWMB,127);
    Donc normalement je devrais tourner à 50%. Cependant, n'était pas des moteurs mais des résistances, cela est peut etre normal finalement d'avoir 5V et non 2,5V non?
    Avec ce code, j'obtiens 2,5V sur PWMA et B, 5V sur les pins AI2 et BIN2 et 0V pour les autres pins de controles.
    A priori, je ne devrais pas être en mode stop étant donné que j'ai 0V sur le pin STDBY.

  13. #53
    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 le code est bon.
    Tu as bien 5V sur STDBY ? Et non 0V comme tu as écrit ?
    STDBY doit obligatoirement être a +5V et si tu ne les as pas n'hésite a pas a mettre directement un fil entre le 5V et la broche STDBY (sans passer par Arduino, pour débuger c'est mieux)

    Peux tu me confirmer la valeur du STDBY ? 0V ou 5V ?

    Le fait d'avoir remplacer le moteur par une résistance importe peu dans les mesures
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  14. #54
    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
    Dans ton driver il n'y a que des MSOFET en sortie donc si tu as 2.5V en entrée sur PWMA alors tu dois forcément avoir 2.5V sur les sorties AO1 et AO2.

    - Fait une mesure entre AO1 et AO2 (sur la résistance)
    - Fait une mesure entre AO1 et GND
    - Fait une mesure entre AO2 et GND

    Et poste le résultat stp.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  15. #55
    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
    Oui c'est bien 5V sur STDBY.

    voici les résultats que vous me demandiez:

    Entre AO1 et AO2: 0V
    Entre AO1 et GND: 4,97V
    Entre AO2 et GND: 4,97V

    EDIT: Dans mon code, j'ai voulu changer mon pwma à 0 au lieu de 127 afin de voir si j'avais bien 0V. Résultat, non je n'ai pas 0V, j'ai toujours 5V...

    EDIT2: Je précise que j'ai relié VMOT directement à VCC afin de faire les tests. Ne serait-ce pas là le 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
    Simple question, dans le code, est-ce normal de faire analogWrite alors que j'utilise une sortie digital (pin 3 et 5 sur Arduino UNO semble etre des pins digitals)?

  17. #57
    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
    Simple question, dans le code, est-ce normal de faire analogWrite alors que j'utilise une sortie digital
    oui. Dans la documentation il est indiqué que tu n'obtiens pas en sortie un signal analogique mais un signal de type PWM (signal carré avec rapport cyclique variable) : https://www.arduino.cc/en/Reference/AnalogWrite
    analogWrite par opposition à digitalWrite où tu envoies soit 0 (LOW) soit 1 (HIGH).

    Par contre, je viens de constater que la fréquence n'est pas la même selon les sorties selon les cas tu as du 490Hz ou du 980Hz.

    Les sorties PWM se distinguent des sorties numériques par un "~' à côté de son numéro. Sur UNO les sorties PWM sont les pins 3, 5, 6, 9, 10, et 11.
    https://www.arduino.cc/en/Main/ArduinoBoardUno
    Ces sorties peuvent être soit TTL (0 ou 5V) soit PWM. Les autres sorties sont des sorties numériques TTL.



    [edit] En fait tu peux convertir facilement un signal PWM en signal analogique en ajoutant un filtre passe pas sur ta sortie :
    http://www.sonelec-musique.com/elect...nsion_001.html

    [/edit]

  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
    D'accord.
    Donc a priori, ce serait la fréquence qui ne serait pas bon? Il est donc impossible de contrôler mes moteurs en vitesse mais seulement en sens de rotation?

    Sinon, comment puis-je réaliser le contrôle?

    Merci par avance.

  19. #59
    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
    @seraphon91 : je regarderai tes résultats dans la soirée.

  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
    D'accord. Je vous en remercie par avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Logiciel pour avoir la TV à l'aide d'une Carte TV
    Par rolls dans le forum Composants
    Réponses: 2
    Dernier message: 10/12/2008, 16h38
  2. Aide pour une requete, deux table, un champ commun.
    Par Space Cowboy dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/03/2007, 10h59
  3. Réponses: 5
    Dernier message: 29/01/2007, 09h16
  4. Deux moteurs interbase pour une seule base ?
    Par Yurck dans le forum InterBase
    Réponses: 11
    Dernier message: 21/09/2006, 15h45
  5. Réponses: 12
    Dernier message: 03/01/2006, 20h33

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