PDF de programación - MikroElektronika - Touchpanel

Imágen de pdf MikroElektronika - Touchpanel

MikroElektronika - Touchpanelgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 21 de Febrero del 2018)
541 visualizaciones desde el 21 de Febrero del 2018
1,2 MB
2 paginas
Creado hace 15a (06/01/2009)
PUBLICIDAD

De acuerdo.
De acuerdo.

Ahora necesitas una ...
Ahora necesitas una ...

pantalla táctil
pantalla táctil

¿Quieres que tu último proyecto tenga un interfaz sencillo e
intuitivo? Si la respuesta es SI, una pantalla LCD gráfi ca con un
panel táctil es la mejor elección porque juntos constituyen una
pantalla táctil (Glcd+Panel táctil = Pantalla táctil). De esta man-
era, con un reducido número de componentes electrónicos serás
capaz de crear un dispositivo atractivo y fácil de usar.

Por Dusan Mihajlovic
Departamento de Hardware de Mikroelektronika

a masa, mientras que el contacto superior se
conectará a la fuente de alimentación. En este
caso, la lectora de la tensión se hará en el con-
tacto izquierdo de la superfi cie X.

Conexión a un microcontrolador
Para conectar un panel táctil al microcontrolador,
es preciso crear un circuito para el control del pan-
el táctil. Por medio de este circuito, el microcontro-
lador conecta los contactos adecuados del panel
táctil a masa y a la tensión de alimentación (como

¿Qué es un panel táctil? Un panel táctil es un fi no
panel autoadhesivo colocado sobre la pantalla
de un LCD gráfi co. Es muy sensible a la presión
de manera que un suave toque provoca algunos
cambios en la señal de salida. Hay diferentes ti-
pos de paneles táctiles. El más sencillo de ellos
es el panel táctil resistivo que será del que hab-
laremos aquí.

Principio de funcionamiento
Un panel táctil resistivo está compuesto por
dos láminas rígidas transparentes, formando
una estructura “sándwich”, que tienen una capa
resistiva en sus caras internas. La resistencia de
estas capas no excede normalmente de 1Kohm.
Los lados opuestos de las láminas disponen de
contactos para acceder a un cable plano. El pro-
cedimiento para determinar las coordenadas
de la posición del panel que ha sido presionada
puede dividirse en dos pasos. El primero es la
determinación de la coordenada X y el segundo
el de la coordenada Y del punto. Para determinar
la coordenada X, es preciso conectar el contacto
izquierdo de la superfi cie X a masa y el contacto
derecho a la fuente de alimentación. Esto per-

mite obtener un divisor de tensión presionando
el panel táctil. El valor de la tensión obtenida en
el divisor se puede leer en el contacto inferior de
la superfi cie Y. La tensión variará en el rango de 0
V a la tensión suministrada por la fuente de ali-
mentación y depende de la coordenada X. Si el
punto está próximo al contacto izquierdo de la
superfi cie X, la tensión estará próxima a 0 V. Para
la determinación de la coordenada Y, es preciso
conectar el contacto inferior de la superfi cie Y

Detalle del
cable planol

Determinación de la coordenada Y

Figura 1. Estructura interna del panel táctil

Artículo publicitario de MikroElektronika
mikroC® y mikroC PRO® son marcas registradas de MikroElektronika. Reservados todos los derechos

www.mikroe.com

... making it simple

SOLUCIONES SOFTWARE Y HARDWARE PARA UN MUNDO EMBEBIDO www.mikroe.com

Esquema 1. Conexión de pantalla táctil

describimos anteriormente) para determinar las coordenadas X e Y (véase el
esquema 1). El contacto inferior de la superfi cie Y y el contacto izquierdo de
la superfi cie X están conectados al conversor A/D del microcontrolador. Las
coordenadas X e Y se determinan midiendo la tensión en los respectivos con-
tactos. En software consiste en mostrar un menú en una pantalla LCD gráfi ca,
conmutar de encendido a apagado del panel táctil (control del panel táctil)
y leer los valores del conversor A/D que representan realmente las coordena-
das X e Y de la posición. Una vez determinadas las coordenadas, es posible
decidir qué es lo que deseamos que haga al microcontrolador. Para ilustrarlo,
podemos dar un vistazo al Ejemplo 1. En él se explica cómo conmutar entre
“on” y “off ” dos pines digitales del microcontrolador, conectados a los LEDs A y
B, empleando para ello una pantalla LCD gráfi ca y un panel táctil.

... y después de conectar el
panel táctil.

Conector de cable plano en la
placa antes …
Teniendo en cuenta que la superfi cie del panel táctil es ligeramente mayor
que la del LCD gráfi co, en el caso de querer mayor precisión en la determi-
nación de las coordenadas, es preciso incluir el software de calibración del
panel táctil.

Funciones utilizadas en el programa
ADC_Read() Read analog value
Delay_ms() Delay

Draw fi lled box*

LCD display initialization*

Draw dot
Delete/fi ll display*

Glcd_box()
Glcd_circle() Draw circle
Glcd_Dot()
Glcd_Fill()
Glcd_H_Line() Draw horizontal line
Glcd_Image() Import image
Glcd_Init()
Glcd_Line() Draw line
Glcd_Read_Data() Read data from LCD
Glcd_Rectangle() Draw rectangle*
Glcd_Set_Font() Select font*
Glcd_Set_Page() Select page
Glcd_Set_Side() Select side of display
Glcd_Set_X() Determine X coordinate
Glcd_V_line() Draw vertical line
Glcd_Write_Char() Write character
Glcd_Write_Data() Write data
Glcd_Write_Text() Write text*
* Glcd library functions used in the program

Editor de bibliotecas mikroC PRO for AVR® con bibliotecas listas para
utilizar como: Ethernet, CAN, SD/MMC etc.

:

A
T
O
N

El código de este ejemplo para microcontroladores AVR® escrito en C, Basic
y Pascal, así como los programas escritos para microcontroaldores PIC® y
dsPIC® se pueden encontrar en www.mikroe.com/en/article/

Ejemplo 1: Programa para demostrar el funcionamiento de la pantalla táctil

// Glcd module connections
char GLCD_DataPort at PORTC;

sbit GLCD_CS1 at PORTD.B2;
sbit GLCD_CS2 at PORTD.B3;
sbit GLCD_RS at PORTD.B4;
sbit GLCD_RW at PORTD.B5;
sbit GLCD_EN at PORTD.B6;
sbit GLCD_RST at PORTD.B7;






char GLCD_DataPort_Direction at DDRC;

sbit GLCD_CS1_Direction at DDRD.B2;
sbit GLCD_CS2_Direction at DDRD.B3;
sbit GLCD_RS_Direction at DDRD.B4;
sbit GLCD_RW_Direction at DDRD.B5;
sbit GLCD_EN_Direction at DDRD.B6;
sbit GLCD_RST_Direction at DDRD.B7;
// End Glcd module connections

sbit DRIVE_A at PORTA.B2; sbit DRIVE_A_Direction at DDRA.B2; // Touch Panel module connections
sbit DRIVE_B at PORTA.B3; sbit DRIVE_B_Direction at DDRA.B3; // End Touch Panel module connections

long x_coord, y_coord, x_coord128, y_coord64;

// scaled x-y position

unsigned int GetX() {

//reading X



DRIVE_A = 1;
DRIVE_B = 0;
Delay_ms(5);
return ADC_Read(0);
}

// DRIVEA = 1 (LEFT drive on, RIGHT drive on, TOP drive off )
// DRIVEB = 0 (BOTTOM drive off )

// READ-X (BOTTOM)

unsigned int GetY() {

//reading Y

DRIVE_A = 0;
DRIVE_B = 1;
Delay_ms(5);
return ADC_Read(1);
}

void main() {

// DRIVEA = 0 (LEFT drive off , RIGHT drive off , TOP drive on)
// DRIVEB = 1 (BOTTOM drive on)

// READ-X (LEFT)

DRIVE_A_Direction = 1;
DRIVE_B_Direction = 1;
PORTB.B0 = 0;
DDRB.B0 = 1;
PORTB.B1 = 0;
DDRB.B1 = 1;

Glcd_Init();
Glcd_Fill(0);
Glcd_Set_Font(font5x7, 5, 7, 32);
Glcd_Fill(0);








// Set DRIVE_A pin as output
// Set DRIVE_B pin as output

// Set PB0 pin as output (Default value 0)

// Set PB1 pin as output (Default value 0)

// Initialize GLCD
// Clear GLCD
// Choose font,

Glcd_Write_Text(“TOUCHPANEL EXAMPLE”,10,0,1);
Glcd_Write_Text(“MIKROELEKTRONIKA”,17,7,1);

Glcd_Rectangle(8,16,60,48,1);
Glcd_Rectangle(68,16,120,48,1);
Glcd_Box(10,18,58,46,1);
Glcd_Box(70,18,118,46,1);
Glcd_Write_Text(“BUTTON1”,14,3,0);
Glcd_Write_Text(“PB0 OFF”,14,4,0);
Glcd_Write_Text(“BUTTON2”,74,3,0);
Glcd_Write_Text(“PB1 OFF”,74,4,0);

while (1) {





//Display Buttons on GLCD:

// read X-Y and convert it to 128x64 space

x_coord = GetX();
y_coord = GetY();
x_coord128 = (x_coord * 128) / 1024;
y_coord64 = 64 -((y_coord *64) / 1024);







//if BUTTON1 is selected

if ((x_coord128 >= 10) && (x_coord128 <= 58) && (y_coord64 >= 18) && (y_coord64 <= 46)) {
if(PORTB.B0 == 0) {
PORTB.B0 = 1;
Glcd_Write_Text(“PB0 ON “,14,4,0);
}
else {
PORTB.B0 = 0;
Glcd_Write_Text(“PB0 OFF”,14,4,0);
}
}







//if BUTTON2 is selected

if ((x_coord128 >= 70) && (x_coord128 <= 118) && (y_coord64 >= 18) && (y_coord64 <= 46)) {
if(PORTB.B1 == 0) {
PORTB.B1 = 1;
Glcd_Write_Text(“PB1 ON “,74,4,0);
}
else {
PORTB.B1 = 0;
Glcd_Write_Text(“PB1 OFF”,74,4,0);
}
}
Delay_ms(100);
}
}

E

s

O

r

o

d

R

R

o m p il a
C P
r A

V

c

o

n e l c
rit o e
r
m i k
f o

Atmel®, su logo y combinacions del mismo, AVR® y otros son marcas registradas o marcas de Atmel Corporation o sus subsidiarias.
Otros términos y productos pueden ser marcas de otros.
  • Links de descarga
http://lwp-l.com/pdf8931

Comentarios de: MikroElektronika - Touchpanel (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad