Sortie du registre à décalage vers les relais

8

désolé pour la longueur.

Ceci fait suite à ma récente question . J'ai une carte optocouplée à 8 relais que j'essaie de connecter à mon microcontrôleur. J'ai placé un registre à décalage 74HC595 en ligne pour consolider les ports d'entrée. Ce faisant, cependant, la planche a montré un comportement étrange.

entrez la description de l'image ici

Si je ne branche rien, ou juste une petite charge dans les relais, tout fonctionne bien en utilisant le registre à décalage. Ils s'allument et s'éteignent sans problème. Dès que je branche une pompe de 1 ampère ou plus sur le relais, vous pouvez entendre le déclenchement du relais, puis il se déclenche rapidement. La LED IN1 (schéma ci-dessus) s'allume également pendant une fraction de seconde. Parfois cependant (1 sur 5), le relais et la pompe restent allumés. Maintenant, c'est là que ça devient bizarre; si je retire le registre à décalage et connecte directement les broches au microcontrôleur, cela fonctionne très bien lors de la mise sous tension de la pompe.

Donc, des interférences sur le registre à décalage ont été soulevées, mais pour autant que je sache la conception de la carte relais, le registre à décalage alimente uniquement la LED dans l'optocoupleur (U1) et n'est en aucun cas connecté à une autre partie du circuit (registre à décalage et le contrôleur étaient alimentés par batterie). La carte est également Active Low, donc si je comprends bien, le registre à décalage absorbe le courant de l'optocoupleur. Serait-ce que l'optocoupleur nécessite plus de courant pour commuter la charge plus élevée que le registre à décalage ne peut couler? Je suis peut-être loin car cela m'a dérouté. De plus, y a-t-il des façons dont les interférences pourraient pénétrer même si elles sont isolées et sur batterie?

Tous les tests ont été effectués avec une batterie alimentant le microcontrôleur \ registre à décalage, et un croquis très simple qui ne visait qu'une seule broche du registre à décalage par octet.

Le 8 relais ( Info ): Il est actuellement configuré avec une verrue murale 5V séparée alimentant les relais. Le microcontrôleur fournit 5 V pour alimenter l'optocoupleur uniquement.

J'apprécie toute aide que vous pouvez me donner. entrez la description de l'image ici

Mise à jour du 13 août:

Toujours pas, mais j'ai fait un tas de tests supplémentaires: j'ai éloigné le registre à décalage et l'Arduino à 3 pieds des relais et de l'alimentation secteur. Les deux étaient alimentés par une batterie 9V. La seule chose connectée à la carte relais était un rail 5 V de l'Arduino et les 8 fils du registre à décalage aux entrées de la carte relais. Mêmes résultats, une lumière de 100 W fonctionne très bien, la pompe provoque son déclenchement. Si je retire le registre à décalage et que je branche les broches de sortie directement sur l'Arduino, la pompe s'allume sans problème.

Juste pour vérifier que rien ne se passait avec la verrue murale 5V dédiée qui alimente les relais, je l'ai débranchée et remplacé le cavalier sur JD-VCC et VCC et attaché l'Arduino GND. Même résultat, une lumière de 100 W fonctionne, la pompe provoque son déclenchement.

Ce doit être un registre à décalage.

J'ai également placé un condensateur de découplage de 47 uf sur les rails d'alimentation, ainsi que le registre à décalage a un 104 juste à côté.

Ce soir, je vais essayer de mettre un multimètre en ligne avec l'une des broches de sortie, je veux voir la quantité de courant que l'optocoupleur tire.

Je viens de recevoir un oscilloscope aussi, donc j'apprends toujours à l'utiliser, mais je peux peut-être comprendre comment mesurer toute interférence sur le rail 5V ou dans les lignes de sortie.

Mise à jour du 14 août:

J'ai réussi à le capturer en échec avec mon oscilloscope. Fichiers Rigol wfm ci-dessous. Le canal 1 est attaché à une broche de sortie sur le registre à décalage. Le canal deux est attaché au rail 5V.

Fichiers WFM

Je viens de faire quelques tests et j'ai réussi à reproduire un pic de 500mv-1V (parfois c'était une goutte) sur le rail 5V et l'une des broches de sortie du registre à décalage. C'est ça le problème non? Ce type de pointe ferait-il sortir le registre à décalage et agirait-il bizarrement?

15 août:

Ci-dessous est une capture lorsque j'allume / éteint manuellement la pompe. Ne pas utiliser le registre à décalage pour le faire. La ligne bleue est la broche de sortie du registre à décalage 1, la ligne jaune est 5V.

J'ai également pris quelques photos de l'installation:

entrez la description de l'image ici

Taille réelle

entrez la description de l'image ici

Taille réelle

entrez la description de l'image ici

J'ai également un message sur le forum sur lequel j'ai également mis à jour les résultats: Forum Arduino

16 août:

J'ai pu capturer une bien meilleure image aujourd'hui. Je ne savais pas que l'oscilloscope ne capture que tant de points lorsqu'il fonctionne à des intervalles de 1 seconde (c'est tout à fait logique maintenant). Voici l'émi maléfique sur la broche 1 du registre à décalage:

2us

200ns

Je vais récupérer tous les composants recommandés ce week-end et essayer de les ajouter un par un.

18 août:

Problème confirmé. La pompe faisait tellement de bruit que rien de ce que je pouvais faire sur les lignes à faible puissance ne pouvait contenir les ondulations. Ces ondulations où se rendre dans le registre à décalage horloge \ loquet \ broches de données et provoquer une corruption \ réinitialise.

Je suis donc allé à l'extrême extrême et j'ai arraché un circuit de protection contre les surtensions APC Rack haute puissance et l'ai placé devant la pompe.

entrez la description de l'image ici

Maintenant, il y a à peine une tache sur l'une des lignes n'importe où. Hourra!

Maintenant, le but était de garder cela dans l'empreinte de l'enceinte, donc je vais voir si je peux faire une version plus compacte, car je pense que cette carte est exagérée et j'en aurais besoin d'une pour chacune des 5 pompes que j'ai. Je vais commencer par un seul MOV et voir à quel point cela réduit le bruit.

Problème résolu: j'ai décidé d'acheter un filtre de ligne pour voir si je pouvais filtrer le bruit de la pompe directement à la source. J'ai acheté ceci: Delta High Performance Filter . Maintenant, je ne reçois même pas un coup sur l'oscilloscope.

Merci pour toute l'aide à tous, j'aimerais pouvoir vous marquer tous comme des solveurs mais je ne peux pas alors je l'ai juste donné à celui qui a offert le plus de conseils.

Exister
la source
Avez-vous ajouté un condensateur de découplage aux broches d'alimentation du registre à décalage?
Bruno Ferreira
Oui, j'ai un 104 attaché. Puisqu'il est isolé, un problème de découplage ne serait-il pas toujours un problème, je demande parce que je ne suis pas sûr? Tout fonctionne correctement si je ne branche pas les pompes.
Existe
Avez-vous retiré le cavalier entre Vcc et JD-Vcc?
Oli Glaser
Oui, il a été retiré, j'ai une verrue murale 5v dédiée connectée à Gnd et JD-VCC.
Existe
1
Les fichiers Rigol WFM, qu'est-ce que c'est? Comment sommes-nous censés les lire?
stevenvh

Réponses:

6

Comment le registre à décalage est-il câblé? Avez-vous un condensateur de dérivation de 0,1 uF à travers les fils d'alimentation à proximité du boîtier IC?

Cela me semble être un problème de bruit, d'autant plus qu'il ne se déclenche que lorsque vous avez une charge sur les relais. Le fait que cela entraîne la réinitialisation de l'état du registre du registre à décalage me fait penser que c'est un problème d'alimentation.


Aussi, comment câblez-vous le registre à décalage.
Avec un 74HC595, vous devez:

  • Attachez les deux horloges de registre ensemble (broches 11 et 12)
  • Tirez la broche de réinitialisation principale vers le haut (attachez la broche 10 au VCC)
  • Tirez la ligne d'activation de sortie vers le bas (attachez la broche 13 à la masse)

Enfin, vous avez besoin d'un condensateur de dérivation de 0,1 uF entre la broche 16 (Vcc) et la broche 8 (Gnd).

Connor Wolf
la source
J'ai un 104 à travers le vcc et le gnd du registre à décalage.
Existe
@Exist - et vous n'avez pas laissé la broche de réinitialisation flottante, ou quoi que ce soit, non?
Connor Wolf
La seule chose à laquelle je peux penser à ce stade est d'essayer de commuter une charge non inductive (par exemple une ampoule de 60 W, ou quelque chose), et de voir si cela déclenche également le problème. Si ce n'est pas le cas, vous rencontrez des problèmes EMI lorsque votre pompe se met en marche. si c'est le cas, je suis un peu perplexe. À ce stade, commencez à regarder vos rails d'alimentation lorsque le système bascule, voyez si quelque chose d'étrange se produit sur eux.
Connor Wolf
Non, je ne pense même pas que le registre à décalage se réinitialise car il continue de garder d'autres relais même s'il ne peut pas allumer la pompe.
Existe
3

Essayez de déplacer l'Arduino aussi loin que possible du module de relais et de la pompe. Assurez-vous également qu'aucun câble lié à l'alimentation (de la pompe) ne se trouve à proximité de l'Arduino.

Utilisez ensuite une paire torsadée ou un câble CAT5 pour envoyer le signal marche / arrêt de l'Arduino.

Je ne peux pas ouvrir le fichier wfm (je suppose que ce sont des valeurs hexadécimales mais ce sera difficile à visualiser s'il est ouvert de toute façon), mais d'après votre description, il semble que vous ayez capturé l'événement.
Ce pic (qui peut être plus rapide / plus grand que celui indiqué sur votre oscilloscope en fonction de BW et des paramètres) sera probablement le problème. Comment un tel pic arrive sur vos rails reste à déterminer - je pense qu'à ce stade, une photo ou deux de votre configuration aiderait probablement beaucoup, et si possible un schéma détaillé de tout votre câblage (pompe, module de relais, tout alimentations, Arduino, etc.)

L'adaptateur de relais et la masse arduino sont-ils liés ensemble?

EDIT - en regardant l'image, la mise en page n'a pas l'air géniale, c'est un peu à l'étroit. Il semble qu'il y ait des câbles d'alimentation sous le module de relais - ceux-ci peuvent être couplés au côté Arduino isolé. Essayez de les éloigner si vous le pouvez.
De plus, vous devriez vraiment utiliser le CAT5 ou similaire pour le signal du registre à décalage - exécutez-le avec le 5V pour réduire la zone de boucle.
À ce stade, j'essaierais également d'ajouter quelques diodes à polarisation inverse à 5 V et à la masse à partir de la sortie du registre à décalage, pour bloquer tout pic qui apparaît (5 V zener en option, mais bonne idée si vous en avez un)

Dos à dos diodes

Vous pouvez également placer un petit condensateur de la ligne à la terre (par exemple 100nF) car ce n'est qu'un signal de commutation.
Pour vous assurer qu'il n'y a pas de connexion entre tout ce qu'il ne devrait pas y avoir, cela vaut probablement la peine de tester la continuité entre la terre Arduino et la terre du module relais, et Arduino 5V et relais 5V.

Oli Glaser
la source
Vous voulez dire aussi le registre à décalage? Il est actuellement monté dans la barre d'alimentation, mais je pourrais le détacher et l'éloigner. Pensez-vous qu'il capte du bruit?
Existe
Oui, déplacez-le également et utilisez le câble de la sortie du registre à décalage vers le module. Il semble qu'il soit rayonné EMI si cela se produit encore lors de l'alimentation de l'Arduino à partir de la batterie.
Oli Glaser
@Exist - avez-vous essayé ce qui précède? Si oui, cela a-t-il fait une différence?
Oli Glaser
Je l'ai fait, les résultats affichés ci-dessus.
Existe
Hmmm, quelque chose ne va pas ici :-) Si vous avez maintenant un oscilloscope, puis commencez à sonder les signaux et l'alimentation pendant la commutation de relais, vous devriez avoir une idée de ce qui se passe. Affichez une photo des résultats si vous ne savez pas quoi en faire.
Oli Glaser
1

Cela ressemble certainement à un problème d'interférence électromagnétique.

La masse de l'alimentation Arduino doit être connectée à la "masse verte" de votre système d'alimentation local. Une prise vierge avec un seul fil à la «masse verte» pourrait être utilisée.

Essayez de séparer physiquement le câblage de la pompe de celui du micro-ordinateur.

Vous pouvez également ajouter un "suppresseur de surtension" MOV (varistance à oxyde métallique) à travers la pompe pour absorber les pointes qui peuvent se produire lorsque la charge est commutée.

Quels sont les niveaux de tension et de courant de la pompe?

Votre câblage semble correct.

Terry King
la source
J'ai mis à jour mon article avec quelques tests supplémentaires. Je suis d'accord que cela semble être EMI, Fake me poussait de cette façon hier aussi. Je passe beaucoup de temps à le retrouver. Lorsque vous dites de connecter la terre, cela s'applique-t-il toujours si l'Arduino est alimenté par batterie? La pompe est de 120 V 1,2 ampères. Merci
Existe