25: PROBLEMES AVEC LES MODULES RELAIS
Beaucoup de personnes qui ont essayé d'utiliser un module de relais avec un PI framboise ont eu des difficultés à le faire fonctionner, trouvant souvent ce qui s'est passé contre-intuitif. comme toujours, même en programmant comme off, doutant alors de leur logiciel au lieu du module. La raison principale est que ces modules sont conçus pour fonctionner avec un système de contrôle (comme un Arduino) qui utilise une signalisation 5V, et les concepteurs de ces modules n'ont pas envisagé ce qu'il se passerait si l'on essayait d'utiliser le module avec une signalisation 3.3V. les vendeurs de ces modules ne s'en soucient pas non plus.
Regardons un schéma typique d'un tel module:
module de relais sainsmart typique schematic.jpg
module typique de relais sainsmart schematic.jpg (17,52 Ko) Vu 14753 fois
Ce module contient un opto-isolateur (U1) qui est excellent car il empêche toute tension dangereuse pouvant survenir lorsqu'un courant circulant dans une bobine (la bobine du relais) est coupé subitement. Cela créera une très grande tension (appelée tension EMF, qui peut être des centaines de volts) dans le sens opposé du flux de courant. Cette tension est normalement dissipée (court-circuitée) dans une diode "snubber", "flyback" ou "back EMF", mais si cette diode tombe en panne, le transistor pourrait être détruit et la haute tension pourrait se retrouver à la base du transistor ( sur R2) qui peut détruire le contrôleur sans l’opto-isolateur en place.
Dans le cas du schéma ci-dessus, le circuit de commande de relais est câblé pour être "actif bas", c’est-à-dire une tension faible (par rapport à la tension d’alimentation de commande de relais, sur la broche 2 du bloc de connecteurs de gauche) allumera la LED de U1. , ce qui enverra le courant dans R2, cela rendra le phototransistor en U1 conducteur, ce qui ouvrira le transistor Q1, alimentant ainsi la bobine de relais.
Cependant, il y a des problèmes avec cette conception;
normalement, l'opto-isolateur est alimenté avec 5V sur la broche 2 (et GND sur la broche 1), et l'entrée IN0 est supposée aller à 0V (GND) ou à 5V.
Une fois mis à la terre, les deux LED sont alimentées en courant et la bobine du relais est alimentée. Lorsque l'entrée IN0 de 5 V est mise à 5, il n'y a pas de tension sur la chaîne de DEL R1-LED_of_U1-green, de sorte que les deux DEL sont éteintes.
Mais si vous mettez 3V3 sur la broche IN0, ce n'est pas vrai! il restera toujours 5V-3,3V = 1,7Volt sur les deux LED, de sorte qu’un faible courant puisse encore circuler, juste assez pour éclairer faiblement la LED dans U1, allumant le phototransistor de sorte qu’un faible courant passe à R2, et le La bobine de relais peut recevoir juste assez d’énergie pour continuer à tirer dans l’armature du relais (plaque métallique attirée par le champ magnétique). Le relais peut donc toujours rester alimenté. Un relais nécessite beaucoup moins d’énergie pour magnétiser le relais que l’armature reste bloquée par rapport à l’énergie nécessaire pour tirer l’armature.
on pourrait programmer le GPIO IN0 de manière à ce qu'il devienne très ohmique, ce qui désactiverait le relais, mais cette approche a pour conséquence que la GPIO pourrait afficher une tension supérieure à 4V, ce qui pourrait provoquer le "verrouillage redouté" up "phénomène comme les GPIO d'un PI ne sont pas 5V TOLERANT! Voir
https://en.wikipedia.org/wiki/Latch-up pour une explication de ce qui pourrait arriver. Juste peut-être que les deux diodes (LED) pourraient empêcher la mémorisation dans la pratique, donc cela pourrait fonctionner, mais votre kilométrage pourrait varier!
La solution évidente à ce problème serait de baisser la tension sur la broche 2 du bloc connecteur gauche à 3,3 V (tout en laissant 5 V ou peut-être 12 V sur la broche 3 pour le relais), mais vous remarqueriez un autre problème! Pour épargner le prix d'une résistance supplémentaire pour la LED verte, le concepteur de ces modules a simplement placé les deux LED (la LED de signalisation verte et la LED de l'opto-isolateur) en série, mais cela signifie que vous avez besoin plus que la somme des deux tensions aller des deux diodes (une LED est une diode) pour obtenir toute quantité de courant qui les traverse, c'est-à-dire (avec les tensions typiques des LED, avec une couleur allant du rouge au vert , environ 2 volts), nous aurons besoin de plus de 2 x 2 = 4 volts, donc 3,3 volts ne suffisent pas pour allumer les deux DEL!
Cela rend ces modules de relais très difficiles à utiliser avec un système basé sur 3.3V comme un framboise PI.
Ce problème est exacerbé par le fait que le vendeur de ces appareils (en particulier sur e-bay) ne vous laisse presque jamais voir le schéma des modules de relais que vous pouvez acheter.
Une solution consisterait à conserver la broche 2 sur 3,3 V mais à court-circuiter le voyant DEL, mais cela impliquerait de souder (une compétence à laquelle quiconque se prétend ingénieur en électronique ne peut pas se passer, et ce n’est pas aussi difficile qu’il a l'air, veillez à ne pas toucher le métal du fer à souder pendant l’utilisation).
La meilleure solution consiste à maintenir la tension de la broche 2 à 5V et à utiliser un autre transistor (et une résistance de base) pour allumer et éteindre le courant de la LED.
ou simplement acheter une carte de relais mieux adaptée, une chose simple sans opto-isolateur comme celui-ci fonctionnera bien:
Image
vous pouvez également utiliser cette conception avec un relais 12V sans problèmes.
REMARQUE:
Testez sans contrôle logiciel, avant d'ajouter un contrôle logiciel!
Pour vérifier si une carte de relais fonctionne avec une signalisation 3,3 V, connectez simplement l'entrée de commande directement (manuellement) à 3V3 (3,3Volts) ou à GND et voyez si cela fonctionne comme prévu. Vous pourrez ensuite vous en occuper avec le logiciel. En outre, vous pouvez utiliser une LED pour tester votre logiciel avant de connecter la carte à relais, si vous avez des doutes sur votre logiciel.