bonjour
j'aimerai commander un moteur dc en utilisant le L6203, ma question est la suivante:
les broches IN1 et IN2 comment les commander via arduino pour faire tourné mon moteur dans les deux sens?
merci d'avance![]()
-----
bonjour
j'aimerai commander un moteur dc en utilisant le L6203, ma question est la suivante:
les broches IN1 et IN2 comment les commander via arduino pour faire tourné mon moteur dans les deux sens?
merci d'avance![]()
"The L6203 motor controller has two input pins for feeding the pulse-width modulation (PWM) signal. Pin 5 labelled “In 1” is for feeding the PWM signal, whilst pin 7 labelled “In 2” is for selecting the direction of rotation of the motor shaft. This signal is simply logic 1 for forward and logic 0 for reverse.
The maximum commutation frequency of this IC is 100 kHz; however, for inductive loads the value of around 30 kHz works best."
Je ne suis pas connaisseur du L6203 mais connecter ces pins à 2 I/O de l'arduino ne fonctionne pas?
Dernière modification par Teknic ; 26/01/2016 à 19h37.
je pensais qu'il fallait les commander à tour de rôle, c'est à dire: 0 pour pin IN1 et 5 pour IN2 pour le faire tourné dans un sens et le contraire pour le faire tourner en sens inverse
Je n'ai pas l'impression mais ça reste à confirmer.
En tout cas il est dit sur le datasheet que les entrées in1 et 2 sont prévues pour être pilotées directement depuis un microcontrôleur.
Bonjour,
http://www.farnell.com/datasheets/1696819.pdf
Si tu ne veux pas comprendre le schéma interne, la table 1, page 10, te donne l'état des sorties en fonction de l'état des entrées.
Pour faire tourner le moteur, il faut avoir {Sink 1 , Source 2} ou {Sink 2 , Source 1}. Ce qui correspond aux 2e et 3e lignes de la table. Il faut donc que in1 et in2 soit opposés et que enable soit à 1.
Une tension comprise entre 2V et 7V sera lue comme un 1 par le L6203.
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
et pour utiliser la PWM alors? comment je peux faire?
Bonjour,
comme indiqué par Teknic : tu connecte in1 et in2 à ton arduino, tu appliques le PWM sur in1 et l'état de in2 détermine le sens de rotation.
Un détail cependant : si tu envoies un PWM de rapport cyclique 80% sur in1 et un état haut sur in2, le moteur va tourner "vite" dans un sens. Mais pour que le moteur tourne aussi vite dans l'autre sens, il faut envoyer un rapport cyclique de 20% sur in1 et un état bas sur in2.
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
donc si je comprend bien:
pour faire tourner le moteur dans les 2 sens:
-j'applique 0 sur IN1 et 1 sur IN2, ou l'inverse pour le faire tourner dans l'autre sens.
-si j'utilise la PWM, je l'applique sur IN1 et la broche IN2 déterminera le sens de rotation du moteur.
c'est bien sa?
Bonjour,
Oui.
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
merci beaucoup
un dernier truc SVP, je voie qu'il faut ajouter des condensateurs, pouvez vous m'informer sur l'ensemble du circuit (que dois je ajouter)?
Bonjour,
je te laisse étudier la datasheet (en particulier les pages 11 et 12) et nous donner tes conclusions, on te dira ce qu'il en est![]()
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
bonjour
je vais vous dire ce que je dois faire, et vous me corrigerez si je me trompe
je relis un condensateur de 100nF entre le Vs et la masse.
un condensateur de 220 nF entre Vref et la masse.
deux condensateur 15 nF entre les sortis et les boost avec des diodes reliées à la masse.
je relis un condensateur de 22nF en série avec une résistance de 10 ohm en parallèle avec le moteur (la résistance est elle indispensable?).
je relis IN1 sur une broche PWM de la carte arduino uno (sans rien à ajouter?) pour contrôler la vitesse de mon moteur.
je relis IN2 sur une broche de la carte arduino pour contrôler la direction du moteur (0 ou 1) (sans rien à ajouter?).
merci pour votre patience![]()
![]()
![]()
Bonjour,
Oui pour l'ensemble, avec qq précisions additionnelles :
Si le L6203 est loin de la batterie (plus d'une dizaine de cm de fil), tu peux ajouter un condensateur de 100µF en parallèle de ce 100nF.
Les diodes ne sont pas 100% indispensables.deux condensateur 15 nF entre les sortis et les boost avec des diodes reliées à la masse.
Oui.je relis un condensateur de 22nF en série avec une résistance de 10 ohm en parallèle avec le moteur (la résistance est elle indispensable?).
Tu peux éventuellement ajouter des résistances de 10kOhm entre chaque entrée IN et la masse : ce sont des pull-down (-> google) qui pourront servir si l'arduino est déconnecté ou en reset.je relis IN1 sur une broche PWM de la carte arduino uno (sans rien à ajouter?) pour contrôler la vitesse de mon moteur.
je relis IN2 sur une broche de la carte arduino pour contrôler la direction du moteur (0 ou 1) (sans rien à ajouter?).
Tu peux mettre SENSE directement à la masse ou au travers d'une résistance de puissance (de par exemple R=0.1Ohm) pour mesurer le courant dans le moteur : si la tension aux bornes de cette résistance vaut V, alors le courant dans le moteur vaut I=V/R. Pas indispensable mais peut être pratique.
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
bonjour
merci beaucoup Antoane![]()
![]()
![]()
la résistance de 220nf sur la broche 9, est elle indispensable?
Bonjour,
ce condensateur est recommandé.
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
et pour les condensateur boot j'ai pas trouvé du 15 nf je peux en mettre 22 nf?
Absolument.
15nF est un minimum.
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
pardon![]()
je pose beaucoup trop de question!
pour celle de 220 de la tension de référence sur la broche 9 je peux en mettre une plus grande que 220 nf?
et si oui, jusqu’où je peux aller avec la valeur du condensateur?
et merci beaucoup pour votre patience![]()
Il ne me semble pas y avoir de limite haute, il est quand même préférable d'utiliser un condensateur plastique ou céramique ou tantale, et non un chimique. C'est à dire pas un condensateur cylindrique bleu/gris/noir du genre https://www.google.fr/search?q=elect...UIBigB&dpr=0.9
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
et pour les régulateurs 12v et 5v, c'est déconseillé aussi les condensateurs chimiques?
Bonsoir,
Difficile de juger d'une manière générale, mais c'est souvent le cas : les chimiques ne font pas de bons condensateurs de découplage.
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
merci beaucoup
bonjour
je veux utiliser deux (02) L6203 pour commander deux moteurs, puis je raccorder les deux pin 9 (Vref) sur la même borne d'une sortie 5v d'un régulateur 7805?
Bonjour,
Vref ne doit pas être connecté à une tension externe, c'est leL6203 qui génère la tension de référence.Il faut juste y connecter le condensateur de découplage.
Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.
IN1/IN2 fixe le sens de rotation et on utilise l'entrée EN pour appliquer le PWM.Bonjour,
comme indiqué par Teknic : tu connecte in1 et in2 à ton arduino, tu appliques le PWM sur in1 et l'état de in2 détermine le sens de rotation.
Un détail cependant : si tu envoies un PWM de rapport cyclique 80% sur in1 et un état haut sur in2, le moteur va tourner "vite" dans un sens. Mais pour que le moteur tourne aussi vite dans l'autre sens, il faut envoyer un rapport cyclique de 20% sur in1 et un état bas sur in2.
On peut aussi faire du freinage moteur.
IN1| IN2 | fonction
1 | 0 | CW
0 | 1 | CCW
0 | 0 | freinage
Tout existe, il suffit de le trouver...!