Raisons pour lesquelles il n'est pas OK de connecter un relais directement à partir d'une broche numérique Arduino


8

Après avoir examiné divers schémas de contrôle d'un relais via un Arduino, j'ai remarqué que, la plupart du temps, des transistors sont utilisés pour commuter l'alimentation séparée dans la bobine de relais plutôt que d'alimenter directement le relais avec la sortie 5 volts du I / O pin de l'Arduino. Par exemple, j'ai un relais DPDT 5 volts et également un petit moteur à courant continu. Je veux piloter les deux directement depuis mon Arduino UNO (clone SMD) avec un processeur Atmel328? Serait-il conseillé de continuer?

Sinon (le plus probable):

  1. Quelqu'un peut-il donner une explication détaillée et pourrait également des mises en garde importantes sur les limites actuelles et d'autres choses?

  2. Comment contrôler de tels composants sans risquer l'Arduino? Quels sont les moyens courants d'y parvenir?

  3. Quels autres appareils peuvent généralement endommager une carte Arduino (ou toute unité de microcontrôleur) de la même manière?

Je suis juste un débutant qui veut être extrêmement prudent. Merci.


Bien que récemment, lors de ma première rencontre avec Arduino, j'ai utilisé les broches d'E / S directement pour alimenter un moteur à courant continu jouet et changer sa direction en activant et désactivant un relais DPDT de la même manière. Rien ne semble aller mal de loin.
DorkOrc

Réponses:


8

Les broches du processeur ont une capacité de commande de courant strictement limitée.

  • Les valeurs nominales peuvent varier selon que vous souhaitez un lecteur haut ou bas.
  • Certains processeurs ne fourniront que quelques mA et le maximum que vous obtiendrez généralement officiellement se situe dans la plage de 20 à 30 mA.

  • Il y a généralement une limite de courant total pour le processeur et seules quelques broches peuvent fournir simultanément un courant de crête.

  • Les broches du processeur ont une résistance efficace significative et une tension élevée "chutera" à mesure que le courant augmente et une basse tension augmente à mesure que la charge augmente. Les broches PEUVENT être spécifiques avec un courant de court-circuit maximal, mais à ce stade, une broche haute sera tirée bas et une broche basse sera tirée haut, donc le courant de court-circuit a une applicabilité limitée.

Même si vous avez un processeur nominal de 25 mA par broche, la puissance disponible est faible. 25 mA · 4 V disons (chute de 1 V sur 5 V Vcc) = 100 mW. La plupart des moteurs prendront plus que cela et seuls les très petits moteurs fonctionneront bien lorsqu'ils ne seront alimentés que par une broche.

Les moteurs et inductances électriques génèrent des tensions significativement élevées lorsque le courant est interrompu - des tensions de dizaines de volts peuvent facilement en résulter et plus de 100 volts peuvent se produire. La connexion directe d'un moteur d'inductance à une broche de processeur est une invitation à la destruction. Murphy sera souvent obligé.


Un transistor (bipolaire ou MOSFET) qui entraînera des moteurs de loisir typiques coûte 10 centimes (ou sans équipement mis au rebut) et permet au variateur de courant de la broche du port d'être tamponné et "amplifié". L'utilisation d'un transistor ou d'un autre tampon est une très bonne idée si vous avez un ou plusieurs processeurs et que vous ne souhaitez pas qu'ils meurent de manière semi-aléatoire.

Pilote de moteur MOSFET - d'ici - section 8.

Les tensions et les numéros de pièces sont pour leur exemple - sélectionnez pour convenir.
Un biploar NPN pourrait être utilisé avec l'ajout d'une résistance d'entrée à la base du transistor.

entrez la description de l'image ici

Pilote bidirectionnel - si vous voulez que le pilote puisse conduire une charge haute et basse, ce circuit fonctionnera. à partir d'ici
La porte d'entrée est dans ce cas le pilote de processeur interne. Les deux portes MOSFET se connectent directement à la broche du processeur. Vdd ne doit généralement pas être supérieur au processeur Vmax_drive_out. Un peu plus haut peut être fait pour fonctionner avec une conception appropriée. Des charges de tension beaucoup plus élevées peuvent être pilotées avec ce circuit (ou similaire) plus un transistor supplémentaire.

entrez la description de l'image ici


Un tampon tel qu'un ULN2803 (et d'autres membres de la famille) pilotera 8 canaux x 500 mA / canal et plusieurs peuvent être mis en parallèle.


Un ULN2803 est essentiellement 8 x transistors "Darlington" avec des émetteurs connectés à une masse commune, 8 x "collecteurs ouverts" (non connectés) et 8 diodes flyback pour faire face aux pointes de surtension (à utiliser en option). (Il existe une famille ULN280x avec des caractéristiques d'entrée légèrement différentes).

Cet appareil offre un moyen à un prix raisonnable de fournir 8 pilotes de retrait 500 mA. Une charge connectée d'une sortie à V + est activée lorsque la broche d'entrée est enfoncée à un niveau élevé. Une fois que vous en aurez utilisé plusieurs fois, vous les trouverez très faciles à utiliser et très utiles. (Il existe également une famille ULN200x avec 7 canaux par boîtier).

Vidéo "Comment faire" sur YouTube


Conduire un moteur pas à pas

entrez la description de l'image ici

Ici aussi


Conduire de petits moteurs à courant continu - et bien d'autres choses encore.

entrez la description de l'image ici Quelques exemples

Digikey - disponible en 1 si désiré 0,72 $ / 1, 0,29 $ en 1000.

Fiche technique ULN2803


En vente à Sparkfun - peut être eu plutôt moins cher mais ceux-ci sont disponibles


7

La sortie recommandée (source ou puits) d'une broche d'E / S est de 20 mA. Le maximum absolu est de 40 mA. Votre bobine de relais est susceptible de consommer plus que cela, en particulier lors de sa mise sous tension initiale. Cela endommagerait votre broche de sortie. Ensuite, il finira par échouer.

Rien ne semble aller mal de loin.

Non pas encore. :)

Comment contrôler de tels composants sans risquer l'Arduino? Quels sont les moyens courants d'y parvenir?

Utilisez des transistors ou des MOSFET.

Quels autres appareils peuvent généralement endommager une carte Arduino (ou toute unité de microcontrôleur) de la même manière?

Tout ce qui dépasse les limites de tension ou de courant maximales telles que documentées dans la fiche technique. Les bobines (par exemple dans les relais et les moteurs) en particulier sont susceptibles d'avoir une tension inverse élevée lorsqu'elles sont éteintes, c'est pourquoi vous avez besoin d'une diode d'amortissement .

Serait-il conseillé de continuer?

Il serait conseillé de tenir compte de ce que j'ai écrit ci-dessus et de lire les nombreux articles sur le Web sur la façon de piloter des moteurs et des relais à partir d'un Arduino. Vous n'êtes pas la première personne à tenter cela.


4

Jetez un œil au circuit simple sur ce PDF de l'Arduino Playground. Il montre un seul transistor pour piloter un petit relais.

Comme le dit Russell dans sa réponse, un ULN2803 ou similaire est une puce qui vous permettra de piloter plusieurs petits relais, ce qui est plus net que d'utiliser plusieurs transistors, si c'est ce que vous voulez.

(Notez également la diode "D1" dans le circuit que j'ai connecté - vous en avez besoin, c'est pour protéger le transistor contre les dommages éventuels causés par les pointes inductives générées lorsque le relais s'éteint. Certaines puces de style ULN ont cette diode intégrée, c'est pourquoi vous ne le voyez pas toujours dans les schémas.)


3

Pour vraiment protéger votre arduino, il vaut la peine de mettre un photo-coupleur sur la broche et de conduire votre circuit de cette façon. Ensuite, aucune charge inductive ou court-circuit parasite ne peut affecter l'arduino.

Ils sont également appelés opto-isolateurs ou optocoupleurs.

http://forum.arduino.cc/index.php?topic=143954.0


1
Vous avez tout à fait raison, les optoisolateurs sont une excellente façon de procéder. Une autre façon de le faire, un peu moins isolante mais toujours pratique, consiste à utiliser un amplificateur opérationnel (amplificateur opérationnel) comme tampon. Ceux-ci sont également appelés amplis opérationnels «suiveurs». Notez que vous pouvez le faire avec n'importe quel OpAmp standard, il vous suffit de disposer le circuit d'une manière particulière. en.wikipedia.org/wiki/Buffer_amplifier#Op-amp_implementation
Dan

3

Voyons quelques éléments de base, ceux-ci semblent être à la base de nombreuses questions:

Un condensateur à la mise sous tension consomme une énorme quantité de courant qui diminue au fur et à mesure qu'il se charge. Cette courbe est aussi appelée constante de temps RC (elle est proche mais pas exacte " http://www.electronics-tutorials.ws/rc/rc_1.html " donnera une meilleure explication).

Lors de la mise hors tension, un condensateur se décharge à un taux exponentiel (constante de temps RC) en fonction de la valeur, de la tension de charge et de la charge. Cela les rend bons pour maintenir le courant pendant une courte période lorsque le courant tombe en panne.

Un inducteur ne tire rien lors de sa première mise sous tension, mais le courant augmente de façon exponentielle jusqu'à ce que sa tension atteigne la tension d'alimentation.

Lorsqu'il est éteint, le champ inductif de l'inductance s'effondre, ce qui provoque l'inversion de la polarité. La tension augmentera de manière illimitée jusqu'à ce que, généralement, quelque chose de l'extérieur la limite. Plus il s'éteint rapidement, plus le temps de montée et la tension sont rapides. L'énergie cessera de circuler lorsque la charge inductive sera dissipée. Devinez où va ce courant lorsque la charge inductive telle qu'un relais est connectée à une broche de port?

Pour cette raison, vous devez placer une diode (communément appelée diode de volant) sur la charge inductive. Google pour: "courbe de charge inductance / condensateur", vous trouverez beaucoup de bons graphiques expliquant cela. Si vous regardez le circuit, il a la cathode + connectée au côté le plus positif de l'alimentation. Dans cette configuration, il ne conduira que si la tension est inversée (lorsque la charge inductive est coupée).

Une autre idée fausse courante est que vous pouvez charger au maximum une E / S de microprocesseur. C'est une mauvaise conception. Ils vous donnent un maximum par broche, par port et pour la puce. À température ambiante, vous vous en sortirez probablement un moment.

Supposons que nous avons un port avec une charge de 40 mA. La sortie est de 0,005 depuis le rail d'alimentation. En utilisant la loi d'Ohm, nous dissipons 20 milliwatts de puissance sur une broche. À ce taux de charge, il ne faut pas longtemps pour surchauffer l'appareil en raison de la dissipation de puissance interne.

Lorsque la broche de sortie change d'état, elle consomme plus de courant car elle doit charger ou décharger sa capacité interne et externe, «plus de chaleur», plus de vitesse «plus de chaleur».

Si vous regardez certaines des spécifications vous donneront une température maximale, c'est pour la jonction sur la matrice, pas la température du boîtier. Le plastique est un mauvais conducteur, donc la dissipation thermique de l'emballage ne fait pas grand-chose. Considérez maintenant ceci avec la température ambiante. Les notes sont généralement données avec l'appareil à 25 ° C, devinez ce qui se passe quand il fait plus chaud.

S'amuser,

Gil

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.