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).
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).
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
ça marche. Je vous fournis les résultats demain matin vers 10h-10h30.
De nouveau merci.
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)?
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
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.
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
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.
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à.
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....
Ok c'est déjà plus rassurant
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
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
Voila ce que j'ai mis dans ma boucle loop de mon programme:
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?
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);
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.
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
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
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?
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)?
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/AnalogWriteEnvoyé par seraphon91
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]
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.
@seraphon91 : je regarderai tes résultats dans la soirée.
D'accord. Je vous en remercie par avance.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager