Diseñando una interfaz de volante de automóvil, es necesario distinguir entre dos escaleras de resistencia en el mismo ADC

3

Estoy diseñando una interfaz para el volante de mi automóvil a una unidad principal de Android, usando un Sparkfun Arduino Pro Micro para manejar el lado USB de las cosas. Los botones del volante utilizan tres cables y una escalera de resistencia para los botones, como se muestra en este diagrama del manual de servicio:

Cadaresistenciaeneldiagramatieneelmismovalor.Misoluciónactualesasí:

simular este circuito : esquema creado usando CircuitLab

Lo cual funciona en mi PC, pero causa dos problemas en el auto

  1. Al presionar "Power Switch" o "Mode Switch" se produce un apagón en el microcontrolador y se restablece, probablemente debido a que se excede la corriente USB.
  2. El automóvil es un entorno mucho más ruidoso y los botones del "Interruptor de volumen" no se distinguen de manera confiable en el automóvil, no importa cuánto alisado haga en el código.

Idealmente, lo que necesito es saber qué línea ( L o W ) se presiona cuando el ADC lee un valor. Esto haría que el ruido sea un problema mucho menor y, entonces, probablemente podría aplicar algún tipo de limitación de corriente para eliminar los apagones sin preocuparme por comprimir demasiado el rango de valores de ADC (y perder el diodo).

¿Existe una forma sencilla en que pueda leer el valor en el ADC y usar un pin digital para averiguar qué línea se presionó (con suerte sin demasiados componentes)?

    
pregunta Kaboom22

1 respuesta

4

Sería mejor tener el punto predeterminado referenciado a la mitad del riel ...

Algo como esto.

simular este circuito : esquema creado usando CircuitLab

De esa manera, los interruptores ajustarán los voltajes ya sea más altos o más bajos que el punto medio. R3, R4 y R5 proporcionan un poco de aislamiento y deben ser < < que R1 y R2. Eligió valores para R1 y R2 que se encuentran en el mismo rango que las resistencias en el volante por alrededor de 3. Eso debería proporcionarle aproximadamente los siguientes voltajes.

Tambiénagregueuncondensadorparaproporcionarleunapequeñareducciónderuidoydeshacersedepartedelacargadelinterruptor.

TambiénpuedeconsideraragregaralgunaprotecciónESD.

Encasodequenolosepa,elsoftwaredebemanejarestetipodeescaneodebotonesconcuidado.Dadoqueelvoltajesedesplazaráatravésdeotrosvoltajeshastaelvalorpresionadoporelinterruptor,serequiereunaciertacantidaddepromediosycomparacióndetiempo.

Si el promedio de funcionamiento es lo suficientemente profundo, no se puede omitir el condensador de desacoplamiento.

    
respondido por el Trevor_G

Lea otras preguntas en las etiquetas