Pantallas táctiles resistivas

3

Estuve leyendo este artículo sobre cómo conectar un microcontrolador con una pantalla táctil resistiva de 4 cables, y me encontré un poco confundido.

El artículo sugirió que esto podría hacerse usando cuatro pines de E / S digitales y dos entradas ADC. Dos de los cuatro cables de la interfaz de la pantalla táctil son para el eje X y dos para el eje Y. Los pares se operan de forma independiente (por ejemplo, el otro par está truncado por el microcontrolador).

La operación realizada por el microcontrolador en cada par es aplicar Vcc a un cable y aplicar Gnd al otro. El cable al que se aplica Gnd también está conectado a una entrada ADC en el microcontrolador, y la lectura de voltaje es proporcional a la posición que se toca a lo largo de ese eje.

Lo que no entiendo es por qué el ADC leería algo menos que 0V, ya que el microcontrolador está conduciendo ese cable a Gnd. ¿Cómo funciona esto?

Aquí está el esquema del artículo para referencia:

    
pregunta vicatcu

2 respuestas

2

Creo que la lectura se toma desde el otro eje. Entonces, si desea leer el eje X, aplique potencia / masa a los cables X y lea el ADC conectado a Y.
Si observa que en el fragmento de código, se dice que la potencia se aplica al eje X, pero la lectura se toma de CH0 (RA0) y se denomina result_y (creo que el diagrama puede tiene conexiones RC0 y RC3 mezcladas ):

//Set PORTA To Inputs/High Impedance
TRISAbits.TRISA0 = 1;
TRISAbits.TRISA1 = 1;

//Set Lower 2 Bits to High Impedance
TRISCbits.TRISC0 = 1;
TRISCbits.TRISC1 = 1;
//Set Higher 2 Bits to Output
TRISCbits.TRISC2 = 0;
TRISCbits.TRISC3 = 0;

PORTCbits.RC0 = 0;
PORTCbits.RC1 = 0;
//Provide Ground To X-axis Of Touch Screen
PORTCbits.RC2 = 0;
//Provide Power To X-axis Of Touch Screen
PORTCbits.RC3 = 1;

// configure A/D convertor
OpenADC( ADC_FOSC_32 & ADC_RIGHT_JUST & 
ADC_8ANA_0REF,ADC_CH0 & ADC_INT_OFF );

Delay10TCYx( 5 ); // Delay for 50TCY
ConvertADC(); // Start conversion
while( BusyADC() ); // Wait for completion
result_y = ReadADC(); // Read result
CloseADC();
    
respondido por el Oli Glaser
1

Oli Glaser tiene razón.

El artículo sugiere usar 4 pines analógicos y 2 pines de salida digital para enviar corriente a través de la pantalla táctil. En los PIC más recientes, puede configurar los pines como salida analógica y de salida digital, y cambiar entre los dos modos es tan simple como cambiar los registros TRIS.

Entonces, dependiendo de tu microcontrolador, probablemente puedas usar 4 pines en lugar de 6 para esta tarea.

    
respondido por el Mervin

Lea otras preguntas en las etiquetas