La tension des broches GPIO est trop faible pour alimenter le relais


9

J'essaie d'activer et de désactiver un petit relais . J'ai connecté une broche GPIO et GND directement au relais. J'entends le relais cliquer lorsque je règle la broche GPIO sur HIGH.

Cependant, le relais ne laisse passer que rarement un signal. Cela fonctionne parfois, mais rarement. Si je règle la broche sur HIGH et que je mesure la tension, elle n'est que d'environ 1,6 V - donc je suppose que parfois il n'y a pas assez de puissance pour piloter le relais.

J'ai déjà mesuré la tension sur les broches et il a lu 3,3V. Des idées sur ce qui pourrait être le problème?


Si vous avez connecté le relais directement aux broches GPIO du Pi, il est malheureusement très probable que vous ayez cassé quelque chose. Le relais est-il monté sur tout type de module PCB avec isolateurs?
goobering

Réponses:


14

Vous ne devez pas piloter directement un relais à partir du Raspberry Pi. Un GPIO individuel ne peut fournir en toute sécurité qu'environ 16mA à 3V3, ce qui est peu susceptible d'être suffisant pour alimenter les bobines d'un relais électromagnétique standard. Même si vous pouviez le retour EMF causé par l'effondrement du champ magnétique dans les bobines de relais lorsqu'il était éteint pourrait détruire un GPIO et le Pi.

Vous devez utiliser le GPIO pour commuter un circuit externe pour commuter le relais.

Typiquement, un transistor (pour amplifier le courant) et une diode (pour se protéger contre les CEM arrière) seraient utilisés.

Personnellement, j'utiliserais probablement une puce ULN2003A car elles ont été conçues à cet effet.

Il existe de nombreux relais intégrés dans les cartes de pilotes disponibles pour le marché des loisirs.


Aha, donc c'est fondamentalement un circuit comme celui montré ici - mais connecté au rail 3v3 à la place?
Andreas

@Andreas Oui, bien que vous puissiez utiliser le rail 5V si le relais est satisfait du 5V. Vous utilisez le GPIO pour activer le transistor. Le transistor se fera un plaisir de commuter le 5V.
joan

D'accord, c'est logique. Merci beaucoup. J'espère que je n'ai encore rien frit. Décidément, le logiciel est tellement plus facile que le matériel.
Andreas

2
@Andreas Hélas, si le logiciel était plus simple que le matériel, nous ne redémarrerions pas les ordinateurs pour résoudre leurs problèmes.
Dmitry Grigoryev

J'aime la gamme de pilotes de relais NUD31xx d'OnSemi. Ils fonctionnent mieux que tous les transistors et diodes que j'ai vus.
Jeanne Pindar

16

Si vous voulez piloter un seul relais basse tension, l'utilisation d'une puce de pilote à 7 canaux sera une exagération. Vous irez parfaitement bien avec un seul transistor NPN et une diode flyback:

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Remarque: R1 peut être remplacé par une LED et une résistance de 200 à 500 Ohms en série si vous voulez un indice visuel sur l'état de votre relais. C'est ce qui est souvent fait sur les cartes relais prédéfinies.


(Le lien de simulation est introuvable. Pouvez-vous résoudre ce problème?)
nixda

@nixda, espérons-le maintenant
Dmitry Grigoryev

4
Soyez prudent avec cette idée supplémentaire de LED. Si le lecteur non averti utilise une LED blanche ou bleue, la chute de tension peut être trop importante pour piloter suffisamment le transistor.
Ghanima

Diagramme très agréable, simple et facile utilisant des composants communs! Je vous remercie!
RufusVS

0

J'ai utilisé avec succès l'expandeur I2C MCP23017 avec des cartes relais bon marché. Je n'ai pas encore écrit de mode d'emploi, mais il y en a beaucoup, regardez Google et recherchez "RPI MCP23017".


Bienvenue sur Raspberry Pi! Veuillez faire le tour et visiter le centre d' aide pour voir comment les choses fonctionnent ici. Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure une explication ici (sans que le PO le recherche ailleurs)?
Ghanima
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.