Cómo detectar y medir un cambio de paso en la resistencia

2

Reemplacé el estéreo de mi auto con una Raspberry Pi 3 y una pantalla táctil de 7 ". Todo funciona bien, pero ahora quiero conectar los botones de control de volumen del volante a la Pi. Los botones funcionan cambiando la resistencia a través de dos cables en el arnés de cableado estéreo. Sin presionar los botones, la resistencia es de 10 kΩ, los cambios de volumen aumentan a 300Ω y el volumen hacia abajo es de 50Ω.

Anteriormente, he usado un ADC MCP3008 para leer los valores de resistencia con una Pi, sin embargo, en ese caso, simplemente encuesté el ADC según fuera necesario. En este caso, creo que el sondeo tomaría demasiada potencia de CPU para la frecuencia de muestreo que necesito.

También he usado anteriormente la biblioteca Wiring Pi para configurar las interrupciones GPIO para detectar el aumento y la disminución de los bordes en el voltaje. Mi plan actual es utilizar una interrupción para detectar el cambio de voltaje cuando presiono un botón, luego usarlo para activar una lectura desde el ADC para obtener el valor de resistencia preciso.

Mi pregunta es, ¿es esta una buena manera de hacer esto o hay algo mejor?

    
pregunta Carlton

2 respuestas

1

Si usa 3V3 como punto de partida y agrega una resistencia de 1k en serie con sus botones, obtendrá 3V si no se presiona ningún botón, 0,76 V para arriba y 0,16 V para abajo.

Los voltajes "arriba" y "abajo" están bien en el voltaje de nivel lógico "0", mientras que el "no botón" es un "1", por lo que su interrupción de cambio de pin GPIO no tendrá problemas para detectarlos.

También el ADC no debería tener problemas para decir la diferencia entre "arriba" y "abajo".

No olvide agregar algunos condensadores nF en la entrada para filtrar el ruido que produce un automóvil en cantidades generosas ...

    
respondido por el peufeu
1

Otro enfoque: si tiene un segundo pin GPIO disponible, conéctelo al primero con una resistencia de valor medio.

Puede desactivar esa salida y usar la diferencia entre 10 K y "bajo" para interrumpir.

Luego, el controlador lo enciende para medir la diferencia entre 300R y 50R, y lo apaga de nuevo para ahorrar energía.

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas