Tengo el botón del timbre de mi casa conectado a una placa de desarrollo GHI EMX . El software evalúa la hora del día y determina si el timbre debe sonar o no.
Nota al margen: Esto se implementó como una forma de lidiar con las bromas ding-dong-ditch que estaba recibiendo.
Todo esto funciona muy bien, excepto por un problema, el cable conectado a la placa EMX mide alrededor de 50 pies (~ 15 metros) de largo y genera suficiente interferencia para que la placa piense que alguien ha presionado el botón y, por lo tanto, mi timbre suena a intervalos aleatorios durante todo el proceso. El dia. Tanto mi esposa como mi perro no aprecian esto (pero los niños piensan que es muy divertido).
Intenté solucionar el problema siguiendo los consejos que se encuentran en este artículo e implementando el siguiente circuito:
Esto no solucionó el problema, pero encontré que poner una resistencia de 3k en 1k y reemplazar el capacitor de .01uF por 40uF funcionó un poco mejor, pero cualquier cosa mayor a 3k causa un retraso notable al presionar el botón antes de suena la campana. La diferencia para mi circuito es que la placa funciona con 3.3V en lugar de 5V (lo que supongo empeora el problema) y en lugar de conectarse a tierra, el interruptor completa el circuito (es decir, dos cables van entre el microcontrolador y el interruptor).
El cable que corre entre el interruptor y el microcontrolador es un cable de timbre estándar que no está blindado ni retorcido. Reemplazar el cable del timbre con cable blindado, desafortunadamente, no es una opción, ya que eso requeriría que corte el panel de yeso.
He visto la siguiente pregunta aquí , pero parece estar tratando con un ADC que podría ser un poco diferente de mi problema. Cualquier ayuda sería muy apreciada.
Actualización
Después de leer más de la documentación , parece que aunque el microcontrolador funciona con 3.3V, es tolerante a 5V en sus pines de E / S. Puedo ajustarme a un valor de resistencia más alto si uso 5V, pero ¿esto ayudará en algo?
fuente
Respuestas:
Lo que el esquema no muestra es el enorme zumbido en modo común de 60Hz y cómo las tierras están interconectadas con la proximidad a líneas de CA y transitorios de línea de alimentación.
Su ejemplo es un buen ejemplo de cómo no interconectar cables largos.
¿Puedo sugerir en el futuro;
Dado que muchas opciones no están disponibles. Haz esto;
Con esta solución, la impedancia del circuito del interruptor tendrá una baja impedancia en el cierre y una baja impedancia con la tapa electa en el interruptor cuando esté abierto. Se absorberá el zumbido CM y se suprimirá el ruido diferencial de RF.
-Tire al mismo voltaje de suministro que uC con buena capacidad de RF a través del chip.
fuente
Una solución simple puede ser dejar el sistema de timbre como estaba antes de comenzar este proyecto y simplemente usar el microcontrolador para apagar el altavoz del timbre de la puerta con un relé cuando no desee escuchar el timbre.
Actualizar
No estoy muy familiarizado con los sistemas de timbre (aparte de un google rápido), por lo que lo siguiente supone que tiene al menos dos conductores que van desde su MCU al interruptor.
La placa GHI EMX que tiene tiene un ADC de 10 bits, por lo que puede enviar 12vDc (o más) al timbre y usar un divisor de voltaje simple para que el voltaje a la MCU no los 5 voltios máximo. Luego, en el lado del software, todo lo que debería hacer es leer el ADC y si el valor es> 1000 (puede que tenga que jugar con este número, y 1023 es el máximo en un ADC de 10 bits), entonces se ha presionado el timbre.
Se vería así (intenta no sentirte abrumado por mis increíbles habilidades de edición gráfica):
Otra opción similar es utilizar un disparador schmitt con un voltaje de entrada más alto. Pero esto requeriría piezas adicionales y es más esfuerzo que la opción ADC.
Editar
La respuesta de Chris Stratton hizo un buen punto sobre el flujo actual. Si cambia la resistencia de extracción de 100k a una de ~ 220ohm, puede hacer el truco.
fuente
En realidad, hay una solución muy simple para este problema.
La clave para comprender esta solución es pensar por qué un simple timbre electromecánico no suena debido a una interferencia similar. La respuesta, por supuesto, es que requiere que la potencia real del anillo fluya a través del circuito cerrado; la interferencia no juntará suficiente potencia en el circuito abierto para sonar falsamente.
Puede crear una situación similar utilizando una resistencia pullup de bajo valor, con el botón del timbre conectado a tierra. Cien ohmios de resistencia significarían que alrededor de 25 miliamperios de corriente tendrían que fluir antes de que la entrada del microcontrolador sea lo suficientemente baja como para leer como un "0". La comunicación en serie de larga distancia a menudo se realiza con una corriente de 20 mA, por lo que 25 mA deberían ser suficientes, pero puede ajustarla fácilmente hacia arriba o hacia abajo.
Puede rechazar aún más la interferencia si tiene un software en el microcontrolador que requiere que el botón se mantenga cerrado, sin espacios, durante unos 100 ms antes de que se reconozca como un anillo válido.
Se podría argumentar que este método está desperdiciando energía, sin embargo, la energía solo se consume durante el tiempo en que se mantiene presionada la alarma. La resistencia necesita tener la capacidad de manejo de energía (térmica) para la posibilidad de que el botón se atasque permanentemente cerrado, pero ese no sería el caso normal para calcular el consumo de energía.
fuente
El cable de 15 metros está actuando como una antena. Debe utilizar un condensador de alimentación (por ejemplo, W2F11A4708AT1F ) para filtrar la interferencia de RF.
fuente