Como declarar variáveis ​​para codificar o teclado para seu projeto arduino sistema de entrada de teclado

Video: Como Fazer Luz ( LED ) Piscar De acordo Com a MUSICA

Assim que tiver os componentes teclado e visor no lugar em sua placa de ensaio, é hora de carregar o código ao seu Arduino. Tome um momento para olhar o código e, em seguida, enviá-lo para sua placa.

Na primeira seção, antes da instalação, você declarar variáveis ​​para o teclado e display.

const int numberOfDigits = 4- // O número de dígitos do 7-segmento displayconst int numRows = 4- // Número de filas na keypadconst int NúmColunas = 3- // Número de colunas no keypadconst int debounceTime = 20- / / Número de milissegundos para mudar para se tornar stableconst int doorOpenTime = 5000- // Quanto tempo você deseja que a greve porta para permanecer openconst int strikePin = 9 // o pino que aciona o relé para a porta strikeconst int slaveSelect = 10 // Pin usado para habilitar o pino escravo no código MAX72xxchar [4] = { `1`, `2`, `3`, `4`} - // Defina o seu herechar código codeBuffer [4] - // Armazena o código que atualmente está sendo enteredboolean DEBUG = true-// Defina como true para mensagens de status de impressão para a portint série keypressCount = 0- // conta quantas vezes uma tecla foi pressionada // o mapa de teclado define o caráter devolvido quando a chave é char pressedconst kEYMAP [numRows] [NúmColunas] = {{ `1` `2`, `3`}, { `4`, `5`, `6`}, { `7` `8`, `9`} , { `*`, `0`, `#`}} - rowPins const int [numRows] = {7, 4, 2, 5} - // Fileiras teclado 0 através 3const int colPins [NúmColunas] = {6, 8, 3} - // Colunas teclado 0 a 2

o numberOfDigits variável define o seu LED driver IC com o número adequado de dígitos. numRows e NúmColunas armazenar o número de linhas e colunas em seu teclado, 4 e 3, respectivamente. Você usá-los para olhar para cima qual chave está sendo pressionada. o debounceTime garante que a chave a ser prensado é detectado com precisão. Você define a quantidade de tempo a porta será mantida aberta com o doorOpenTime variável.

o strikePin variável define qual pino digital será activado quando o código correcto é introduzido. Isto aplica-se energia para o relé, que fecha para acionar seu mecanismo de bloqueio da porta. Você pode querer usar um nome diferente se você estiver usando um tipo diferente de mecanismo, como uma fechadura magnética ou um trinco da gota.

slaveSelect define um pino digital que você usa para indicar que você está enviando dados. O escravo escolha (ou “chips selecione”) pino (SS) é um pino de comando em seu IC que liga os pinos externos para o circuito interno.

Em aplicações com vários drivers de LED que são todos ligados a seus fios de entrada, você quer ser capaz de selecionar se é ou não é habilitado. O IC só responde a comandos quando seu escravo seleto pin modo é ativado, que permite diferenciar entre este driver e outros que você pode estar usando.

Você estiver usando apenas um único IC neste projeto, mas você ainda precisa deixar o chip saber quando você está indo para enviá-lo de dados, e é isso que SS pino faz.

Dois Caracteres variáveis ​​são usadas para o código de acesso manipulação. O primeiro, código[], armazena os dígitos do código de acesso. Você pode definir este seja o que quiser. O segundo Caracteres, codeBuffer [], lojas (ou “buffers”) as chaves que tenham sido pressionado. Quando estes dois jogos, presto! O Arduino ativa strikePin. Não há nenhuma maneira para definir o código a partir do teclado - você tem que fazê-lo por meio de programação.

Este programa tem um prático recurso pouco de depuração construída em Isso é o que a próxima variável é a seguinte:. Um boleano chamado DEPURAR. Lembre-se que variáveis ​​booleanas só pode ser verdadeira ou falsa. Ao definir esta a verdade, você pode usar uma condicional E se declaração para executar certas linhas de código que não será executada se você configurá-lo para falso.



Por exemplo, neste código de imprimir uma grande quantidade de variáveis ​​na porta serial, para testar se o teclado está funcionando corretamente. Mas, depois de o seu sistema está instalado em sua porta, você não precisar imprimir nada. Em vez de apagar todos aqueles Serial.println () declarações, você pode simplesmente voltar para o DEPURAR variável e configurá-lo para falso.

o keypressCount lojas de quantos dígitos foram pressionado até agora. Quando o quarto é pressionada, a ação real acontece.

Video: Como utilizar ASCII em C - Dev C++

o Caracteres variável KEYMAP [] [] é uma matriz bidimensional. Uma matriz bidimensional é simplesmente uma matriz de matrizes. Imagine um menu para um restaurante italiano. Você pode ter uma dúzia de itens do menu para escolher: breadsticks, sopa, pizza, lasanha, saladas, vinho tinto, e assim por diante.

Você pode armazenar estes como simplesmente uma única matriz, mas você também pode organizá-los por tipo: entradas {breadsticks, sopa}, pratos principais {pizza, lasanha, massas}, bebidas {água, vinho tinto, vinho branco}. Desta forma, você pode se referir a itens individualmente ou como coleções. A matriz de dimensão única, como acontece com o seu código[] matriz, lojas elementos (itens de dados individuais) como este:

Int umArray [] = {0,1,2,3} -

A matriz bidimensional armazena elementos como este:

Video: Arduino - Dicas de Programação - 01

Int umArray [] [] = {{0,1,2,3}, {3,2,3,0}, {4,3,8,1}, {2,3,4,5}} -

Quando você lê a partir de uma matriz bidimensional, o primeiro valor nos colchetes especifica qual elemento que deseja leitura-o segundo valor entre parênteses especifica o elemento dentro do elemento especificado. Ao trabalhar com matrizes, o sistema de numeração começa do zero. Assim, por exemplo, na matriz bidimensional acima, umArray [2] [0] está segurando o valor 4.

o kEYMAP é simplesmente usado para guardar quais dígitos são no teclado. É literalmente um mapa das chaves.

Quando uma tecla é pressionada, você usa o kEYMAP identificar qual número é naquele local, para que você possa compará-lo ao seu código predeterminado.

As duas variáveis ​​finais são matrizes que armazenam qual dos pinos digitais do seu Arduino as linhas e colunas de teclado estão conectados.


Publicações relacionadas