Variation vitesse moteur a courant continu

Bonjour a tous,
J'ai un petit moteur pour vibration (Voltage: 1.5-5v Speed: 8000-24000 Power: 0.01-0.06W Torque: 0.3g.cm-3g.cm (NM)).
Je souhaitait pouvoir varier l'intensité de la vibration en modulant le voltage. Cela fonctionne très bien sur mon alimentation avec une grande plage de 0.5 a 5V.
J'ai acheté un Mini 4-Channel Motor Drive Shield Expansion Board L293D pour transformer les informations PWM de l'Arduino en voltage progressif mais cela ne fonctionne pas du tout !
Le moteur réagit ON / OFF au lieu d'être progressif.
A l'oscilloscope, je retrouve les même créneaux que la sortie PWM... une belle onde rectangulaire avec 0 et VCC...

Bonjour

après interrogation ma boule de cristal me dit que sans le programme on a peu de chance de trouver...

elle ajoute qu'avoir le schéma de câblage serait un plus ....

Bon :slight_smile: OK

les voila :

const int pwm = 10 ; 
const int in_1 = 9 ;

void setup() {
   Serial.begin(115200);
   pinMode(pwm,OUTPUT) ; 
   pinMode(in_1,OUTPUT) ; 
}

void loop() {
   digitalWrite(in_1,HIGH) ;
   for (int i = 0; i < 255; i++){
    analogWrite(pwm,i) ;
    Serial.println(i); 
    delay(100);
    }
}

Rien de bien complexe...
et la sortie a l'oscillo

Manque les diodes de roue libre. Voir datasheet du L293. Commencer par les mettre avant de vouloir tester du logiciel. Et prendre des diodes à temps de recouvrement inverse faible, pour éviter les parasites sur les lignes 0v et 5v. Deux capas sur l'alim du module aideraient aussi : une chimique mahousse costaud et une céramique pour éliminer les parasites. Faire du pwm sur un moteur à coté d'un micro-processeur, ça ne s'improvise pas comme brancher une ampoule au plafond.

C'est un L293D qui comporte des diodes de protection.

Faire du pwm sur un moteur à coté d'un micro-processeur, ça ne s'improvise pas comme brancher une ampoule au plafond.

Quand un moteur, même petit, est alimenté directement sur le 5V du microcontrôleur on n'est pas à une perturbation près.

C'est vrai quoi ça marche !

Le jour où le micro fera autre chose, et le fera mal, on en reparlera.

kamill:
C'est un L293D qui comporte des diodes de protection.

Je ne crois pas, du moins si je sais encore lire une data-sheet.

68tjs:
Quand un moteur, même petit, est alimenté directement sur le 5V du microcontrôleur on n'est pas à une perturbation près.

C'est vrai quoi ça marche !

Le jour où le micro fera autre chose, et le fera mal, on en reparlera.

On a deux solutions pour faire ça avec un petit moteur.

  • Filtrer le pwm (capa+résistance pour faire simple) et derrière mettre un ampli analogique. Pas de souci de parasitage.
  • Utiliser un pont en H commandé en PWM, comme sur le schéma montré. Gros souci de parasitage si on ne met ni diodes de roue libre ni réserve d'énergie suffisante (les capas de la carte me semblent un peu petites par rapport à la taille du moteur), ni capa de filtrage rapide (céramique) pour écluser les pointes de tensions. NB, plus les diodes de roue libre ont un trr important, plus le pont en H ramène de la merdouille sur les alims.
    Donc dire que "ça marchera toujours" à un newbie sur ce type d'application me parait l'envoyer dans le mur. Enfin, c'est mon point de vue, appuyé sur des lustres d'expérience dans ce domaine.

JiPe38:
Je ne crois pas, du moins si je sais encore lire une data-sheet.

Je parle du L293D (celui qui est sur la carte de orcad)
Extrait de la datasheet

l293.pdf (342 KB)

Donc dire que "ça marchera toujours" à un newbie sur ce type d'application me parait l'envoyer dans le mur.

Eh, c'était du second degrés !
Il me semble avoir écrit :

Le jour où le micro fera autre chose, et le fera mal, on en reparlera.

Bien sûr que je suis totalement opposé à alimenter un moteur, générateur de parasites, sur le Vcc qui doit rester propre.
De même je suis opposé à tirer du courant sur une sortie de micro même si on "peut" aller jusqu'à 20 mA sous certaines (très strictes) conditions avec un avr.

kamill:
Je parle du L293D (celui qui est sur la carte de orcad)
Extrait de la datasheet

Ah autant pour moi, il y a un D et des diodes de roue libre intégrées. OK sur ce point.
Autre chose, puisque le moteur est branché entre A- et A+, on a besoin des deux demi ponts correspondants, et donc il faut brancher l'entrée IN2. A moins que sur le L293D ou encore sur la carte en question il y ait un mode où la liaison IN1 IN2 soit faite en interne.

J'avais pas capté le 2nd degré :slight_smile:
Encore autre chose, pour que le pwm soit efficace, que le moteur ne siffle pas, que le machin ne perturbe pas toutes les télés du voisinage, il vaut mieux travailler à une fréquence de découpage élevée. Vu la taille du moteur, 20 kHz me parait un minimum. Penser aussi à torsader les fils d'alim et les fils d'alimentation du moteur pour diminuer le rayonnement, voire à utiliser du cable avec écran.

Bon, vous m'avez perdu là...
Moi je partait seulement de cet article en pensant "bêtement" que la vitesse du moteur suivrait la valeur envoyée sur PWM mais ce n'est pas du tout ce qui c'est passé...
Mon moteur démarre d'un seul coup a fond sans l'effet progressif observé quand je l'alimente depuis une alimentation "de labo" sur sa plage de voltage.

A vérifier que dans le boitier il n'y a pas d’électronique qui asservit la vitesse du moteur. Le tube me paraît bien long pour un moteur. Pour voir cela plusieurs indices possible:

| mesure | | si c'est un moteur pur et dur | | Si il y a une carte électronique |
| - | - | - |
| Mesure de la résistance à l'ohmmètre | | même valeur dans les deux sens | | valeur différente dans les deux sens |
| Résistance si on le fait tourner à la main | | variable | | fixe |
| Branchement à l'envers | | tourne à l'envers | | ne tourne pas ou ne change pas de sens |

Moi je ne vois pas d'axe sortir, coté opposé aux connexions. C'est un truc qui vibre ? IL y a un moteur dedans avec un balourd sur l'axe ?

Je me suis basé par erreur sue la deuxième photo et pas sur la première.

Reste quand même la mesure à l'ohmmètre... si tu en as un.

Sinon en l'alimentant dans le bon sens et dans le mauvais (+ sur le bleu) tu doit pouvoir voir le sens du moteur au démarrage. Si le rotor démarre dans un sens, le stator va dans l'autre. si le moteur est suspendu par ses connexions, juste au démarrage, il devrait y avoir un entrainement du corps dans un sens. Après le balourd vient mettre la pagaille.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.