Réinitialisation / suspension de l'Arduino en raison d'étincelles dans la ligne ca


15

Il s'agit de la conception PCB du projet sur lequel j'ai travaillé récemment (ma première conception de circuit imprimé). Disposition PCB

L'idée est de contrôler les appareils à courant alternatif (ventilateurs, ampoules, etc.) sans relais. J'utilise des triacs qui sont meilleurs que les relais pour de telles applications. J'utilise des opto-isolateurs pour une isolation complète des lignes ca. J'ai essayé de faire fonctionner l'arduino en utilisant un câble USB connecté à mon ordinateur portable (avec chargeur débranché) ainsi qu'un adaptateur mural (12V).

Au début, le circuit semblait bien fonctionner. J'ai pu vider le code dans le contrôleur et contrôler les ampoules (On / Off ainsi que les atténuer) en utilisant UART. J'ai envoyé les commandes via UART. Cependant, il semble que chaque fois qu'il y a une étincelle sur les lignes ca (lorsque je branche / débranche un ventilateur), le micro-contrôleur n'a pas l'air content. Parfois, il se réinitialise (ce qui est la meilleure partie de l'image) et d'autres fois il se bloque et je ne peux pas envoyer de commandes via UART. Je ne sais pas si le code brûlé est également affecté, mais parfois je devais télécharger à nouveau le code. Si j'allume / éteint un ventilateur dans une autre pièce, il n'y a aucun effet.

Problèmes possibles:

1) Absence de plan de masse sur le PCB.

2) Une sorte d'EMI due à des étincelles.

J'ai également essayé de brancher un chauffe-eau (charge résistive de 800 watts) de la même manière qu'un ventilateur, mais rien ne s'est produit. Donc, je pense que c'est la charge inductive qui pose problème.

Toute solution constructive à ce problème sera très appréciable.

Merci.


2
Oui, c'est la charge inductive. Vous avez besoin d'un amortisseur et / ou d'un MOV (ou d'une diode TVS bidirectionnelle) pour supprimer la pointe inductive. Normalement placé en parallèle avec la charge. Une disposition améliorée des PCB peut aider à minimiser les effets. Voir electronics.stackexchange.com/q/101815/25328 pour une question similaire bien que cette carte utilise un relais.
Tut

Étant donné que vous utilisez des triacs, le problème des pointes inductives est susceptible d'être bien pire lors du branchement / débranchement manuel du ventilateur car les triacs s'éteignent à un courant proche de zéro. Un problème potentiel que vous pourriez rencontrer est que les triacs ne s'éteignent pas lorsqu'ils sont connectés à des charges inductives. Vous suggère de regarder dans les fiches techniques et les notes d'application pour les circuits triac conçus pour les charges CA.
Tut

Cela peut ou peut ne pas aider, mais vous pouvez essayer d'ajouter une minuterie de chien de garde à votre logiciel arduino.
Axis

@Tut - Merci pour toutes vos suggestions. J'ai lu le lien que vous avez publié. J'essaie de les implémenter dans mon prochain PCB. Publiera la disposition du tableau avant de passer en production afin que vous puissiez fournir des commentaires et signaler les erreurs / corrections.
Whiskeyjack

Réponses:


11

Vous n'avez pas montré de schéma, mais je ne vois aucun bouchon de dérivation évident ou bouchon de réservoir d'alimentation local intégré. Cela et le manque de bonnes bases sont très probablement à l'origine des problèmes.

Comme d'autres l'ont dit, vous devez également laisser une distance d'isolement appropriée entre les sections CA et CC et au moins essayer de créer un peu un plan de masse.

Vous avez une grande carte avec peu de composants et un grand pas de broches, donc le routage de la plupart des traces sur la couche supérieure devrait être assez facile. Vous devrez parfois aller à la couche inférieure car en général un circuit ne peut pas être acheminé dans un seul plan. Cependant, vous pouvez garder les traces sur la couche inférieure courtes. Considérez-les comme des "cavaliers" juste assez longtemps pour connecter deux pistes sur la couche supérieure que vous ne pourriez pas connecter autrement dans un plan. La mesure d'un plan au sol n'est pas le nombre d'îles qu'il contient, mais la dimension la plus longue d'une île. Gardez les cavaliers courts et dégagés.

Cependant, vous devez absolument mettre un bouchon de dérivation sur chaque alimentation électrique de chaque circuit intégré. Il doit s'agir de petits bouchons en céramique physiquement proches du circuit intégré avec des boucles globales aussi petites que possible. 1 µF 0805 est à peu près juste. Non seulement ceux-ci seront moins chers et fonctionneront mieux que les bouchons équivalents, mais ils seront également plus faciles à souder.

Étant donné que l'alimentation CC vient d'ailleurs et que son impédance est donc suspecte, placez un capuchon électrolytique de taille décente juste en face de l'entrée de l'alimentation dans la carte. Quelques 100 µF devraient suffire.


Merci Olin. Je lisais vos messages sur d'autres questions similaires et j'ai appris beaucoup de choses. On dirait que quitter l'avion au sol était la plus grosse erreur. Je vais repenser mon PCB avec des plans de masse sur les deux surfaces et essayer également de placer les composants de manière plus nette comme indiqué par d'autres. Encore une fois, j'apprécie vraiment votre aide.
Whiskeyjack

1
@ user3455594 Ne négligez pas ces condensateurs de dérivation, en particulier sur l'Arduino.
Tut

@Olin - Quelles mesures proposez-vous pour protéger les triacs contre les pointes de tension chaque fois que l'appareil est allumé ou éteint? Après quelques lectures, j'ai constaté que les amortisseurs sont utilisés le plus souvent pour supprimer les pointes entrantes. Cependant, l'utilisation principale de l'amortisseur était liée à la prévention d'un faux déclenchement du triac et non à la protection du triac. MOV est une autre option. Quelle est votre opinion à ce sujet. Référez-vous à ce lien pour faire référence à mon cas d'utilisation.
Whiskeyjack

20

Vous devez respecter votre isolation de tension. La façon dont vous avez placé (et acheminé) les résistances R16, R13 R10, R2, R31 et R4 compromet la barrière d'isolement créée par vos opto-isolateurs. Ci-dessous, j'ai marqué votre disposition existante avec votre chemin d'isolement, qui est assez pauvre:

entrez la description de l'image ici

Avoir une seule zone d'isolement aussi large que possible (la largeur de vos opto-isolateurs). Gardez les circuits de ligne du côté ligne et les circuits isolés du côté isolé. Voir l'image ci-dessous pour des suggestions.

entrez la description de l'image ici


Ce sera utile et peut aider, mais croyez-vous réellement que ce soit la source entière du problème et que cette solution le résoudra complètement?
Adam Davis

1
@AdamDavis Non, je ne peux pas garantir que c'est la seule cause de problèmes. En fait, les conseils d'Olin et d'Andy devraient certainement être suivis. Cependant, c'est une considération de sécurité importante, et je peux également voir un assemblage moins que parfait exaspérer le problème.
W5VO

@ W5VO - J'ai fait une autre mise en page . Pouvez-vous s'il vous plaît le voir une fois et fournir vos précieuses suggestions? Merci d'avance.
Whiskeyjack

6

Plan au sol, plan au sol, plan au sol et très peu d'excuses. Jetez un oeil comment vous auriez pu faire beaucoup de ce circuit imprimé: -

entrez la description de l'image ici

J'ai passé environ 5 minutes à marquer (avec du rouge vif) des traces bleues qui pouvaient être rouges avec pratiquement aucun travail cérébral.

Je le ferais tomber et recommencerais.


4
@kolosy Nous commençons tous quelque part et nous avons tous fait de mauvaises dispositions lors du premier démarrage. C'est le meilleur conseil gratuit que le PO recevra et si vous pensez que je suis déraisonnablement sévère, je vous en prie, insistez, signalez cette réponse aux modérateurs.
Andy aka

1
Merci Andy. J'ai déjà mis un avion au sol dans ma deuxième conception. Pensez-vous que c'est le seul problème? PS - Je n'ai pas trouvé votre réponse dure en aucune façon. J'apprécie ton aide.
Whiskeyjack

4
@kolosy Honnêtement, je ne pense pas que la réponse soit insultante (et c'est peut-être parce que je suis d'accord avec le verdict d'Andy).
W5VO

1
@kolosy: Andy le dit tel qu'il est, et c'est quelque chose que le PO doit entendre en termes clairs. Et oui, je suis également d'accord avec son verdict.
Olin Lathrop

3
@Andyaka, c'est peut-être révélateur tel qu'il est, mais je ne vois pas l'intérêt d'apporter "aucune excuse" et "pratiquement aucun travail cérébral". Ce qui est évident et sans cervelle pour vous, ce n'est pas pour les gens qui débutent.
kolosy

2

D'après mon expérience, définir et réinitialiser des lignes, des bascules et d'autres circuits, sont très sensibles au «bruit électrique». La meilleure façon pratique d'éviter un comportement imprévisible des circuits est de découpler les lignes électriques de chaque puce avec des condensateurs appropriés. De plus, le déclenchement / l'activation des lignes d'entrée avec un signal d'horloge réduira la possibilité pour les "transitoires" d'affecter les circuits.


Je n'ai pas compris la dernière ligne. Pourriez-vous s'il vous plaît développer? Merci d'avoir répondu.
Whiskeyjack

1

lorsque je travaillais sur un projet de contrôle de charge basé sur DTMF, j'ai trouvé le même problème avec la charge CA. Sans charge CA, mon circuit de micro-contrôleur 8051 fonctionne bien. Lorsque j'alimente la charge CA, tout le circuit se comporte de manière variée lorsque j'allume / éteint la charge CA via le circuit de relais. Plus tard, j'ai trouvé que le sol coulé sur la carte 8051 n'était pas bon. Enfin, je remplace l'ancienne carte micro-contrôleur 8051 par une nouvelle carte micro-contrôleur 8051 avec une bonne coulée au sol. Maintenant, ça fonctionne bien. Par conséquent, j'ai pensé que votre PCB devrait avoir une bonne coulée au sol.


C'était exactement le problème. Eh bien, je venais de commencer le travail à ce moment-là et je ne savais rien de la bonne disposition des circuits imprimés, de la coulée au sol, de l'isolement, etc. Ce bug a longtemps été corrigé mais merci d'avoir répondu. J'espère que cela sert de bonne référence pour les personnes aux prises avec un problème similaire. (+1).
Whiskeyjack
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.