Índice:

Usando teclados numéricos com Arduino: 4 etapas
Usando teclados numéricos com Arduino: 4 etapas

Vídeo: Usando teclados numéricos com Arduino: 4 etapas

Vídeo: Usando teclados numéricos com Arduino: 4 etapas
Vídeo: Módulos para Arduino - Vídeo 03 - Teclados Matriciais 2024, Novembro
Anonim
Usando teclados numéricos com Arduino
Usando teclados numéricos com Arduino

Os teclados numéricos podem fornecer uma alternativa simples ao usuário final para várias interfaces para seus projetos. Ou se você precisar de muitos botões, eles podem economizar muito tempo no que diz respeito à construção. Vamos passar por conectá-los usando a biblioteca Arduino e, em seguida, terminar com um esboço de exemplo útil.

Etapa 1: primeiros passos

Começando
Começando

Não importa de onde você obtenha seus teclados, certifique-se de obter a folha de dados - pois isso tornará sua vida mais fácil ao conectá-los. Por exemplo - a imagem nesta etapa.

A folha de dados é importante porque dirá quais pinos ou conectores no teclado são para as linhas e colunas. Se você não tiver a planilha de dados - você precisará determinar manualmente quais contatos são para as linhas e colunas.

Isso pode ser feito usando a função de continuidade de um multímetro (a campainha). Comece colocando uma sonda no pino 1, a outra sonda no pino 2 e pressione as teclas uma a uma. Anote quando um botão completa o circuito e passe para o próximo pino. Logo você saberá qual é qual. Por exemplo, no exemplo do teclado, os pinos 1 e 5 são para o botão “1 ″, 2 e 5 para“4 ″, etc …

Neste ponto, baixe e instale a biblioteca do teclado Arduino. Agora vamos demonstrar como usar os dois teclados em exemplos simples.

Etapa 2: usando um teclado de 12 dígitos

Usaremos o pequeno teclado preto, compatível com o Arduino Uno e um LCD com interface I2C para fins de exibição. Se você não tiver um LCD, poderá sempre enviar o texto para o monitor serial.

Conecte seu LCD e conecte o teclado ao Arduino da seguinte maneira: Teclado linha 1 para Arduino digital 5Keypad linha 2 para Arduino digital 4Keypad linha 3 para Arduino digital 3Keypad linha 4 para Arduino digital 2Keypad coluna 1 para Arduino digital 8Keypad coluna 2 para Arduino digital 7Keypad column 3 to Arduino digital 6 Se seu teclado for diferente do nosso, anote as linhas no esboço de:

// definição do tipo de teclado

Como você precisa alterar os números nas matrizes, rowPins [ROWS] e colPins [COLS]. Você insere os números dos pinos digitais conectados às linhas e colunas do teclado, respectivamente.

Além disso, as teclas de array armazenam os valores exibidos no LCD quando um botão específico é pressionado. Você pode ver que combinamos com o teclado físico usado, no entanto, você pode alterá-lo para o que precisar. Mas, por enquanto, insira e carregue o seguinte esboço quando estiver satisfeito com as alocações de número de linha / pino:

/ * Teclado numérico e LCD I2C https://tronixstuff.com Usa biblioteca de teclado para Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /

#include "Keypad.h"

#include "Wire.h" // para I2C LCD #include "LiquidCrystal_I2C.h" // para módulo LCD de barramento I2C // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // define o endereço LCD para 0x27 para um display de 16 caracteres e 2 linhas

// definição do tipo de teclado

const byte ROWS = 4; // quatro linhas const byte COLS = 3; // três colunas char keys [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

byte rowPins [ROWS] = {

5, 4, 3, 2}; // conectar às pinagens de linha do byte do teclado colPins [COLS] = {8, 7, 6}; // conectar à pinagem da coluna do teclado

contagem interna = 0;

Teclado teclado = Teclado (makeKeymap (teclas), rowPins, colPins, ROWS, COLS);

void setup ()

{lcd.init (); // inicializa o lcd lcd.backlight (); // liga a luz de fundo do LCD}

void loop ()

{chave char = keypad.getKey (); if (chave! = NO_KEY) {lcd.print (chave); contagem ++; if (contagem == 17) {lcd.clear (); contagem = 0; }}}

E os resultados do esboço são mostrados no vídeo. Agora você pode ver como os pressionamentos de botão podem ser traduzidos em dados para uso em um esboço. Agora vamos repetir esta demonstração com o teclado maior.

Etapa 3: usando um teclado de 16 dígitos

Usaremos o teclado 4 × 4 maior, compatível com Arduino Uno e, para variar, o LCD I2C de Akafugu para fins de exibição. Novamente, se você não tiver um LCD, poderá sempre enviar o texto para o monitor serial. Conecte o LCD e, em seguida, conecte o teclado ao Arduino da seguinte maneira:

  • Teclado linha 1 (pino oito) para Arduino digital 5
  • Teclado linha 2 (pino 1) para Arduino digital 4
  • Teclado linha 3 (pino 2) para Arduino digital 3
  • Teclado linha 4 (pino 4) para Arduino digital 2
  • Coluna 1 do teclado (pino 3) para Arduino digital 9
  • Coluna 2 do teclado (pino 5) para Arduino digital 8
  • Coluna 3 do teclado (pino 6) para Arduino digital 7
  • Coluna 4 do teclado (pino 7) para Arduino digital 6

Agora, para o esboço - observe como acomodamos o teclado numérico maior: a coluna extra na matriz char keys o pino extra na matriz colPins e o byte COLS = 4.

/ * Teclado numérico e LCD I2C https://tronixstuff.com Usa biblioteca de teclado para Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /

#include "Keypad.h"

#include "Wire.h" // para I2C LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // quatro linhas

const byte COLS = 4; // chaves de caracteres de quatro colunas [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // conectar à pinagem de linha do byte do teclado colPins [COLS] = {9, 8, 7, 6}; // conectar à pinagem da coluna do teclado int count = 0;

Teclado teclado = Teclado (makeKeymap (teclas), rowPins, colPins, ROWS, COLS);

void setup ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Teste do teclado!"); atraso (1000); lcd.clear (); }

void loop ()

{chave char = keypad.getKey (); if (chave! = NO_KEY) {lcd.print (chave); Serial.print (chave); contagem ++; if (contagem == 17) {lcd.clear (); contagem = 0; }}}

E novamente você pode ver os resultados do esboço acima no vídeo.

Agora, para um projeto de exemplo, que provavelmente é o uso mais solicitado do teclado numérico …

Etapa 4: Projeto de exemplo - Sistema de acesso por PIN

O uso mais solicitado para um teclado numérico parece ser um aplicativo do estilo “PIN”, em que o Arduino é instruído a fazer algo com base na inserção de um número correto no teclado. O esboço a seguir usa o hardware descrito para o esboço anterior e implementa um sistema de entrada de PIN de seis dígitos.

As ações a serem realizadas podem ser inseridas nas funções correctPIN () e incorrectPIN (). E o PIN é definido no array char PIN [6]. Com um pouco de trabalho extra, você também pode criar sua própria função de alteração de PIN.

// Chave de PIN com teclado numérico de 16 dígitos // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // quatro linhas

const byte COLS = 4; // chaves de caracteres de quatro colunas [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // conectar à pinagem de linha do byte do teclado colPins [COLS] = {9, 8, 7, 6}; // conectar à pinagem da coluna do teclado

Teclado teclado = Teclado (makeKeymap (teclas), rowPins, colPins, ROWS, COLS);

PIN char [6] = {

'1', '2', 'A', 'D', '5', '6'}; // nosso segredo (!) número tentativa de caractere [6] = {'0', '0', '0', '0', '0', '0'}; // usado para comparação int z = 0;

void setup ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("PIN Lock"); atraso (1000); lcd.clear (); lcd.print ("Digite o PIN…"); }

void correctPIN () // faça isso se o PIN correto for inserido

{lcd.print ("* PIN correto *"); atraso (1000); lcd.clear (); lcd.print ("Digite o PIN…"); }

void incorrectPIN () // faça isso se o PIN incorreto for inserido

{lcd.print ("* Tente novamente *"); atraso (1000); lcd.clear (); lcd.print ("Digite o PIN…"); }

void checkPIN ()

{int correto = 0; int i; para (i = 0; i <6; i ++) {

if (tentativa == PIN )

{correto ++; }} if (correto == 6) {correctPIN (); } else {incorrectPIN (); }

para (int zz = 0; zz <6; zz ++) {tentativa [zz] = '0'; }}

void readKeypad ()

{chave char = keypad.getKey (); if (chave! = NO_KEY) {tentativa [z] = chave; z ++; switch (chave) {case '*': z = 0; pausa; caso '#': z = 0; atraso (100); // para debounce extra lcd.clear (); checkPIN (); pausa; }}}

void loop ()

{readKeypad (); }

O projeto é demonstrado no vídeo.

Agora você pode usar teclados de doze e dezesseis botões com seus sistemas Arduino. Tenho certeza que você encontrará algo útil e interessante usando os teclados em um futuro próximo.

Esta postagem é fornecida a você por pmdway.com - tudo para fabricantes e entusiastas de eletrônicos, com entrega gratuita em todo o mundo.

Recomendado: