Què és un teclat matricial i com funciona un teclat matricial?
El teclat matricial o keypad en anglès és un dispositiu d’entrada de dades format per 16 tecles o botons disposats en forma de 4 files per 4 columnes.
Si anem al full de fabricant (datasheet) podem observar la matriu de connexions del keypad.

Amb l’esquema anterior podem entendre la forma en què la nostra placa compatible amb Arduino detecta quin botó s’ha premut:
La placa introduirà 5V de forma seqüencial per les files (8, 7, 6, 5) i després per a cada fila fem la lectura de les columnes (4, 3, 2, 1) per veure si hi ha alguna en HIGH al prémer el botó .
Per exemple, per a la primera fila:
Posaríem 5V a la fila número 8 i llavors llegiríem les columnes per veure si alguna està en HIGH. I així de manera seqüencial per a cada fila.
En el nostre cas les connexions les realitzem com s’indica a la següent taula:
Files i columnes | Pin |
Fila 1 | 9 |
Fila 2 | 8 |
Fila 3 | 7 |
Fila 4 | 6 |
Columna 1 | 5 |
Columna 2 | 4 |
Columna 3 | 3 |
Columna 4 | 2 |
Esquema de muntatge del teclat matricial amb Arduino:

El senyal d’entrada a la placa compatible amb Arduino vindrà donada per cadascuna de les tecles de teclat matricial.
El fet que sigui matricial vol dir que el teclat estarà organitzat per files i per columnes de manera que cada parell de valors ( Xi , Yj ) referents a cada fila i columna, estarà associat a cadascuna de les tecles.

Aquesta relació de cada parell de valors ( Xi , Yj ) amb cada tecla la realitzarem amb la llibreria keypad, anem a estudiar açò en el següent apartat destinat a l’estudi de la programació.
PROGRAMACIÓ D’UN TECLAT MATRICIAL AMB ARDUINO:
Acabem de veure com funciona un teclat matricial així com el seu diagrama de connexió. Per entendre com anem a programar simplement recordar que enteníem aquest teclat com una matriu on al detectar la pulsació a la columna X i la fila Y sabíem que s’havia premut la tecla (X, Y).
Hi ha la possibilitat de realitzar la programació sense llibreria, però nosaltres ho farem utilitzant la llibreria keypad, ja que això ens simplifica molt el codi i és el més habitual.
Per fer-ho pràctic, treballarem basant-se el següent exemple:
Com intercanviar la posició d’un servo SG90 a l’introduir un “password” al teclat matricial.
Açò ho podríem utilitzar en un projecte com a forrellat amb codi d’una caixa forta, on el servo SG90 ens faria el paper de pany al moure’s alternativament entre dues posicions, obert-tancat.

El primer que hem de fer: Instal·lar les biblioteques.
Com les instal·lem? anem a
Eines> gestiona les biblioteques…
Apareix el gestor de biblioteques.
Escrivim en la recerca “Keypad” i després “Servo”. Les busquem i les instal·lem.

I ara sí, estudiarem el codi:
Programa teclat matricial (Programa IDE Arduino):
Les explicacions de cada línia de codi estan després de la doble barra / / (això fa transparent a l’IDE aquests aclariments, per tant pots copiar i enganxar així el codi al teu IDE d’Arduino).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
/*InputMakers Projecte de la caixa forta: controlarem l'apertura i tancament de la caixa forta amb el teclat matricial introduint el password: 1 A. El servo SG90 farà la funció de forrellat al variar la seva posició. */ #include <Keypad.h> // Incloem la llibreria Keypad. #include <Servo.h> // Incloem la llibreria Servo. const byte FILES = 4; // Nombre de files del keypad. const byte COLUMNES = 4; // Nombre de columnes del keypad. /* Mitjançant un array de 2 dimensions definim els símbols que corresponen a cadascuna de les posicions de les tecles. */ char teclat[FILES][COLUMNES] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte pinFiles[FILES] = {9, 8, 7, 6}; // Array d'una dimensió per definir els pins en els que estan connectades les files. byte pinColumnes[COLUMNES] = {5, 4, 3, 2}; // Array d'una dimensió per definir els pins en els que estan connectades les columnes. /* A continuació creem una instància de tipus Keypad a la que anomenem keypad1 i li assignem les tecles de l'array teclat. Li indiquem que hem connectat les FILES del keypad als nombres dels pins que hem indicat en l'array pinFiles i les COLUMNES del keypad als nombres dels pins que hem indicat en l'array pinColumnes. */ Keypad keypad1 = Keypad( makeKeymap(teclat), pinFiles, pinColumnes, FILES, COLUMNES ); // Creem el servomotor amb el nom servo1. Servo servo1; // Variable per guardar la posició del servo. int posicio = 0; void setup() { // Assignem el pin 10 al servomotor. servo1.attach(10); // Posicionem el servo al connectar la placa a la seva posició 0 (porta tancada). servo1.write(0); } void loop() { // Llegim la tecla polsada del keypad. char key = keypad1.getKey(); if (key == '1'){ // Si premem la tecla '1', esperem la confirmació A. do{ key = keypad1.getKey(); } while(key != 'A'); // Si la posició és 0 (porta tancada) aleshores obrim la porta. if(posicio == 0){ servo1.write(65); posicio = 65; } // Si la posició és 65 (porta oberta) aleshores tanquem la porta. else if(posicio == 65){ servo1.write(0); posicio = 0; } delay(300); } } |
Podeu adquirir el projecte CAIXA DE MÚSICA relacionat amb aquest post, que et servirà per ampliar els teus coneixements sobre el teclat matricial y el servo SG90, si t’ha agradat aquest post ACONSEGUEIX-LO!!
IMPORTANT: OFERIM GRANS DESCOMPTES PER A CENTRES EDUCATIUS! SI ERES UN CENTRE EDUCATIU DEMANA PRESSUPOST PERSONALITZAT EN AQUEST ENLLAÇ
Caja fuerte
¿Te gustaría poder tener a buen recaudo tus objetos más valiosos?
Con este kit de robótica vas a construir una pequeña caja fuerte con teclado numérico que te permitirá tenerlo todo guardado y protegido mediante tu propia clave de seguridad.
Entenderás el funcionamiento y el porqué de cada uno de sus componentes. Además, vas a poder ampliar tus conocimientos de programación comprendiendo paso a paso cada instrucción del programa y sobre todo ¡vas a divertirte haciéndolo!
*Con la compra de este proyecto recibirás en tu correo electrónico un completo manual con la explicación detallada de cada uno de los componentes, el montaje, los esquemas de circuitos y la programación. ¡No te lo pierdas!
Puedes ver una muestra del manual de uno de nuestros proyectos en el siguiente enlace.
Descripció
Con este kit de robótica vamos a construir una caja fuerte. Para poder abrirla o cerrarla vamos a tener que introducir un código o password mediante el teclado numérico que previamente habremos programado. El elemento que hará la función de cerrojo será el servo. Dicho componente se moverá entre dos posiciones, una de ellas bloqueará la puerta y la otra nos permitirá abrirla.
Con el kit CAJA FUERTE de Inputmakers vas a aprender sobre:- La placa compatible con Arduino.
- Teclado matricial (keypad).
- Servo SG90.
- Pin PWM.
- Apéndice 1: Estudio del par motor del servo SG90.
- Apéndice 2: Cálculo del engranaje del servo SG90.
- Montaje del circuito.
- Programación en el IDE de Arduino.
Productes relacionats
Salutacions de l’equip d’InputMakers i segueix sempre aprenent!
Comparteix si t’ha agradat:
Ressenyes
Encara no hi ha ressenyes.