¿Cómo controlo una pantalla táctil resistiva?

La esencia de mi problema es que tengo una pantalla táctil resistiva y una Raspberry Pi, y necesito hacer que una se comunique con la otra usando un solo ADC de algún tipo.

He trabajado con un Arduino y también conozco el concepto básico detrás de una pantalla táctil resistiva. Sin embargo, tengo algunos problemas para planificar cómo conectarlo a la raspberry pi y no quiero comprometerme demasiado con las piezas a menos que sepa cómo lo voy a hacer. Básicamente, necesito poner voltaje a través de los cables x+ y x-, mientras mido el cable y+ usando el ADC, ¿verdad? Pero luego tengo que cambiar los cables y poner voltaje a través de los cables y+ e y-, y medir el cable x+.

En un Arduino es obvio cómo hacerlo, porque los pines de entrada analógica también pueden servir como salidas digitales. Pero no tengo tanta suerte con el Pi. Puedo conectar un ADC al pi, pero no estoy muy seguro de qué ADC hará el trabajo, ya que parece que también debe proporcionar salidas digitales. Estoy viendo ADC básicos como el MCP3008 en este momento. ¿Es posible controlar una pantalla táctil resistiva con un chip de este tipo y, de ser así, cómo? Si no, ¿qué circuitos integrados necesito?

Además, si va a sugerir un IC, apéguese a los que se pueden encontrar en los paquetes PDIP. Sé que eso es MUY restrictivo (muchos de los "ADC digitalizadores de pantalla táctil" que he visto son solo TSSOP/QFN), pero este es un pequeño pasatiempo para mí, estoy trabajando en una placa de prueba y realmente no tengo la herramientas para usar otros paquetes.

Respuestas (1)

Bueno, haces la medición de la misma manera que en Arduino. El MCP3008 tiene 8 canales, por lo que puede realizar fácilmente 8 mediciones. Normalmente conectaría dos canales del ADC a los cables X+ e Y+. Los conectores del ADC están en modo de entrada de alta impedancia, por lo que puede tratarlos como desconectados en lo que respecta a la fuente de alimentación.

Luego, también debe conectar dos pines GPIO de Raspberry Pi a los conectores X+ e Y+ y conectar los conectores X- e Y- a los pines GND en Raspberry Pi.

Cuando desee realizar mediciones para el eje X, configure el pin Y+ para flotar, el pin X+ en alto y luego use el ADC en el canal Y+. Lo mismo ocurre cuando se mide el eje Y.

Ahora sobre el ADC: Bueno, dado que el ADC es un convertidor analógico a digital, debe tener salidas digitales. Todos los ADC tienen salidas digitales, así es como se comunican con el resto del sistema. Los pines de salida digital están separados de los pines de entrada analógica, por lo que no habrá problemas de comunicación.

El ADC particular al que se vinculó usa SPI. En Raspberry Pi, puede usar el puerto SPI de hardware o usar pines GPIO para SPI de software. Tenga en cuenta que ADC requiere un reloj SPI incluso cuando no hay transferencia de datos para poder ejecutar la conversión.

Aquí hay dos artículos relativamente buenos con un poco de información sobre MCP3008 en Raspberry Pi: MCP3008 con hardware SPI , MCP3008 con software SPI .

Hmm, estaba pensando en poner las salidas GPIO y las entradas ADC en los mismos pines. Mi experiencia práctica tanto con el ADC como con la plataforma es un poco limitada en este momento, así que pensé que habría algún tipo de interferencia allí. De todos modos, me alegra saber que funciona! ¡Gracias por su rápida respuesta!