PICELECTRONICA
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Tutorial de PROTON manejo de teclado matricial

Ir abajo

Tutorial de PROTON manejo de teclado matricial Empty Tutorial de PROTON manejo de teclado matricial

Mensaje  Electrobicho Mar Abr 24, 2012 2:46 pm

La manera mas fácil de lograr el mapeo efectivo de un teclado matricial, en este caso de 4×4, se logra usando la librería disponible que ofrece Proton, la cual es Inkey, así mismo se le saca probecho a las resistencias pullup internas con las que cuentan algunos PIC como es el caso del 18F4550, 18F2550 y 16F877A así se puede conectar directamente el teclado al pic, este ejemplo es solo para ver el funcionamiento, se invita a que usen su imaginación para hacer proyectos como por ejemplo; cerradura electrónica con contraseña, mensajes con teclado tipo telefónico o llamadas de tonos a líneas de teléfono, todo queda a disposición de su imaginación, bueno aquí esta el primer ejemplo, ya saben dudas favor de consultarlas.

Código:
Device = 16F877A

Declare Xtal 4

Keypad_Port PORTB

PortB_Pullups TRUE

Declare LCD_Type 0 ‘ Tipo LCD Alpha numérico

Declare LCD_DTPin PORTC.4 ‘ El control B4,B5,B6,B7

Declare LCD_RSPin PORTC.2 ‘ RS pin  B2

Declare LCD_ENPin PORTC.3 ‘ E pin  B3

Declare LCD_Interface 4  ‘ Interface modo 4 bit

DelayMS 150

Cls

Dim x As Byte

x=0

loop:

x=InKey

Print At 1,1,”TECLA:”, Dec3 x

GoTo loop

End

Como se ve el mapeo se guarda en la variable X y esta se imprime en el LCD, pero como es una librería ya tiene los valores definidos, en caso de usar algun teclado invertido nos saldrían los datos erróneos, pero el mapeo sería el mismo, solo los valores cambiarían de posición.

Tutorial de PROTON manejo de teclado matricial Nueva-imagen41

Una alternativa más es el mapeo manual, el cual es igual de eficiente y se usa para los teclados que quieran, 3×3, 4×4, nxn, depende de gustos de teclado y necesidades, por si alguien quiere diseñar uno puede usar este ejemplo para obtener sus valores.

Código:
Device = 16F877A

Declare Xtal 4

Declare LCD_Type 0 ‘ Tipo LCD Alpha numérico

Declare LCD_DTPin PORTC.4 ‘ El control B4,B5,B6,B7

Declare LCD_RSPin PORTC.2 ‘ RS pin  B2

Declare LCD_ENPin PORTC.3 ‘ E pin  B3

Declare LCD_Interface 4  ‘ Interface modo 4 bit

DelayMS 150

Cls

Symbol fila1 = PORTB.0

Symbol fila2 = PORTB.1

Symbol fila3 = PORTB.2

Symbol fila4 = PORTB.3

Symbol col1 = PORTB.4

Symbol col2 = PORTB.5

Symbol col3 = PORTB.6

Symbol col4 = PORTB.7

Dim Boton As Byte

TRISB = %00001111

inicio:

Print At 1,1,”Tecla presionada”

col1 = 1 ‘Activo la primera columna.

    If fila1 = 1 Then Print At 2,7,” 7″

If fila2 = 1 Then Print At 2,7,” 4″

If fila3 = 1 Then Print At 2,7,” 1″

If fila4 = 1 Then Print At 2,7,”ON”

col1 = 0

col2 = 1 ‘Activo la segunda columna.

    If fila1 = 1 Then Print At 2,7,” 8″

If fila2 = 1 Then Print At 2,7,” 5″

If fila3 = 1 Then Print At 2,7,” 2″

If fila4 = 1 Then Print At 2,7,” 0″

col2 = 0

col3 = 1 ‘Activo la tercera columna.

    If fila1 = 1 Then Print At 2,7,” 9″

If fila2 = 1 Then Print At 2,7,” 6″

If fila3 = 1 Then Print At 2,7,” 3″

If fila4 = 1 Then Print At 2,7,” =”

col3 = 0

col4 = 1 ‘Activo la cuarta columna.

    If fila1 = 1 Then Print At 2,7,” /”

If fila2 = 1 Then Print At 2,7,” x”

If fila3 = 1 Then Print At 2,7,” -”

If fila4 = 1 Then Print At 2,7,” +”

col4 = 0

GoTo inicio

End

Aquí los resultados obtenidos, cabe mencionar que se deben colocar las resistencias adecuadas a tierra para brindar los resultados, para lo cual es recomendable usar de 10 K como en cualquier otro caso que se utilicen botones.

Tutorial de PROTON manejo de teclado matricial Nueva-imagen43
Electrobicho
Electrobicho
Usario Nuevo
Usario Nuevo

Mensajes : 17
Fecha de inscripción : 20/04/2012
Edad : 35
Localización : Salina Cruz,Oaxaca

http://protonbasic.wordpress.com/

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.