¿Cómo leer / rebotar un interruptor iluminado usando solo dos cables?

0

Estoy usando el interruptor de abajo como un interruptor de timbre de reemplazo. El LED requiere 12 VCA / CC y el interruptor ha cambiado los contactos. Hoja de datos .

Porrazonesestéticas,tengoquereutilizarelcableadoexistente,quetienesolodosnúcleosy~11mdelargo.Asíquelaformaenqueveoquefuncionaelinterruptores:-

  1. Cajanormal:LEDencendidoycorriente(~10mA)quefluyeatravésdeloscables.
  2. Botónpresionado-LEDapagadoysinflujodecorriente.

ElmediodeoperaciónanterioresposibleyaquepuedeconectarelLEDatravésdelosterminalesdelinterruptor.Claramente,aunquenoessolouncasosimpledelaresistenciatradicionaldeextracciónenelpindeentradadeunmicrocontrolador.MegustaríaqueelcircuitosearesistentealospicosdeEMI,asícomoalhardwarequeseanuncia.CreoquepuedomanejarlospicosdesobretensiónconunpardediodosSchottkymásresistencia.Miréatravésdeuna guía sobre rebotes (Fig.2) y alguna aplicación específica debounce ICs pero no parecen apropiadas para un Interruptor de estilo LED de dos núcleos. Además no puedo hacer montaje superficial. ¿Requiere esto algún tipo de detección de corriente? Un ADC a bordo está disponible. Un enfoque de cinturón y tirantes mantendrá a mi abuela feliz de no tener que correr hacia la puerta cada vez que un automóvil pasa o truena.

Creo que esta podría ser una pregunta original ya que otros utilizan suficientes núcleos para iluminar por separado el LED, como por ejemplo: -

Lea el estado de un interruptor iluminado de 12v de un Arduino Uno

Uso de un interruptor iluminado de 12V cambiar con un Arduino

    
pregunta Paul Uszak

2 respuestas

2

simular este circuito : esquema creado usando CircuitLab

Figura 1. Interruptor iluminado, opto-aislador y GPIO con pull-up interno habilitado. Tenga en cuenta los símbolos de tierra separados: el circuito remoto puede estar completamente aislado del microcontrolador para una mayor inmunidad al ruido.

En la posición de liberación del botón, el optoaislador estará encendido y el GPIO se bajará.

D2 será de tipo infrarrojo y disminuirá el voltaje al LED en aproximadamente 1.4 V y aproximadamente 1.4 mA o menos. No debería ser perceptible sin una comparación directa.

El rebote se puede hacer en software o agregando un condensador entre GPIO y tierra. \ $ C = \ frac {\ tau} {R} \ $ donde \ $ \ tau \ $ es el tiempo de rebote deseado y R es el valor de recuperación interno.

    
respondido por el Transistor
0

Debes hacer tu rebote en el código. Es mucho más fácil hacerlo así, especialmente para algo tan lento como un timbre. También puedes filtrar una gran cantidad de ruido en el código.

El siguiente circuito funcionará aunque no tiene el aislamiento que La respuesta de Transistor hace.

Básicamente, siempre y cuando el interruptor esté cerrado, la corriente fluirá a través del LED de regreso a través de la base de Q1, lo que hace que el GPIO esté bajo. Cuando se presiona el botón, Q1 se apagará con R5 y la línea GPIO se colocará en alto.

R2 y R3 le dan un poco de aislamiento a la línea larga y XSORBS le brinda algo de protección contra ESD.

simular este circuito : esquema creado usando CircuitLab

La supervisión de los botones se realiza mejor utilizando una interrupción de temporizador con dos estados, esperando presionar y esperando liberar. El siguiente diagrama de flujo muestra un método típico de eliminación de rebotes y omisión de ruido.

    
respondido por el Trevor_G

Lea otras preguntas en las etiquetas