j'ai un
- Arduino
- microcontrôleur
- autre chose numérique
et quand je connecte un
- moteur
- pompe
- chauffe-eau
- autre chose à fort courant
J'eprouve
- mesures ADC étranges
- redémarre
- plante
- erreurs dans la communication numérique
- autre comportement inattendu
Mon bloc d'alimentation est correctement dimensionné pour alimenter tous ces appareils. Je n'ai pas d'oscilloscope, donc je ne vois pas grand-chose de ce qui se passe réellement dans le circuit. Quelle est la cause probable?
digital-logic
noise
grounding
Phil Frost
la source
la source
Considérez ces deux circuits:
simuler ce circuit - Schéma créé à l'aide de CircuitLab
Sont-ils les mêmes? Dans le modèle à éléments groupés, ils le sont. Cependant, notre modèle néglige ce qui peut être un fait pertinent: les vrais fils ont une résistance. Introduisons quelques schémas qui modélisent:
simuler ce circuit
Considérez dans le circuit de droite ce qui se passe lorsque le courant consommé par le moteur change. Un instant, il est éteint et dessine 0A, puis il est allumé et dessine 1A. Ce 1A doit passer par R1 et R3. Selon la loi d'Ohm , il doit alors y avoir une chute de tension entre ces résistances de1 A ⋅ 1 Ω = 1 V . Avec 1V de la tension d'alimentation perdue sur chacun de R1 et R3, du point de vue du microcontrôleur, la tension d'alimentation est soudainement de 10V, pas de 12V.
Beaucoup d'électronique numérique ne l'aiment pas lorsque leur tension d'alimentation change rapidement. Des problèmes supplémentaires se produisent lorsqu'il y a plusieurs appareils essayant de se parler via un bus numérique, mais les courants élevés dans les rails d'alimentation donnent à chaque appareil une idée différente de ce qu'est la "masse". Regardez la "masse" du MCU et du moteur dans ce cas. Toutes les résistances ont 1A en elles, et donc 1V à travers elles. La "masse" au MCU est 1V différente de la "masse" au moteur! Si ce sont des appareils numériques qui signalent un "0" en faisant une tension égale à la "masse", ils ne communiqueront pas très bien quand ils ne pourront pas s'entendre sur ce qu'est la "masse".
Une solution à cela consiste à exécuter les deux connexions d'alimentation pour chaque appareil jusqu'à la batterie ou au régulateur de tension, et à y effectuer toutes les connexions d'alimentation pour chaque appareil. C'est la situation modélisée dans le circuit de gauche. Ici, lorsque le moteur se met en marche, il y aura un courant élevé dans R5 et R7. Il y aura une baisse de tension ici, mais le moteur ne s'en souciera pas. Pendant ce temps, le courant dans R6 et R8 est inchangé, tout comme la tension. Ainsi, la tension d'alimentation vue par le microcontrôleur est constante.
Vous n'avez pas à le faire tout le temps, pour chaque appareil, mais vous devez réfléchir à l'endroit où les courants élevés seront exécutés lorsque votre circuit comprend un tel appareil. N'oubliez pas que tous vos fils ont une certaine résistance et qu'ils subiront donc une chute de tension lorsque des courants élevés les traversent. Planifiez ensuite vos fils ou vos traces de manière à ce que les courants élevés ne traversent pas l'alimentation des composants sensibles, provoquant des problèmes de bruit.
Ce n'est là qu'une explication possible. D'autres réponses offriront sans aucun doute des possibilités supplémentaires.
la source