J'ai une carte avec quatre relais dessus. Il possède des broches Vcc, Gnd et In1-In4 standard. Je veux le contrôler avec Arduino ou dans mon cas un ESP32. Cependant, j'ai remarqué que lorsque la broche de sortie de mon contrôleur est tirée HAUT, rien ne se passe quand elle est tirée BAS, le relais s'enclenchera.
C'est un problème lorsque la carte est réinitialisée car tous les commutateurs de relais s'engagent jusqu'à et ce n'est pas quelque chose que je veux. Après avoir creusé, j'ai fait ceci:
Cela fonctionne comme vous le souhaitez, il y a toujours 5 V sur le relais et le relais est désengagé tout le temps. Lorsque je transmets un signal à la base du Q1, il tire la sortie vers le sol et le relais s'enclenche.
En ce moment, j'ai quatre de ces relais et bientôt j'en aurai d'autres. Donc, je voudrais résoudre ce problème avec un IC. En particulier, je regardais l'IC7404 qui est un tas de portes NON, cependant, je ne suis pas sûr que cela résoudra mon problème.
Alors, y a-t-il un circuit intégré qui tirerait la sortie vers le sol lorsque le signal est présent sur l'entrée? Le 7404 fonctionnera-t-il et je ne vois rien? :)
Edit: c'est le module relais que j'utilise . Je n'ai pas pu y trouver de fiches techniques utiles.
la source
Réponses:
Le fait que les relais s'activent à la réinitialisation alors que les broches doivent être en mode haute impédance est inquiétant, et c'est quelque chose que vous devez bien comprendre pour valider votre système et le réparer.
Edit: maintenant qu'il est clair qu'il s'agit d'un bogue logiciel dans votre code, pour résoudre le lecteur par inadvertance faible lors du démarrage, configurez le bit de registre de données de sortie de la broche sur haut avant de définir la broche comme sortie.
Cela dit, une réponse littérale à votre question d'origine serait une puce contenant plusieurs
open collector inverters
.Le 74xx05 en est un exemple.
Le 74xx06 est similaire, mais permet d'appliquer une tension acceptable à la sortie même lorsque celle-ci dépasse la tension d'alimentation, par exemple, vous pouvez faire fonctionner la pièce sur 3,3 V, mais tirer les sorties de 5 V.
Mais ce ne sont pas la solution à votre problème réel .
la source
La solution la plus simple consiste à permuter les connexions des broches NO et NC du relais.
L'option suivante consiste à inverser la logique de programmation pour cette broche. Vous pouvez ajouter quelques constantes
Pour polariser les relais dans un certain état lors de la réinitialisation (alors que la broche de sortie est à haute impédance), vous pouvez ajouter une résistance pull-up ou pull-down selon les besoins. La broche IO surpasse facilement le courant qui a fui à travers la résistance et commute toujours correctement le relais.
En utilisant ces 2 techniques, vous pouvez choisir l'état par défaut du relais comme étant l'état non alimenté. Soit parce que c'est celui qui est utilisé la plupart du temps, soit parce que c'est l'option de sécurité intégrée.
la source
Voici un "Manuel d'utilisation" pour votre relais. Vous ne devriez vraiment jamais concevoir un système sans avoir au préalable toutes les fiches techniques.
À partir du schéma fourni, vous pouvez clairement voir que vous pouvez simplement connecter votre contrôleur directement aux broches InX. Autrement dit, aucun des schémas que vous avez conçus n'est nécessaire.
Étant donné que l'entrée des optocoupleurs est capable de fonctionner en mode collecteur ouvert , je vous suggère de ne conserver que les broches correspondantes de votre uC en tant qu'entrée / High-Z lorsque vous souhaitez conserver les relais à NC.
Comme je ne connais pas votre contrôleur, voici un pseudo-code pour vous aider:
Initialisation, pour chaque broche contrôlant un relais:
Relais de commande sur NO:
Relais de commande de retour à NC:
Habituellement, un uC se réveillera avec ses broches déjà en entrée, donc la première ligne de l'initialisation est redondante, mais il est toujours plus sûr de l'exécuter pour s'assurer que le système est dans un état connu. Assurez-vous que vous n'avez pas de code qui fait une initiation générale de toutes les broches à certaines valeurs dans le cadre d'un code de plaque de chaudière, les débutants sont connus pour faire cette erreur.
PS Pour le moment où vous aurez réellement besoin d'un pilote actuel inverseur, utilisez simplement quelque chose comme un ULN2003A !
la source