J'ai appris le microcontrôleur pic pendant un certain temps et j'ai une quantité raisonnable de connaissances sur la manipulation de l'électronique numérique. J'ai travaillé sur des projets électroniques de base et maintenant je dois travailler sur certaines applications commerciales.
Ma question est de savoir comment concevoir et construire des circuits fiables et durables. J'ai construit un circuit de contrôleur d'éclairage automatique qui prend l'entrée d'un LDR et affiche la valeur de la lecture analogique sur un panneau à sept segments. Ensuite, il fait quelques calculs et contrôle une lumière à travers un relais. Ce circuit doit être allumé en permanence (24h / 24). Les premiers mois, le circuit a parfaitement fonctionné, mais après environ 6 mois, il a commencé à mal fonctionner. Il a montré des choses insensées sur l'affichage à 7 segments (il n'a montré que des parties de chiffres), puis il allume l'ampoule sur le voyant LED mais il n'allume pas le relais. Ce n'est pas le comportement attendu. Le truc, c'est que ça ne fonctionnera pas toujours de cette façon. Parfois, cela fonctionne parfaitement. Puis il recommence à mal fonctionner. Il n'y a pas d'ordre exact dans lequel cela fonctionne.
Maintenant, ma question est de savoir pourquoi ces circuits se comportent de cette façon. Je suppose que cela peut être parce qu'il fonctionne toute la journée sans aucun intervalle. Ce type d'application doit fonctionner toute la journée. J'utilise PIC car je ne connais que la photo. Atmal est-il plus fiable que pic? (J'ai demandé parce que atmal est utilisé dans la plupart des applications d'automatisation, plus fréquemment que l'image n'est utilisée) J'ai besoin des conseils d'un expert en électronique numérique. Comment se construit ce type d'applications industrielles? Y a-t-il des règles spéciales à suivre? Comment concevoir des circuits plus fiables? Tout conseil ou orientation d'un expert sera très apprécié. Je vous remercie...
ÉDITER
Comme cela est suggéré dans les réponses, je vais modifier ma réponse en fournissant des ressources supplémentaires pour aider à comprendre les bogues dans la conception.
Ci-dessous, une image décrivant à quoi ressemble le circuit après sa construction. C'est un transformateur à prise centrale 12V qui alimente le circuit, il est redressé à l'aide d'un redresseur demi-onde, puis régulé à l'aide d'un CI 7805.
Voici la conception schématique.
Si des informations supplémentaires sont nécessaires, je fournirai tout le nécessaire. Si le programme est nécessaire, je l'ajouterai. Le programme est un peu long, il utilise des interruptions.
la source
Réponses:
Avant de commencer à penser au changement, assurez-vous d'avoir une bonne conception solide. Vous devez commencer à réfléchir à toutes les façons dont vous pourriez avoir des problèmes dans votre conception. Un bon moyen de le faire est d'arrêter de considérer un microprocesseur comme une "boîte magique" dans laquelle vous mettez du code et faites ce que vous lui dites et commencez à penser à son fonctionnement, au niveau de la porte et au niveau du système. Vous devez garder votre microprocesseur heureux.
Ce que vous devez vraiment faire, c'est trouver le mécanisme de défaillance, vous devez savoir pourquoi il échoue. Une fois que vous savez pourquoi son échec, vous pouvez résoudre le problème. Si vous ne trouvez pas cela, vous devrez rendre votre conception invincible pour éviter tout problème. Sinon, vous pourriez changer de microprocesseur et avoir toujours les mêmes problèmes. Si vous voulez changer, ST fabrique quelques excellents microprocesseurs qui sont plus adaptés aux applications industrielles.
la source
Puisque vous ne le dites pas, je me demande comment le circuit en difficulté est physiquement construit - car cela ressemble exactement au type de problème qui est généralement observé lorsque quelqu'un qui ne soude pas construit un circuit sur une planche à pain temporaire "push to connect" et part pendant quelques mois.
Si cela ressemble à votre cas, il y a votre problème; sinon, je soupçonnerais toujours de mauvaises connexions, mais cela devient plus un problème de «compétence à souder» qu'un problème de «défaut de souder quoi que ce soit».
la source
Vous n'avez pas de condensateur de découplage sur l'alimentation PIC, mais sur une petite carte comme celle-ci, vous vous en sortirez probablement. Vous pouvez également vouloir ajouter une protection contre les baisses de tension afin que le PIC soit réinitialisé si la tension tombe en dessous d'un seuil.
Mais je regarderais votre code.
Pour commencer, vous devriez avoir le chien de garde activé sur le micro. Si le code cesse de fonctionner correctement, le chien de garde le redémarrera.
Cependant, vous avez probablement un bug quelque part. En tant qu'ingénieur logiciel embarqué de profession, je suppose que c'est lié aux interruptions, car c'est là que les débutants font le plus souvent des erreurs. Cependant, en tant que débutant, il y a un ensemble énorme d'erreurs que vous pouvez faire dans le code, donc ce n'est que le premier endroit où je chercherais. (Ne soyez pas offensé - j'ai moi-même fait beaucoup de ces erreurs, y compris quand j'aurais vraiment dû mieux savoir. ;-)
la source
Je suis d'accord avec les commentaires que vous avez besoin d'un joli gros condensateur de chaque côté du 7805. Surtout avec un relais là-bas. Je pense que c'est le problème racine. J'ajouterais également un condensateur de découplage sur les lignes d'alimentation du PIC.
Je chercherais également des joints secs.
Je serais également en train de vérifier minutieusement mon programme et d'utiliser n'importe quelle installation de surveillance.
Mais voici quelques extraits intéressants de votre question:
J'essaierais de comprendre ce qui s'est passé. Le PIC s'est-il écrasé par exemple?
Maintenant, si j'ai bien lu votre schéma, pour que chacun des affichages à 7 segments montre quelque chose , et quelque chose de différent et de constant sur au moins deux d'entre eux, alors chacun des Q1, Q2 et Q3 doit encore être tourné allumé en séquence et les sorties vers les segments doivent être correctes. Cela me dirait que votre PIC exécute toujours au moins une partie de son code, mais d'une manière ou d'une autre la sortie numérique a été brouillée. Par exemple, il n'a peut-être pas été donné un chiffre 0-9 à afficher, mais un chiffre 17 ou similaire (pour lequel il obtient la disposition des chiffres à partir d'un emplacement de mémoire aléatoire).
Vous dites:
En regardant le schéma, à moins que la sortie PIC ne soit pulsée ou quelque chose (pas impossible car c'est également un port de sortie de minuterie), cela devrait être soit une panne électrique (par exemple, joint sec), un problème d'alimentation (voir ci-dessus concernant les condensateurs) , ou le transistor Q4 n'est (peut-être) pas complètement saturé. Je n'ai pas lu la fiche technique PIC, mais un BC547 a un I C maximum de 100mA (j'espère que cela suffit pour piloter votre relais et la LED), et un hFE de 120 à ce genre de niveau, vous aurez donc besoin d'environ 1mA en. 10k pourrait donc être un peu beaucoup. Je pourrais essayer 3k3.
De plus, vous n'avez aucun moyen utile de débogage. Comme votre affichage est allumé en permanence, vous pouvez peut-être faire clignoter le point décimal final une fois par seconde (ou similaire) pour indiquer que tout va bien.
Si je devais prendre un coup de fou sauvage dans l'obscurité, je suppose que, surtout lorsque le relais est activé, le circuit consomme beaucoup de courant. En raison de l'absence d'un grand condensateur du côté entrée du 7805, lorsque la tension alternative croise zéro, le 7805 ne fournira aucun courant de sortie (et peut en effet drainer le condensateur lui-même) - à partir de la fiche technique du 7805 . la tension d'entrée doit rester typiquement 2,0 V au-dessus de la tension de sortie même pendant le point bas de la tension d'ondulation d'entrée » . La tension sur le PIC sera donc réduite, peut-être assez pour le planter. Mettez une portée de la ligne 5V à côté du PIC et si vous ne voyez rien d'autre qu'une belle ligne 5V solide, vous savez que vous avez un problème.
la source
Chaque fois que vous avez un comportement erratique dans un microprocesseur, il existe deux sources principales pour le problème. 1) condensateurs "bypass" manquants ou insuffisants, 2) broches "flottantes" du microprocesseur.
Chaque "puce" doit avoir un capuchon de dérivation, juste au niveau de la broche de puce connectée à Vcc (+ 5v).
Toute broche non utilisée doit être attachée haut ou bas, mais ne doit jamais être laissée "flottante".
Je suis d'accord que vous ne conduisez pas "assez fort" Q4, je recommande 1K pour R12.
la source