Choix du montage pour commander un voyant, un moteur

Sommaire:
      Vous avez dit optimiser?
      Alimentation directement à partir l'Arduino
      Transistor bipolaire genre 2N2222
      Transistor darlington TIP122
      Réseau de transistors darlington ULN2003
      Transistor compound
      Transistor MosFet IRFZ44N
      Ponts en H
      Ponts en H à base de L293D
      Pont en H à base de L298
      Pont en H à base de MosFet
      Comment choisir?

 

Vous avez dit optimiser?

On ne peut pas vraiment optimiser nos circuit, en partie aussi parce que nous ne savons pas tout. J'en découvre encore. Et puis si on pouvait optimiser quoi que ce soit, tout le monde aurait le même orgue, le même poinçon, ... choisirait le même conjoint! Je vais donner des montages, ce sera à vous d'adapter.

La solution va dépendre de pas mal de choses comme:
Est-ce que tu sais souder? As-tu envie de faire un circuit?
Préfères-tu passer beaucoup de temps et d'économiser un euro?
Veux-tu plus ou moins de sécurité?
Quel courant passe dans ton moteur? Quelle tension?
De quelle tension disposes-tu?

De plus, il m'est impossible de trouver dans la doc du microprocesseur les courants des broches de sortie maximum autorisés. Il semblerait (doc Arduino et non pas Atmel) que chaque broche de sortie peut admettre un courant de 40mA maxi, mais que l'on recommande 20mA. La somme des courants ne devraient pas dépasser 100mA suivant les cas. C'est ce chiffre que je retiens par sécurité. On a besoin au maximum de 5 brochesSi l'Arduino commande les moteurs au travers d'une carte spécialisée, tous les courants de sortie d l'Arduino sont faibles et ce n'est pas la peine de calculer les courants maximum; nous serons en dessous de la limite.

Si l'Arduino commande directement les moteurs au travers d'un amplificateur (par exemple d'un darlington), ce dernier peut demander un courant non négligeable à l'Arduino. Mais pour un seul moteur, nous aurons que deux commandes actives en même temps (alimentation deux phases à la fois). Nous avons en principe deux moteurs pas à pas et un moteur ou un électroaimant de poinçon. Nous n'auront besoin que de 5 sorties à fort courant sur l'Arduino.
de l'Arduino qui seront à fort courant. Je peux utiliser jusqu'à 20mA par sortie.

 

Alimentation directement à partir l'Arduino

On peut alimenter des charges directement par l'Arduino si elles ne demandent 20 mA maximum (limités par l'Aduino) et si elles sont alimentées en 5V. C'est bien pour les leds, mais ce n'est pas applicables aux moteurs.

Pour une Led rouge, si elle n'est d'une vieille technologie, 5mA (0,005A) suffisent pour la faire briller. Il faut donc une résistance de 680Ω Pour avoir la valeur de la résistance, on a besoin de la tension à ses bornes et du courant la traversant.
La tension totale (d'alimentation) est de 5V, mais on en perd 1,5V dans la Led (si elle est rouge, mais il faut prendre environ 3V pour une blanche). Aux bornes de la résistance on a donc 5V-1,5V soit 3,5V
R= U / I = 3,5V / 0.005A = 700Ω

On prendra une valeur normalisée proche, 680Ω par exemple
.

Avantages:
- moins cher tu meurs
- alimentation en pont possible (charges bipolaires)
Inconvénients:
- on est limité à 20mA

Quelques possibilités:

On peut alimenter une charge en unipolaire (tension toujours dans le même sens) comme une led. Alimenter un piezo (le truc qui fait du bruit dans les montres, les cartes postales...), c'est moins bien qu'en bipolaire, mais une seule sortie est utilisée (économie).

Pour un piezo, il vaut mieux une alimentation bipolaire (2 pôles, c'est à dire dans un sens ou dans l'autre).

 

Transistor bipolaire genre 2N2222

Petits rappels?Les broches:
    E = Emetteur: c'est la broche qui est mise à la masse
    B = Base: c'est la broche de commande
    C = Collecteur: c'est la broche de puissance

Si aucun courant ne passe dans la base, aucun courant ne passe dans le collecteur. Le transistor est dit bloqué.

Si on fait passer du courant dns la base (entrant) VBE vaut environ 0,6V et cela permet le passage d'un courant β fois plus important dans le collecteur. β, nommé parfois hFE ou h21, est appellé le gain. Il est de l'ordre de 100 pour un transistor signal, 20 pour un transistor de puissance.

Si le courant du collecteur n'arrive pas à β fois le courant de base, c'est que le transistor essaie de tout laisser passer. On dit alors que le transistor est saturé. VCE vaut alors VCE Sat et est de l'ordre de 0,2V pour les courants faibles.

Un transistor NPN se commande en courant: c'est la valeur du courant de base qui détermine son fonctionnement. C'est cala qui fait la difficulté de compréhension.
.

La résistance Rb n'est pas une protection. Elle est obligatoire, elle permet de fixer le courant à sa bonne valeur.

Avec ce montage on peut utiliser des charges jusque environ 400mA. On est limité par la puissance qui est dissipée dans le transistor. Si on prenait un transistor plus puissant, le gain diminuerait et on n'irait pas plus loin.

Pour une charge de 300mA, on prendra Rb=470Ω (normailsée) Rb min se calcule en disant pas plus de 20mA en supposant un état Haut de l'Arduino, une chute de tension dans le transistor de l'ordre de 0,6V
Rb min = 4,4V / 0,02A = 220Ω

Rb max se calcule en disant que le courant I vaut 40 fois le courant dans Ib (40 c'est le gain, appelé aussi hFE, h21, β -dire béta- du transistor pour 300mA). Si le moteur consomme 300mA (0,3A), il faut que Ib vaille au moins 300mA / 40 = 8mA. Rb max = 4,4V / 0,008A = 550Ω

C'est pas la peine de consommer, on prendra plus près de 550Ω. Une valeur normailsée usuelle est 470Ω (510Ω convient aussi)
.

Avantages:
- pas cher, n'importe quel bipolaire peut convenir
- on peut rajouter une diode anti-saturation
Inconvénients:
- on est limité à 300mA
- charges unipolaires seulement

Quelques petites diodes en plus pour l'accompagner:

D1 est une diode de roue libre que l'on doit mettre pour une charge inductive indépendante (tout sauf pour un des deux enroulements d'un moteur pas à pas 5, 6 ou 8 fils). Voir l'article sur les diodes de roues libres.

En plus de la diode, la présence d'une zener permet de diminuer notablement le temps que met l'énergie magnétique à s'évacuer et permet donc d'augmenter la vitesse. Voir l'article sur les diodes de roues libres.

La diode D2 est une diode anti-saturation. Quand le transistor sature, la tension collecteur descend en dessous de la tension de la base. La diode D2 conduit alors, et détourne le courant de base. Le transistor est alors à la limite de la saturation. Le blocage du transistor est plus rapide. Je ne suis pas sûr que l'on y gagne dans les perforeuses. Cette diode n'est pas utilisable avec les montages darlington car le transistor principal ne peut pas saturer (ce sera le problème majeur de ces transistors). Pour la diode, il faut prendre une diode à faible seuil (schottky). Un diode silicium n'aurait aucun effet (elle ne serait jamais conductrice)

Voici les deux diodes de roues libres pour les moteurs pas à pas unipolaires. Voir l'article sur les diodes de roues libres.

 

Transistor darlington TIP122

Cela ressemble au montage précédent vu de l'extérieur (à l'intérieur il y a 2 transistors). On le dessine d'ailleurs souvent comme si c'était un transistor unique. C'est principalement le gain qui passe de 40 à 1000. En choisissant un composant de puissance, on peut augmenter le courant de sortie. Le transistor TIP122 accepte jusqu'à 5A. Mais pour ce courant, la tension de déchet VCESat peut monter jusqu'à 4V. Cela veut dire que pour une charge de 5V/5A il faudrait une alimentation de 9V. On perds la moitié dans le transistor. En plus pour aller à 5A, il faut un radiateur de taille infinie. Pour un radiateur de taille normale compter plutôt 2,5A maximum, et sans radiateur on ne devrait pas dépasser 0,5A.

Pour une charge de 2,5A, on prendra Rb=1000Ω Quelques petites différences:
- la tension de la base passe de 0,6V à 1,2V (il y a deux diodes en série). C'est peu important.
- le gain passe de 40 à 1000. C'est très intéressant.
- la tension de déchet VCEsat passe de 0,3V à 1,1V.
Rb min se calcule en disant pas plus de 20mA en supposant un état Haut de l'Arduino, une chute de tension dans le transistor de l'ordre de 1,2V
Rb min = 3,8V / 0,02A = 190Ω

Rb max se calcule en disant que le courant I vaut 1000 fois le courant dans Ib (hFE=h21=β=1000). Si le moteur consomme 2,5A, il faut que Ib vaille au moins 2,5A / 1000 = 2,5mA. Rb max = 3,8V / 0,0025A = 1500Ω

C'est pas la peine de consommer, on prendra plus près de 1500Ω. on prendra 1000Ω qui est une valeur répandue (on est large dans la fourchette).
.
Pour une charge de 1A, on prendra Rb=2200Ω On diminue le courant dans la charge d'un facteur 2,5, on peut diviser le courant dans la base d'un facteur 2,5, et donc multiplier la valeur de RB par 2,5..

Avantages:
- simple et compréhensible
- on peut tirer 2,5A
Inconvénients:
- pour dépasser 0,5A il faut un radiateur
- circuit plus important
- on ne peut plus rajouter une diode anti-saturation
- la tension perdue sur le transistor importante (au moins 1V et jusqu'à 3V). C'est pas tant la tension qui nous embête, mais la puissance que cela va dissiper.
- charges unipolaires seulement

 

Réseau de transistors darlington ULN2003

Le circuit ULN2003 contient 7 transistors darlingtons tout prêts pour être en sortie des Arduino. Le ULN2803 en contient 8 si cela ne suffisait pas. La résistance de base est intégrée, on branchera le circuit directement en sortie de l'Arduino. Les diodes qui sont en pointillées existent par construction et ne doivent pas être utilisées. Seule D1 peut servir de roue libre. Ce circuit permet un courant de 500mA et une tension de 50V. C'est moins bien qu'avec des TIP122, mais l'encombrement est très réduit.

Dans cette famille, des frères et sœurs existent ULN2001 et ULN2801 (sans la résistance de base), les ULN2002, ULN2802, ULN2004 et ULN2804 pour des tensions d'entrée plus élevées. Pour le 0-5V, on conseille le ULN2003 (7 transistors) ou le ULN2803 (8 transistors).

Avantages:
- montage compact, juste un boîtier pour 8 transistors
- diode de roue libre au + intégrée
Inconvénients:
- on est limité à 500mA
- ce sont des darlingtons (tension résiduelle élevée quand il est passant (1,6V possible)
- charges unipolaires seulement

Quelques montages pour s'inspirer:

Chaque darlington est représenté comme un carré (fonction) avec un 1 dedans (amplificateur) et un petit rond à la sortie (symbole de l'inversion: un état haut en entrée donne un état bas en sortie). On trouve aussi une représentation avec des triangles comme symbole de l'amplificateur, suivi d'un petit rond.

Alimentation pour charges résistives, Leds... On n'a pas besoin de roue libre, il est inutile de brancher le +V (si on le fait ça marche quand même, mais ça fait une piste en plus!). Ici on a 6 leds à alimenter en 50 mA, le montage direct n'est pas possible, on peut prendre le ULN2003 qui a 7 transistors (l'un d'entre eux n'est pas branché).

Ici on veut brancher 8 bobines d'électroaimants. On choisit donc un ULN2803. On utilise les diodes de roues libre internes (pas plus de 500mA!).

On désire alimenter un relais consommant 1A et un moteur pas à pas unipolaire de 400mA. Un ULN2003 avec ses 7 sorties suffit. Comme on en a trop, on peut en brancher 3 ensemble. Cela permet de dépasser les 500mA pour la bobine. On ne peut pas utiliser les diodes de roue libre internes pour ne pas les brancher aussi pour le moteur. On va donc mettre une diode de roue libre pour le relais. Le moteur pas à pas étant unipolaire, il faut des diodes de roues libre côté masse. Voir l'article sur les diodes de roues libres.

Pas de schémas pour les moteurs pas à pas bipolaires. Je le déconseille fortement.

 

Transistor compound

C'est un peu pareil que le darlington, mais la disposition des transistors permet de les saturer. C'est surtout que la tension collecteur/émetteur peut passer en dessous des 1V. Du coup le rendement est trois fois meilleur. Revers de la médaille il faut le faire à composants discrets.

Ce n'était pas facile de mettre deux transistors de polarité différentes sur une même puce, et on si on savait faire des darlingtons, on ne savait pas bien faire des compound économiques. C'est peut être pour cette raison que l'on ne trouvait pas de compound pré-câblés. Aujourd'hui, on saurait les faire, mais curieusement, je n'ai trouvé que des darlington. Dommage.

Penser comme si c'était un darlington. Pour Re, prendre un résistance environ 100 fois plus élevée que la charge (pour un moteur de 5Ω prendre par exemple 470Ω).

Avantages:
- moins de pertes dans le transistor, moins d'échauffement qu'un darlington, donc plus de courant
- on peut tirer 5A, suffisamment pour tous nos moteurs
Inconvénients:
- n'existe pas en un seul boitier comme pour les darlingtons
- charges unipolaires seulement

 

Transistor MosFet IRFZ44N

Petits rappels?Les broches:
    S = Source: c'est la broche qui est mise à la masse
    G = Grille ou gate: c'est la broche de commande
    D = Drain: c'est la broche de puissance

Si la tension de la grille VGS est inférieur à un seuil, le transistor est bloqué

Si la tension de la grille dépasse un seuil, le transistor devient conducteur et si il est saturé (ce qui sera toujours le cas dans nos montages) l'espace Drain-source est assimilable à un résistance RDSon.
.

Le gros intérêt des transistors MosFet c'est leur commande en tension avec des courants d'entrée négligeables. Le IRFZ44N conduit pour une tension de commande VGS d'au moins 4V. Ceci tombe bien car l'Arduino en donne 5V. La commande est directe. On n'a même pas besoin de mettre de résistance comme dans un NPN.

Le deuxième gros intérêt de ces transistors est la résistances à l'état passant. Pour un IRFZ44N, elle est de l'ordre de 0,0175Ω. Même avec un courant de 10A, j'aurais une perte de 0,18V. Le transistor ne va pas chauffer, et va donc admettre des courants nettement plus importants. On va aussi pouvoir se passer de radiateurs. J'ai fais des essais sous 2,5A et les transistors restaient froids.

Pour un IRFZ44N sans radiateur, avec 10A en sortie, il va dissiper U2/R soit environ 1,8W. Il va s'échauffer de 100°C et comme il peut aller jusqu'à 175°C tout va marcher.

La présence de la zener fait que l'on peut se passer de la diode de roue libre pour les charges inductives. Sa valeur est un peu élevée (55V). Dans l'article sur les diodes de roues libres, on voit que si l'on met une zener en série avec la diode de roue libre, on accélère la décroissance du courant. En général, pour une tension de 12V on met une diode de 12V, et la tension monte ainsi à 24V. Avec le IRFZ44N, la tension monte à 60V. C'est une solution. L'avantage de ne pas mettre une diode est que c'est moins cher, que cela fonctionne. L'inconvénient est que l'énergie électromagnétique se dissipera dans la zener interne, c'est à dire dans le transistor. J'ai fais des essais sous 5A maxi (cela fait 2,5A en moyenne). En utilisant la zener interne, le transistor chauffe. Avec une diode de roue libre classique, la puissance se dissipe dans la charge.

La zener est aussi utilisable dans l'autre sens comme diode de roue libre pour les moteurs pas à pas unipolaires, et dans ce cas elle ne chauffera pas.

Avantages:
- très peu de pertes dans le transistor
- on peut tirer 10A sans radiateurs
- on peut ne pas mettre de composants supplémentaires
Inconvénients:
- transistors indépendants, plus encombrants qu'un réseau ULN2003
- charges unipolaires seulement

Quelques montages pour s'inspirer:

C'est le montage classique sur charge résistive, voir même sur charge inductive. En général on ajoute une résistance R entre la grille et la source pour bloquer le transistor si la grille est en l'air, ce qui peut arriver à l'initialisation de la carte. Ce montage est utilisable pour commander le poinçon.

Pour les moteurs pas à pas, je ne mets pas R volontairement car pour nous:
- cela n'arrive qu'à la mise sous tension et à ce moment la grille était à 0V, et du fait de la capacité interne, elle restera à ce potentiel plus longtemps que la phase d'initialisation.
- si on n'avait pas de pot et tout le tralala, une tension ne ferait pas tourner les moteurs pas à pas.

Les essais que j'ai fais, montrent que même pour le poinçon R ne sert à rien.

On peut aussi supprimer la diode.

Pour un moteur pas à pas unipolaire, pour commander une des phases (2 enroulements), on a déjà les diodes de roues libre (les zeners dans le sens diode normale). Voir l'article sur les diodes de roues libres.

Pas de schémas pour les moteurs pas à pas bipolaires. Je le déconseille fortement.

 

Ponts en H

Jusqu'à présent j'ai toujours signalé que l'on ne pouvait pas (facilement) alimenter une charge bipolaireUne charge est bipolaire si on a besoin de l'alimenter dans les deux sens (suivant les deux polarités). C'est le cas des moteurs pas à pas à 4 fils.. On peut bien évidemment le faire avec 4 transistors bien placés, mais l'usage des circuits en ponts m'encourage à vous inciter à utiliser ces circuits. C'est plus simple et moins cher. Nous aurons besoin de ces ponts pour alimenter les moteurs pas à pas 4 fils. On doit aussi l'utiliser pour faire tourner un moteur à courant continu dans les deux sens, mais ce cas ne nous intéressera en principe pas dans le cas des perforeuses.

Un pont en H possède 4 transistors que je modélise pas des interrupteurs. Suivant ceux qui sont passants, on peut alimenter la charge dans un sens, dans l'autre, la mettre en court-circuit ou la déconnecter complètement. Attention T1 et T2 (ou T3 et T4) ne doivent jamais conduire en même temps, cela ferait un court-circuit sur l'alimentation. Avec les ponts tout faits ce n'est pas possible.

Je n'ai pas représenté la commande vue de l'Arduino car cela peut dépendre des circuits; on peut avoir:
- une seule commande si on veut dans un sens ou dans l'autre uniquement (économique en nombre de sorties d'Arduino, mais nécessite un inverseur extérieur.
- deux commandes, l'une pour T1 et T2, l'autre pour T3 et T4. On peut alimenter dans un sens, dans l'autre ou enroulement court-circuité.
- 4 commandes, une pour avoir la sortie en haut ou en bas (entrée), une pour tout bloquer ou non (validation), les deux autres pour l'autre côté du pont. C'est en général la solution usuelle.

Quelques montages pour s'inspirer:

C'est le montage classique pour faire tourner un moteur dans les deux sens (mais pas d'intérêt pour la perforeuse).

On peut avec un demi-pont alimenter un moteur si il ne tourne que dans un seul sens. Ici, j'ai alimenté aussi un relais avec l'autre demi-pont. Les transistors T2 et T4 ne servent à rien, mais des fois c'est plus facile de prendre un pont tout fait que de mettre des composants discrets en plus. Par exemple pour un moteur pas à pas bipolaire, un moteur à courant continu et un électroaimant, il suffit d'utiliser un circuit quadruple pont tout fait (voir la carte à L293D ou L298 plus bas).

Pour un moteur pas à pas bipolaire, il faut deux ponts entiers (souvent un seul circuit intégré).

Pas de schémas pour les moteurs pas à pas unipolaires. Le problème est que les diodes entre les sorties et l'alimentation vont nous gêner. Sur certains circuits à base de L298, si on ne mettait pas les diodes les transistors T2 et T4 se retrouverait parfois à l'envers. On pourrait quand même le faire si on alimente le moteur en 10V et le pont en 30V; c'est pas malin! Il vaut mieux se tourner vers un autre montage.

 

Ponts en H à base de L293D

Le premier pont que je vous présente à base de L293D a l'avantage de s'enclipser directement sur l'Arduino (aucun câblage). Dans la configuration ci-contre à été insérée une carte avec les sorties sur borniers à vis. Très pratique pour y mettre n'importe quoi pendant les essais. Il faut pas mal adapter les broches ou le logiciel (voir le schéma). Ce n'est pas un simple changement de broches.

Caractéristiques (voir le site du constructeur):
- 4 ponts en H (pour 2 moteurs pas à pas bipolaires OU 4 moteurs à courant continu 2 sens de marche OU 8 relais OU certaines combinaisons particulières)
- diodes de protection incluses (le circuit L293 (sans la lettre D) n'en a pas, mais on a vu que pour nous, cela a peu d'intérêt)
- 25V maxi, 600mA maxi
- une librairie adéquate existe

 

Avantages:
- Pas de soudures
- 25V 600mA
- montage en pont tout fait
- moins cher qu'avec des composants discrets
Inconvénients:
- nécessite d'adapter le logiciel
- ne passe que 600mA

 

Pont en H à base de L298

Ce circuit est utilisable directement. Il faut par contre faire un peu de câblage. Mais il fonctionne sans changer le logiciel. Le circuit peut admettre les 45V, mais les condensateurs d'alimentation ne tiennent que 35V. Et c'est pas la peine de les changer, car il y a un régulateur qui ne tient pas plus. Il est indiqué 12V en sérigraphie, mais on peut bien aller jusqu'à 35V. Je l'ai testé sous 24V sans problèmes.

Le circuit possède un régulateur de tension 5V (500mA). Si on n'exagère pas trop, on peut alimenter le circuit en 12V par exemple et alimenter l'Arduino par la sortie 5V de la carte. Le constructeur dit pas plus de 12V dans ce cas, mais sachez que le régulateur est protégé en sur-puissance. J'ai donc essayé de le mette en 24V et d'alimenter l'Arduino avec, cela fonctionne comme les calculs le prévoient.

Caractéristiques:
- 2 ponts en H (pour 1 moteurs pas à pas bipolaires OU 2 moteurs à courant continu 2 sens de marche OU 4 relais OU certaines combinaisons particulières)
- diodes de protection incluses
- on peut mettre le pont en haute impédance (pas utile pour les perforeuses) ou laisser le strap prévu.

Avantages:
- montage en pont tout fait
- faible coût (j'ai payé le mien moins de 2€!)
- 35V, 2A
Inconvénients:
- limité à 2A

 

Pont en H à base de MosFet

Si les circuits tout faits ne nous conviennent pas (courants ou tension trop élevée), il faut se faire soi-même le pont. On peut faire des ponts à transistors bipolaires, mais nous avons vu que les transistors MosFets on pas mal d'avantages, notamment pour les forts courants.

On utilise plus souvent des MosFets canal N car il sont meilleurs. Voici un pont avec 4 MosFets. Cela parait intéressant, mais pour rendre passant le transistor T3, il faut que la tension sur la grille C soit de 5V de plus que sa source qui est déjà à la tension d'alimentation quand il est passant. En gros si le pont est alimenté en 5V, il faut une commande pour C à 10V.

Si l'on remplace les deux transistors du haut par des MosFets canal P (Petits rappels?)Pour un MosFet Canal N (les plus courrants):
Les broches:
    S = Source: c'est la broche qui est mise à la masse
    G = Grille ou gate: c'est la broche de commande
    D = Drain: c'est la broche de puissance

Si la tension de la grille VGS est inférieur à un seuil (4V pour un IRFZ44N), le transistor est bloqué (on dira entre 0V et 4V)

Si la tension de la grille dépasse ce seuil (on dira entre 5V et 20V), le transistor devient conducteur et si il est saturé l'espace Drain-source est assimilable à un résistance RDSon.

Pour un MosFet canal P, il faut tout inverser:

Pour un MosFet Canal N:
Les broches:
    S = Source: c'est la broche qui est mise à l'alimentation
    G = Grille ou gate: c'est la broche de commande
    D = Drain: c'est la broche de puissance

Si la tension de la grille VGS est supérieure à un seuil (-4V pour un IRF4905), le transistor est bloqué (on dira entre 0V et -4V par rapport à la source)

Si la tension de la grille est inférieur à ce seuil (on dira entre -5V et -20V par rapport à la source), le transistor devient conducteur et si il est saturé l'espace Drain-source est assimilable à un résistance RDSon.
, cela va notablement simplifier la commande. Pour bloquer T1, il faut une tension de grille/source nulle (A=0V). On a alors -Alimentation sur la grille de T3 qui va être passant (tension grille/source négative). Si on met l'entrée A à la tension d'alimentation, T1 va être passant (tension grille/source positive) et T3 va se bloquer (tension de grille/source nulle). Tout est pour le mieux! Ce montage avec des couples IRFZ44N/IRF4905 ne fonctionne que jusqu'à 20V car les tensions grille/source ne doivent pas dépasser +/-20V. J'ai essayé sous 24V, cela a fonctionné, mais je n'aurais pas dû le faire et je le déconseille fortement (les transistors peuvent lâcher).

Si les moteurs sont alimentés en 5V, la commande directe par l'Arduino est possible. Le logiciel Perfo fonctionne.

Avantages:
- Peu de composants en plus des transistors
- faible coût
- courants jusqu'à 10A sans problèmes (50A avec un radiateur)
- tension suffisante (limitée par les transistors à 55V avec des IRFZ44N et IRF4905)
- très faible chute de tension dans les transistors
Inconvénients:
- Plus compliqué qu'un pont tout fait

Quelques montages pour s'inspirer:

En fait la première branche du pont est un inverseur. On peut donc l'utiliser pour inverser le signal pour la deuxième branche. J'ai fais les essais sous 5V et 12V. Du coup, on n'a plus besoin que d'une commande issu de l'Arduino. Avec le logiciel Perfo, cela doit fonctionner, il suffit d'ignorer une des deux broches (si le moteur tourne dans le mauvais sens, on peut inverser une bobine ou changer de broche de commande).

Ce montage est peu utilisé en général car on ne peut pas alimenter le moteur sous 0V ou le laisser "en l'air". Mais dans le cas des pas à pas de la perforeuse, cela n'arrive pas. Ce montage est donc utilisable pour les perforeuses.

Pour une tension d'alimentation des moteurs entre 5 et 20V, on ne peut plus alimenter directement les transistors à partir de l'Arduino. Il faut un amplificateur 5V vers Vmoteur. On peut prendre, pour commander les transistors un pont en H à base de L298. Le pont alimentera du coup l'Arduino. On peut d'ailleurs n'utiliser qu'un demi-pont si on utilise l'astuce précédente. Pour commander 2 moteurs (4 enroulements) il suffit alors d'un seul circuit à L298 (et 16 transistors, mais ça c'est votre faute, il fallait récupérer des moteurs consommant moins de 500 mA!).

Pour une tension inférieure à 5V, le mieux est de mettre une résistance en série avec l'enroulement et de tout alimenter en 5V. Ceci principalement car les tensions des grilles doivent être entre 5V et 20V pour saturer les transistors.

Au delà des 20V ce montage ne fonctionne plus car les transistors IRFZ44N et IRF4905 n'admettent pas plus de 20V entre la grille et la source.

On peut aussi utiliser un transistor de commutation pour commander les MosFets. Diminuer Rc est mieux pour les temps de commutations, mais on peut se cantonner à une puissance dissipée de 1/4W (pas la peine d'exagérer). Avec 20V, Rc vaudra alors 2200ΩP=U2/Rc soit Rc=U2/P soit encore Rc=20V2/0,25W=1600Ω
On prendra une 2200Ω
. Rb vaudra par exemple 10kΩSi le transistor à un gain de 100, on fera passer 50 fois moins de courant dans la base (pour qu'il soit saturé).
Le courant dans Rc sous 20V vaut Ic=20V/2200Ω=0,01A environ
Le courant dans la base vaut donc 50 fois moins soit 0,0002A
La commande vient de l'Arduino et est en 5V, il y a 0,6V entre la base et la masse (Vbe=0,6V) soit 4,4V aux bornes de Rb
Rb=4,4V/0,0002=22kΩ maximum. On peut prendre une 10kΩ qui est une valeur courante

Pour monter en dessus de 20V, il faut garantir que la tension de grille (aux bornes de R2) quand le transistor est passant soit entre 7VLes transistors IRFZ44N ou IRF4905 sont passant pour des tensions de grilles supérieures à 4V. par sécurité, prendre plus, surtout si on a plus de 20V! et 20VLes transistors IRFZ44N ou IRF4905 n'admettent pas plus de 20V entre la source et la grille. On peut prendre que des 1kΩ. Je ne l'ai pas encore testé.

Ne pas monter au delà des 35V à cause du demi pont. En utilisant une commande avec un NPN (genre 2N2222), on peut aller jusqu'à 55V. Si vous avez des moteurs pas à pas haute tension, parlez m'en ou récupérez en d'autres!

 

Comment choisir?

Comme indiqué plus haut, il n'y a pas une seule bonne solution, et cela va beaucoup dépendre de l'ensemble des actionneurs. Alimenter un électroaimant avec un demi-pont est par exemple intéressant si on a besoin par ailleurs d'un pont et que le circuit en comporte deux.

On n'oubliera pas que l'on peut avoir une tension d'alimentation supérieure à la tension du moteur en mettant une résistance en série. Cela est pratique si on a un moteur de 12V et un de 8V.

Il faut aussi penser à la tension de déchet aux bornes des transistors; pour un moteur de 5V alimenté avec des darlingtons qui ont une tension de 1,5V à l'état passant, il faut une tension d'alimentation de 6,5V.

Je ne cache pas que je ne suis pas partisan des transistors bipolaires et des darlingtons, les MosFets me paraissent plus intéressants car la commande est en tension (4V mini pour les IRFZ44N et IRF4905), qu'il n'y a pas de résistance de polarisation et que les diodes de roues libres sont intégrées. Toutefois les ULN2803 sont intéressants pour leur haute intégration. Notamment pour une perforeuse avec deux moteurs pas à pas unipolaires consommant moins de 500mA, un seul ULN2803 est une bonne solution.

Sachant pour un moteur unipolaire, il faut 4 transistors (genre 1€ pièce en Chine soit 4€ en tout), et qu'un pont à L298 vaut pas plus (moins de 2 € en Chine), alimenter un moteur unipolaire en mode bipolaire et mettre un pont, c'est payer deux fois moins pour ne pas avoir à faire de circuit!

Cela peut donner pour un moteurs unipolaires:
- I<0,5A et U<50V prendre un 2803 (on peut alors mettre 2 moteurs)
- 0,5A<I<2A et U<35V, le monter en bipolaire et prendre un L298 tout fait
- 2A<I<50A et U<55V prendre des IRFZ44N
Pour un moteurs bipolaires:
- I<2A et U<35V prendre un pont tout fait à base de L298
- 2A<I<50A et U=5V prendre des ponts IRFZ44N/IRF4905 seuls
- 2A<I<50A et 5V<U<20V prendre des ponts IRFZ44N/IRF4905 avec soit un quart de L298 soit un 2N2222
- 2A<I<50A et 20V<U<35V prendre des ponts IRFZ44N/IRF4905 avec soit un quart de L298 soit un 2N2222 et des résistances de 1kΩ
- 2A<I<50A et U>35V changer de moteur!


dansetrad.fr Contactez-moi