0% encontró este documento útil (0 votos)
146 vistas10 páginas

MICROCONTROLADORES

Este documento presenta un proyecto de ingeniería eléctrica sobre el uso de un teclado matricial 4x4 con un microcontrolador Arduino. Explica que un teclado matricial agrupa teclas en filas y columnas para detectar pulsaciones usando menos conexiones, y describe cómo funciona mediante el barrido de filas y lectura de columnas. También incluye el código para leer el teclado matricial tanto con una librería como de forma manual sin librería.

Cargado por

jhimer
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
146 vistas10 páginas

MICROCONTROLADORES

Este documento presenta un proyecto de ingeniería eléctrica sobre el uso de un teclado matricial 4x4 con un microcontrolador Arduino. Explica que un teclado matricial agrupa teclas en filas y columnas para detectar pulsaciones usando menos conexiones, y describe cómo funciona mediante el barrido de filas y lectura de columnas. También incluye el código para leer el teclado matricial tanto con una librería como de forma manual sin librería.

Cargado por

jhimer
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

“AÑO DE LA UNIVERSALIZACIÓN DE LA SALUD”

FACULTAD DE INGENIERÍA

MICROCONTROLADORES: “SISTEMA CON UN


TECLADO MATRICIAL DE ENTRADA”

DOCENTE: HUAMAN ROJAS, Jezzy James

INTEGRANTES:

 ALCANTARA JACOBI Jhimer


 ASTO PARI DEYSI
 ESTRADA BALDEON Edson
 CANTORIN SAMANIEGO Jhon
 CAMPOS GUTARRA Johann
 CAÑARI DIAS, Katia
 TOLENTINO CHUQUILLANQUI Giordan
 PAYTAN VALERO Marco

CARRERA: INGENIERÍA ELÉCTRICA

SECCIÓN: 12835

HUANCAYO, PERÚ

2020
INTRODUCCIÓN

Un teclado no es más que una colección de botones, a cada uno de los cuales le

asignamos un símbolo o una función determinada. Pero botones, al fin y al cabo.

Leer botones es algo que ya no tiene secretos para nosotros, pero si conectáramos cada

tecla a un pin digital de nuestro Arduino, pronto estaríamos en apuros.

El teclado de nuestro ordenador suele ser de alrededor de 106 teclas, así que el método

de fuerza bruta va a entrar en apuros rápidamente. Necesitamos otra solución.

Y como el mundo está lleno de gente ingeniosa se les ocurrió una solución de lo más

elegante, una matriz de teclas.

Para que nuestro Arduino pueda saber que tecla se pulsa, basta con poner tensión en las

filas de forma secuencial y luego leer las columnas para ver cuál de ellas tiene

[Link] teclados matriciales usan una combinación de filas y columnas para conocer

el estado de los botones. Cada tecla es un pulsador conectado a una fila y a una

columna. Cuando se pulsa una de las teclas, se cierra una conexión única entre una fila y

una columna.
1. TECLADO MATRICIAL

Un teclado matricial es un dispositivo que agrupa varios pulsadores y permite


controlarlos empleando un número de conductores inferior al que necesitaríamos al
usarlos de forma individual. Podemos emplear estos teclados como un controlador para
un autómata o un procesador como Arduino.
Estos dispositivos agrupan los pulsadores en filas y columnas formando una matriz,
disposición que da lugar a su nombre. Es frecuente una disposición rectangular pura de
NxM columnas, aunque otras disposiciones son igualmente posibles.
Los teclados matriciales son frecuentes en electrónica e informática. De hecho, los
teclados de ordenador normales son teclados matriciales, siendo un buen ejemplo de
teclado matricial con disposición no rectangular.
Una de las desventajas de usar un teclado matricial es que pueden causar problemas
cuando se pulsa más de una tecla simultáneamente. Este es uno de los motivos por el
que los teclados de ordenador usan una disposición no rectangular, agrupando ciertas
teclas en circuitos diferentes (Ctrl, Alt, Shift...).

2. FUNCIÓN:

Como hemos dicho, un teclado matricial agrupa los pulsadores en filas y columnas
formando una matriz, lo que permite emplear un número menor de conductores para
determinar las pulsación de las teclas.

La siguiente imagen muestra, a modo de ejemplo, una disposición rectangular de 4x4,


aunque el funcionamiento es análogo en otras disposiciones. Al detectar la pulsación en
la columna X y la fila Y, sabremos que se ha pulsado la tecla (X,Y).
Internamente la disposición de los pulsadores es la siguiente, que es muy similar a la
disposición que vimos al tratar sobre displays LED matriciales.
.

Para detectar la pulsación de una tecla actuaremos de forma similar a la lectura simple
de un pulsador. En resumen, ponemos a tierra un extremo del pulsador, y el otro lo
conectamos a una entrada digital con una resistencia de pull-up.
Para leer todas las teclas tendremos que hacer un barrido por filas. En primer lugar,
ponemos todas las filas a 5V, y definimos todas las columnas como entradas con
resistencia de pull-up.
Progresivamente ponemos una fila a 0V, y leemos las entradas de la columna. Una vez
realizada la lectura volvemos a ponerla a 5V, pasamos a la siguiente fila, y volvemos a
realizar el progreso hasta recorrer todas las filas.
Para detectar NxM pulsadores necesitamos sólo N+M conductores. Por tanto ahorro de
conductores es superior cuanto más grandes sean N y M, y más parecidos entre sí. (ej:
16 pulsadores en 2x8 necesitan 10 conductores, y en 4x4 sólo 8 conductores.)

En consecuencia, los teclados de 1xM, Nx1 y 2x2 no suponen ningún ahorro en


conductores, aunque, independientemente, puede que os resulten de utilidad únicamente
por agrupar en un mismo dispositivo la disposición que deseáis.
Como hemos comentado, la mayor desventaja de la disposición matricial es que pueden
dar problemas al detectar la pulsación de múltiples teclas de forma simultánea.
3. ESQUEMA DE CONEXIÓN

En consecuencia, los teclados de 1xM, Nx1 y 2x2 no suponen ningún ahorro en


conductores aunque, independientemente, puede que os resulten de utilidad únicamente
por agrupar en un mismo dispositivo la disposición que deseáis.
Como hemos comentado, la mayor desventaja de la disposición matricial es que pueden
dar problemas al detectar la pulsación de múltiples teclas de forma simultánea.

Que visto desde Arduino quedaría de la siguiente forma.


4. Librería

#include <Keypad.h>

const byte filas = 4;


const byte columnas = 4;

byte pinesFilas[] = {9,8,7,6};

byte pinesColumnas[] = {5,4,3,2};

char teclas[4][4] = {{'1','2','3','A'},


{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};

Keypad teclado1 = Keypad( makeKeymap(teclas), pinesFilas, pinesColumnas, filas,


columnas);

void setup() {
[Link](9600);
[Link]("Teclado 4x4 con Biblioteca Keypad");
[Link]();
}

void loop() {
//Verifica si alguna tecla fue presionada
char tecla_presionada = [Link]();

//Monitor Serial
if (tecla_presionada)
{
[Link]("Tecla: ");
[Link](tecla_presionada);
}
}

5. Sin Librería

byte pinesFilas[] = {9,8,7,6};


byte pinesColumnas[] = {5,4,3,2};
char teclas[4][4] = {{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};
void setup()
{
for (int nL = 0; nL <= 3; nL++) {
pinMode(pinesFilas[nL], OUTPUT);
digitalWrite(pinesFilas[nL], HIGH);
}

for (int nC = 0; nC <= 3; nC++) {


pinMode(pinesColumnas[nC], INPUT_PULLUP);
}

[Link](9600);
[Link]("Teclado 4x4");
[Link]();
}
void loop()
{
//Barrido por las filas
for (int nL = 0; nL <= 3; nL++)
{
digitalWrite(pinesFilas[nL], LOW);

//Barrido en columnas buscando un LOW


for (int nC = 0; nC <= 3; nC++) {
if (digitalRead(pinesColumnas[nC]) == LOW)
{
[Link]("Tecla: ");
[Link](teclas[nL][nC]);
while(digitalRead(pinesColumnas[nC]) == LOW){}
}
}

digitalWrite(pinesFilas[nL], HIGH);
}
delay(10);
}
[/sociallocker]

ENLACE DEL DISEÑO PROPUESTO EN LA PLATAFORMA TINKERCAD:

[Link]
ANEXOS:
REFERENCIAS:

 [Link]
keypad/
 [Link]
 [Link]
%20matriciales%20usan%20una,una%20fila%20y%20una%20columna.

También podría gustarte