A continuació us deixem amb la formació dedicada a la PROGRAMACIÓ d’un teclat matricial en l’IDE d’Arduino. (Segona part d’aquest post)
En el primer post vam 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:
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 ESTACIÓ METEOROLÒGICA 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
Esperem que ara sàpigues una mica més sobre programació! Si és així comparteix per WhatsApp amb algun amic :))
Salutacions de l’equip de InputMakers i segueix sempre aprenent!
Ressenyes
Encara no hi ha ressenyes.