J'ai le bouton de sonnette de ma maison câblé dans une carte de développement GHI EMX . Le logiciel évalue l'heure de la journée et détermine si la sonnette doit sonner ou non.
Note latérale: Cela a été mis en œuvre comme un moyen de traiter les farces de ding-dong-ditch que je recevais.
Tout cela fonctionne très bien, sauf pour un problème, le fil connecté à la carte EMX mesure environ 50 pieds (~ 15 mètres) de long et génère suffisamment d'interférences pour que la carte pense que quelqu'un a appuyé sur le bouton et donc ma sonnette sonne à des intervalles aléatoires tout au long le jour. Ma femme et mon chien n'apprécient pas cela (mais les enfants pensent que c'est très amusant).
J'ai essayé de résoudre le problème en suivant les conseils de cet article et en implémentant le circuit suivant:
Cela n'a pas résolu le problème, mais j'ai trouvé que le fait de mettre une résistance de 3k dans le for 1k et de remplacer le condensateur .01uF par un 40uF fonctionnait un peu mieux, mais rien de plus que 3k provoque un retard notable lorsque vous appuyez sur le bouton avant le cloche sonne. La différence pour mon circuit est que la carte fonctionne sur 3,3 V au lieu de 5 V (ce qui, je suppose, aggrave le problème) et au lieu de se connecter à la terre, le commutateur complète le circuit (c'est-à-dire que deux fils passent entre le microcontrôleur et le commutateur).
Le fil qui passe entre le commutateur et le microcontrôleur est un fil de sonnette standard qui n'est ni blindé ni torsadé. Remplacer le fil de la sonnette par du fil blindé n'est malheureusement pas une option car cela nécessiterait que j'arrache la cloison sèche.
J'ai examiné la question suivante ici , mais cela semble concerner un ADC qui pourrait être un peu différent de mon problème. Toute aide serait très appréciée.
Mise à jour
Après avoir lu plus de la documentation , il apparaît que bien que le microcontrôleur soit alimenté par 3,3 V, il tolère 5 V sur ses broches d'E / S. Je peux m'ajuster à une valeur de résistance plus élevée si j'utilise 5V, mais cela va-t-il aider quelque chose?
la source
Réponses:
Ce que le schéma ne montre pas, c'est l'énorme bourdonnement en mode commun à 60 Hz et comment les motifs sont interconnectés avec la proximité des lignes CA et des transitoires de la ligne électrique.
Votre exemple est un bon exemple de la façon de ne pas interfacer les fils longs.
Puis-je suggérer à l'avenir;
Étant donné que de nombreuses options ne sont pas disponibles. Faites-les;
Avec cette solution, l'impédance du circuit de commutation aura une faible impédance à la fermeture et une faible impédance avec un capuchon électrique sur le commutateur lorsqu'il est ouvert. Le ronflement CM sera absorbé et le bruit RF différentiel sera supprimé.
-pullup à la même tension d'alimentation que uC avec un bon capuchon RF sur la puce.
la source
Une solution simple peut être de laisser le système de sonnette comme il était avant de commencer ce projet et d'utiliser simplement le microcontrôleur pour couper l'alimentation du haut-parleur de sonnette avec un relais lorsque vous ne voulez pas entendre la sonnette.
Mise à jour
Je ne suis pas très familier avec les systèmes de sonnette (autre qu'un google rapide), donc ce qui suit suppose que vous avez au moins deux conducteurs allant de votre MCU au commutateur.
La carte GHI EMX que vous avez possède un ADC 10 bits afin que vous puissiez envoyer 12vDc (ou plus) à la sonnette et utiliser un simple diviseur de tension afin que la tension vers le MCU ne dépasse pas 5 volts max. Ensuite, du côté logiciel, tout ce que vous feriez serait de lire l'ADC et si la valeur est> 1000 (vous devrez peut-être jouer avec ce nombre, et 1023 est le maximum sur un ADC 10 bits), alors la sonnette a été enfoncée.
Cela ressemblerait à quelque chose comme ça (essayez de ne pas être submergé par mes impressionnantes compétences d'édition graphique):
Une autre option similaire est d'utiliser un déclencheur schmitt avec une tension d'entrée plus élevée. Mais cela nécessiterait des pièces supplémentaires et représente plus d'efforts que l'option ADC.
Éditer
La réponse de Chris Stratton a fait un bon point sur le flux actuel. Si vous changez la résistance de tirage de 100k en une résistance de ~ 220ohm, cela peut faire l'affaire.
la source
Il existe en fait une solution très simple à ce problème.
La clé pour comprendre cette solution est de réfléchir à la raison pour laquelle une sonnette électromécanique ordinaire ne sonne pas en raison d'interférences similaires. La réponse est bien sûr qu'il faut que la puissance réelle de l'anneau passe à travers le circuit fermé - les interférences ne coupleront pas suffisamment de puissance dans le circuit ouvert pour sonner faussement.
Vous pouvez créer une situation similaire en utilisant une résistance de rappel de faible valeur, avec le bouton de sonnette connecté à la terre. Une résistance de cent ohms signifierait qu'environ 25 milliampères de courant devraient s'écouler avant que l'entrée du microcontrôleur soit suffisamment basse pour être lue comme un "0". La communication série longue distance se fait souvent avec un courant de 20 mA, donc 25 mA devraient suffire, mais vous pouvez facilement ajuster vers le haut ou vers le bas.
Vous pouvez en outre rejeter les interférences en ayant un logiciel sur le microcontrôleur qui nécessite que le bouton soit maintenu fermé - sans espace - pendant environ 100 mS avant qu'il ne soit reconnu comme un anneau valide.
On pourrait faire valoir que cette méthode gaspille de l'énergie, mais l'énergie n'est consommée que pendant le temps où le buzzer est maintenu enfoncé. La résistance doit avoir la capacité de gestion de l'énergie (thermique) pour la possibilité de blocage du bouton fermé en permanence, mais ce ne serait pas le cas ordinaire pour calculer la consommation d'énergie.
la source
Le câble de 15 mètres agit comme une antenne. Vous devez utiliser un condensateur de traversée (par exemple W2F11A4708AT1F ) afin de filtrer les interférences RF.
la source