¿Puedo usar una tabla que tenga botones de escalera de resistencia en la frambuesa pi?

3

Tengo un reloj que tiene una placa de circuito con una configuración de escalera de resistencia para los botones. Quiero (desconectar el reloj y) poner un pi dentro y usar los botones para controlar el pi. En uso normal, la placa se suministra con voltaje y los botones se conectan a tierra. El reloj mide el voltaje de alguna manera (no creo que sea desde el lado de tierra porque si conecto el lado de tierra de la placa directamente a tierra, todavía funciona como se espera). Si conecto los pines gpio a los botones después de las resistencias pero antes del los botones de la tensión se vuelven atrás a través de la resistencia a la siguiente resistencia también. El resultado es que el pi detecta que se presiona más de un botón a la vez. Esto sucede porque la parte alta de las resistencias de la escalera de voltaje están unidas. ¿Cómo puedo conectar esto a la frambuesa pi sin quitar las resistencias?

    
pregunta FoxSam12

1 respuesta

3

Yo sugeriría que el esquema que muestres utilice un algoritmo de "tiempo de descarga" para decidir qué interruptor se presiona (o incluso si se presionan varios interruptores).

En el R'Pi, se puede conectar la línea 'clave' a un pin GPIO usando una resistencia de 1k Ohm (necesaria debido a SW7) y luego hacer algo como esto:

  1. Configure el GPIO para que emita un "1", esto cargará el condensador (puede haber interruptores presionados, por lo que la alta tensión depende de cuál (es) se presionan)
  2. Configure una interrupción en el GPIO que se está agotando
  3. Lea el temporizador del sistema (como this )
  4. Establezca el GPIO en entrada sin un pullup interno
  5. Cuando se produce una interrupción, vuelva a leer el temporizador del sistema y guárdelo (el valor de la diferencia está relacionado con el tiempo de descarga de la red RC al nivel bajo de GPIO). Entonces deberías ejecutar un RET
  6. De vuelta en el código de la línea principal, tiene el valor inicial y el segundo del temporizador del sistema ... resta los dos para obtener la diferencia.

No es muy preciso, pero es lo suficientemente bueno para saber qué interruptor se presiona. Será divertido catalogar todas las variaciones si se presionan varios interruptores, pero debería ser factible.

    
respondido por el Jack Creasey

Lea otras preguntas en las etiquetas