Taula de continguts:
- Pas 1: Introducció
- Pas 2: utilitzar un teclat de 12 dígits
- Pas 3: utilitzar un teclat de 16 dígits
- Pas 4: exemple de projecte: sistema d'accés PIN
Vídeo: Ús de teclats numèrics amb Arduino: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Els teclats numèrics poden proporcionar una alternativa d’usuari final senzilla a diverses interfícies dels vostres projectes. O si necessiteu molts botons, us poden estalviar molt de temps pel que fa a la construcció. Seguirem connectant-los mitjançant la biblioteca Arduino i després acabarem amb un útil esbós d’exemple.
Pas 1: Introducció
Independentment d’on treieu els teclats, assegureu-vos que pugueu obtenir el full de dades, ja que us facilitarà la vida a l’hora de connectar-los. Per exemple: la imatge d’aquest pas.
El full de dades és important, ja que us indicarà quins pins o connectors del teclat són per a les files i les columnes. Si no teniu el full de dades, haureu de determinar manualment els contactes de les files i les columnes.
Això es pot fer mitjançant la funció de continuïtat d’un multímetre (el brunzidor). Comenceu col·locant una sonda al pin 1, l’altra sonda al pin 2 i premeu les tecles una per una. Anoteu quan un botó completa el circuit i, a continuació, moveu-vos al següent pin. Aviat sabreu quin és quin. Per exemple, a l'exemple, els pins 1 i 5 del teclat són per al botó "1", 2 i 5 per a "4", etc.
En aquest moment, descarregueu i instal·leu la biblioteca Arduino del teclat. Ara demostrarem com utilitzar els dos teclats en exemples senzills.
Pas 2: utilitzar un teclat de 12 dígits
Utilitzarem el petit teclat negre, un Arduino Uno compatible i una pantalla LCD amb una interfície I2C per a la visualització. Si no teniu una pantalla LCD, sempre podeu enviar el text al monitor sèrie.
Connecteu el LCD i connecteu el teclat a l’Arduino de la següent manera: Teclat fila 1 a Arduino digital 5 Teclat fila 2 a Arduino digital 4K teclat fila 3 a Arduino digital 3 Teclat fila 4 a Arduino digital 2 Teclat columna 1 a Arduino digital 8 Teclat columna 2 a Arduino digital 7Keypad columna 3 a Arduino digital 6 Si el vostre teclat és diferent al nostre, preneu nota de les línies de l’esbós de:
// definició del tipus de teclat
Com que heu de canviar els números de les matrius rowPins [ROWS] i colPins [COLS]. Introduïu els números de pins digitals connectats a les files i columnes del teclat respectivament.
A més, les tecles de matriu emmagatzemen els valors que es mostren a la pantalla LCD quan es prem un botó concret. Podeu veure que l’hem fet coincidir amb el teclat físic utilitzat, però podeu canviar-lo pel que necessiteu. Però, ara com ara, introduïu i pengeu l'esbós següent un cop us satisfaci de l'assignació de números de fila / pin:
/ * Teclat numèric i pantalla LCD I2C https://tronixstuff.com Utilitza la biblioteca de teclats per a Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /
#include "Keypad.h"
#include "Wire.h" // per a LCD I2C #include "LiquidCrystal_I2C.h" // per a mòduls LCD de bus I2C // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // configureu l'adreça LCD a 0x27 per a una pantalla de 16 caràcters i 2 línies
// definició del tipus de teclat
byte const ROWS = 4; // quatre files const byte COLS = 3; // tecles de tres columnes [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
byte rowPins [ROWS] = {
5, 4, 3, 2}; // connecteu-vos als pinouts de la fila del byte del teclat colPins [COLS] = {8, 7, 6}; // connecteu-vos als pinouts de la columna del teclat
int count = 0;
Teclat teclat = Teclat (makeKeymap (tecles), rowPins, colPins, ROWS, COLS);
configuració nul·la ()
{lcd.init (); // inicialitzar el lcd lcd.backlight (); // activar la retroiluminació LCD}
bucle buit ()
{char key = keypad.getKey (); if (clau! = NO_KEY) {lcd.print (clau); comptar ++; if (count == 17) {lcd.clear (); compte = 0; }}}
I els resultats de l'esbós es mostren al vídeo. Ara podeu veure com es poden traduir els botons que premeu en dades per utilitzar-los en un esbós. Ara repetirem aquesta demostració amb el teclat més gran.
Pas 3: utilitzar un teclat de 16 dígits
Utilitzarem el teclat 4 × 4 més gran, compatible amb Arduino Uno i per canviar la pantalla LCD I2C d’Akafugu a efectes de visualització. Una vegada més, si no teniu una pantalla LCD, sempre podeu enviar el text al monitor sèrie. Connecteu el LCD i connecteu el teclat a l'Arduino de la manera següent:
- Teclat fila 1 (pin vuit) a Arduino digital 5
- Teclat fila 2 (pin 1) a Arduino digital 4
- Teclat fila 3 (pin 2) a Arduino digital 3
- Teclat fila 4 (pin 4) a Arduino digital 2
- Columna 1 del teclat (pin 3) a Arduino digital 9
- Columna 2 del teclat (pin 5) a Arduino digital 8
- Columna 3 del teclat (pin 6) a Arduino digital 7
- Columna 4 del teclat (pin 7) a Arduino digital 6
Ara per a l’esbós: preneu nota de com ens hem allotjat per al teclat numèric més gran: la columna addicional de les tecles de caràcters de la matriu el pin extra de la matriu colPins i el byte COLS = 4.
/ * Teclat numèric i pantalla LCD I2C https://tronixstuff.com Utilitza la biblioteca de teclats per a Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /
#include "Keypad.h"
#include "Wire.h" // for I2C LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
byte const ROWS = 4; // quatre files
byte const COLS = 4; // quatre columnes tecles de caràcters [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // connecteu-vos als pinouts de la fila del byte del teclat colPins [COLS] = {9, 8, 7, 6}; // connecteu-vos als pinouts de la columna del teclat int count = 0;
Teclat teclat = Teclat (makeKeymap (tecles), rowPins, colPins, ROWS, COLS);
configuració nul·la ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Prova del teclat!"); retard (1000); lcd.clear (); }
bucle buit ()
{char key = keypad.getKey (); if (clau! = NO_KEY) {lcd.print (clau); Serial.print (clau); comptar ++; if (count == 17) {lcd.clear (); compte = 0; }}}
I de nou podeu veure els resultats de l'esbós anterior al vídeo.
Ara, per exemple, un projecte que és probablement l’ús més sol·licitat del teclat numèric …
Pas 4: exemple de projecte: sistema d'accés PIN
Sembla que l’ús més sol·licitat per a un teclat numèric és una aplicació d’estil “PIN”, on l’Arduino té instruccions de fer alguna cosa basant-se en la introducció d’un número correcte al teclat. El següent esbós utilitza el maquinari descrit per a l’esbós anterior i implementa un sistema d’entrada de PIN de sis dígits.
Les accions a realitzar es poden inserir a les funcions correctPIN () i incorrectPIN (). I el PIN es defineix al PIN PIN de la matriu [6]. Amb una mica de feina addicional també podríeu crear la vostra pròpia funció de canvi de PIN.
// Canvi PIN amb teclat numèric de 16 dígits // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
byte const ROWS = 4; // quatre files
byte const COLS = 4; // quatre columnes tecles de caràcters [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // connecteu-vos als pinouts de la fila del byte del teclat colPins [COLS] = {9, 8, 7, 6}; // connecteu-vos als pinouts de la columna del teclat
Teclat teclat = Teclat (makeKeymap (tecles), rowPins, colPins, ROWS, COLS);
PIN PIN [6] = {
'1', '2', 'A', 'D', '5', '6'}; // el nostre intent secret de número (!) [6] = {'0', '0', '0', '0', '0', '0'}; // utilitzat per a la comparació int z = 0;
configuració nul·la ()
{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN Lock"); retard (1000); lcd.clear (); lcd.print ("Introduïu el PIN …"); }
void correctPIN () // fes-ho si s'introdueix un PIN correcte
{lcd.print ("* PIN correcte *"); retard (1000); lcd.clear (); lcd.print ("Introduïu el PIN …"); }
void incorrectPIN () // fes-ho si s'introdueix un PIN incorrecte
{lcd.print ("* Torna-ho a provar *"); retard (1000); lcd.clear (); lcd.print ("Introduïu el PIN …"); }
anul·lar checkPIN ()
{int correcte = 0; int i; per a (i = 0; i <6; i ++) {
if (intenta == PIN )
{correcte ++; }} if (correcte == 6) {correctPIN (); } else {incorrectPIN (); }
for (int zz = 0; zz <6; zz ++) {intent [zz] = '0'; }}
void readKeypad ()
{char key = keypad.getKey (); if (clau! = NO_KEY) {intent [z] = clau; z ++; commutador (tecla) {cas '*': z = 0; trencar; cas '#': z = 0; retard (100); // per debounce extra lcd.clear (); checkPIN (); trencar; }}}
bucle buit ()
{readKeypad (); }
El projecte es mostra al vídeo.
Ara, doncs, podeu utilitzar teclats de dotze i setze botons amb els vostres sistemes Arduino. Estic segur que en un futur proper trobareu alguna cosa útil i interessant mitjançant els teclats.
Aquest article us el proporciona pmdway.com: tot per a fabricants i aficionats a l'electrònica, amb lliurament gratuït a tot el món.
Recomanat:
Reproductor d'àudio amb Arduino amb targeta Micro SD: 7 passos (amb imatges)
Reproductor d'àudio que utilitza Arduino amb targeta Micro SD: SUBSCRIU el meu canal per a més projectes ……………………. Molta gent vol connectar la targeta SD amb arduino o voleu una sortida d’àudio mitjançant arduino. Així doncs, aquí teniu la forma més senzilla i barata d’interfocar la targeta SD amb arduino. tu ens pots
Com fer un dron amb Arduino UNO - Feu un Quadcopter amb microcontrolador: 8 passos (amb imatges)
Com fer un dron amb Arduino UNO | Feu un Quadcopter amb microcontrolador: Introducció Visiteu el meu canal de YouTube Un drone és un gadget (producte) molt car de comprar. En aquest post vaig a discutir, com ho faig a bon preu ?? I com pots fer-ho així a un preu barat … Bé, a l'Índia tots els materials (motors, ESC
PWM amb ESP32 - LED d’atenuació amb PWM a ESP 32 amb Arduino IDE: 6 passos
PWM amb ESP32 | LED d’atenuació amb PWM a ESP 32 amb Arduino IDE: en aquest instructable veurem com generar senyals PWM amb ESP32 mitjançant Arduino IDE & PWM s'utilitza bàsicament per generar sortida analògica des de qualsevol MCU i aquesta sortida analògica pot ser de 0V a 3,3V (en cas d'esp32) & de
Comandament a distància sense fils que utilitza el mòdul NRF24L01 de 2,4 Ghz amb Arduino - Nrf24l01 Receptor transmissor de 4 canals / 6 canals per quadcòpter - Helicòpter Rc - Avió Rc amb Arduino: 5 passos (amb imatges)
Comandament sense fils que utilitza un mòdul NRF24L01 de 2,4 Ghz amb Arduino | Nrf24l01 Receptor transmissor de 4 canals / 6 canals per quadcòpter | Helicòpter Rc | Avió Rc amb Arduino: per fer funcionar un cotxe Rc | Quadcopter | Drone | Avió RC | Vaixell RC, sempre necessitem un receptor i un transmissor, suposem que per RC QUADCOPTER necessitem un transmissor i un receptor de 6 canals i aquest tipus de TX i RX és massa costós, així que en farem un al nostre
Armadura dels teclats: 7 passos
Armadura dels teclats: és una instrucció sobre com crear una armadura a partir d’un conjunt de teclats. No utilitzeu motoserres, ja que en quedaran destrossades i veuràs que manejarà tot tipus d’aparells desagradables i vores afilades, tingueu molta cura de no ferir el vostre