Inicialmente eu quero agradecer aos garagistas pela boa vontade e consiencia em compartilhar o conhecimento estou tentando imprimir no LCD e porta serial o sinal proveniente de um teclado membrana 4x4 acoplado ao arduino DUE bom tudo que eu acho que devia ser simples no DUE não e assim.

Eu consigo imprimir com a seguinte condição apertando o numero 1 ,10 vezes, o numero dois 30 vezes e assim por diante.

Nota eu instalei o codigo da biblioteca de exemplos Keypad / Custom ele imprime normal eu copio o o mesmo codigo para dentro do meu programa vira essa anarquia, alguem poderia por favor me ensinar como corrigir esse problema para que possa continuar com meu desenvolvimento.

O codigo que esta em desenvolvimento esta em anexo no arquivo 1

Exibições: 164

Anexos

Responder esta

Respostas a este tópico

Não entendi ao certo o seu problema...

Quando você aperta um número no teclado ele já é exibido direto ? Você queria concatenar ?
Se apertar "1" e "5"  ele age como se fossem duas senhas diferentes, mas você quer que seja o número "15" ?

As senhas, no seu projeto, tem uma quantidade fixa de caracteres ?

Boa noite, 

Esta usando essa Biblioteca Keypad nessa versão?

Mostre o diagrama de ligação do teclado. Qual porta usou para cada pino do conector do Teclado?

Bom dia colega José me deixe explicar melhor para o número 1 aparecer no serial ou no IHM tenho que apertar o número no teclado 10 vezes o próximo número que eu escolher para aparecer no teclado tem que ser apertado 30 vezes e assim por diante

Bom dia Sergio, 

Quando usa a Biblioteca Keypad a função DELAY atrapalha o funcionamento do teclado.

Esta usando DELAY no seu programa ? Não pode usar DELAY. 

Boa noite colega Jose.

Esse é o codigo que estou usando.


//Declaração da bibliotecas.
#include <Keypad.h>#include <LiquidCrystal.h>#include <KeyboardController.h>#include <due_can.h>
//Teclado membrana 4x4.
const byte ROWS = 4; //four rowsconst byte COLS = 4; //four columns //CONSTRUÇÃO DA MATRIZ DE CARACTERES
  char hexaKeys[ROWS][COLS] = {  {'1','2','3','A'},  {'4','5','6','B'},  {'7','8','9','C'},  {'*','0','#','D'}}; byte rowPins[ROWS] = {14, 15, 16, 17}; //connect to the row pinouts of the keypadbyte colPins[COLS] = {18, 19, 20, 21}; //connect to the column pinouts of the keypad //INICIALIZAÇÃO DO TECLADO
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //Inicia LCD.LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
USBHost usb;KeyboardController keyboard(usb);
String buffCadBarra  = "";//String customKey = "";//String buffSenha ="";String codBarra = "";String auxBarra = "";String auxSenha = "";void keyPressed() { if(keyboard.getKey() != 19) { buffCadBarra += (char)keyboard.getKey(); } else { codBarra = buffCadBarra + '\0'; buffCadBarra = ""; } printKey();}
void printKey() {
  if(codBarra != "" && codBarra != NULL){            Serial.println(codBarra);          lcd.setCursor(2,0);      lcd.print("Sistema Iniciado");      lcd.setCursor(2,1);      auxBarra = codBarra.substring (0, 13);        lcd.print (auxBarra);      }    codBarra =""; }void setup(){  Serial.begin(9600); while(!Serial);    lcd.begin(20, 4);
}  void loop() {        char customKey = customKeypad.getKey();    if (customKey){    Serial.println(customKey);    lcd.clear( );    lcd.setCursor(2,0);    lcd.print("Senha");    lcd.setCursor(2,1);    lcd.print(customKey);  }                                          usb.Task();  } 

Serial.begin(9600);

Serial.begin(9600);

                                           while(!Serial);

lcd.begin(20, 4);

Por favor todos os textos que li em relação a comunicação seria por meio de porta USB mencionão a utilização do codigo acima em negrito neste caso devo excluilo?

Ou seja tenho que repetir a mesma operação várias vezes para chegar ao resultado de deveria aparecer na primeira execução e o código que estou usando e o mesmo da biblioteca keypad customização que quando instalado sem o restante do meu código funciona perfeitamente

Boa noite, 

Qual display LCD esta usando ?

Display LCD 20×4 Backlight Azul

REF: 5LC02

Display LCD 20×4 (20 colunas por 4 linhas) com backlight azul e escrita branca é usado em toda indústria e em projetos eletrônicos com Arduino, Raspberry Pi e PIC, podendo ser operado em 4 ou 8-bits paralelamente.

/* @file CustomKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates changing the keypad size and key values.
|| #
*/
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
{'0','1','2','3'},
{'4','5','6','7'},
{'8','9','A','B'},
{'C','D','E','F'}
};
byte rowPins[ROWS] = {3, 2, 1, 0}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {7, 6, 5, 4}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup(){
Serial.begin(9600);
}

void loop(){
char customKey = customKeypad.getKey();

if (customKey){
Serial.println(customKey);
}
}

Instalando apenas esse codigo a mesma montagem funciona perfeitamente transferi esse codigo para meu programa o mesmo codigo ja não funciona mais o problema esta na base do codigo que estou usando mais não sei qual o erro ou onde procurar informação para esse tipo de sintoma que esta sendo apresentado.

Bom dia,

Você esta usando alguns pinos da interface serial para controlar o Teclado (D0 e D1) 

byte rowPins[ROWS] = {3, 2, 1, 0}; //connect to the row pinouts of the keypad

Não faça isso ! Mude os pinos. 

Boa tarde colega Jose o teclado esta ligado nos pinos:

  char hexaKeys[ROWS][COLS] = {  {'1','2','3','A'},  {'4','5','6','B'},  {'7','8','9','C'},  {'*','0','#','D'}}; byte rowPins[ROWS] = {14, 15, 16, 17}; //connect to the row pinouts of the keypadbyte colPins[COLS] = {18, 19, 20, 21}; //connect to the column pinouts of the keypad //INICIALIZAÇÃO DO TECLADO

Estou utilizando esta pinagem  {14, 15, 16, 17};   {18, 19, 20, 21};

Esse codigo assima e o codigo horiginal da biblioteca KEYPAD CUSTOM onde o arduino responde perfeitamente ao codigo funciona sem problemas.

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço