Bom pessoal , peço essa ajuda pra vocês o problema acredito que não é tão complicado para os mais experientes.
Vamos lá , o que eu estou querendo é armazenar um numero com 2 algarismos ou mais para uma variável usando a keypad.h , estou apanhando mais é assim mesmo , tem que ser humilde e pedi ajuda , tentei mais não deu hehehe , com apenas 1 algarismo eu consigo sem problema feito nesse exemplo abaixo que é parte do meu cod , só está faltando isso basicamente para eu finalizar.
Exemplo: eu digito o numero 1 ai eu consigo armazenar esse numero 1 na variavel SelectedNumber até ai tudo bem está funcionando blz , só que eu quero digitar qualquer numero , 101 , 543 , 50 , 3 pra ficar mais claro e etc pois no meu cod estou limitado a apenas 10 numeros ou seja de 0 até 9 , não estou sabendo manipular , espero que algum amigo me ajude ai , como eu faço isso? abaixo apenas uma parte do meu cod que é o que interessa.
agradeço desde já a ajuda de algum amigo.
void loop()
{
char key;
int SelectedNumber = 0;
key = keypad.getKey();
if ( key == '0' || key == '1' || key == '2'
|| key == '3' || key == '4' || key == '5'
|| key == '6' || key == '7' || key == '8'
|| key == '9')
{
SelectedNumber = key -= 48 ; // apenas 1 numero funcionar sem problema.
Serial.print("Numero da ID: ");
Serial.println(SelectedNumber);
delay(300);
digitalWrite(led , 1);
delay(1000);
digitalWrite(led , 0);
SendData ( Command_Enroll , SelectedNumber , 0 , CHECK_FINGER ); //Envia o camando de enroll (cadastrar)
delay(100);
}
}
///////////////////////////////////////////////////////////////////////////
já tentei assim também , mais não deu certo , quero digitar qualquer numero e ser armazenado na variavel SelectedNumber , o resultado é que ele armazena apenas o primeiro numero digitado e se eu colocar o millis() para que eu consiga digitar sem executar o outro comando acontece duplicidade do mesmo digito ou seja , ex: se eu digita 23 o resultado é 22 , 47------44 , 81------88 deu pra ficar claro , não estou conseguindo , por favor uma ajuda , valeu.
if (ptr == 2) ptr = 0; //retorna ao início
temp[ptr++] = key;//usa ptr e armazena key em ptr e no final incrementa o ptr
temp[ptr] = '\0'; //Coloca o caracter terminador o que torna o array temp numa string,
SelectedNumber = atoi(temp);//Converte de string para int so que ja esta a converter apenas uma tecla!.Nao esta a fazer controle da segunda tecla ou mais (caso queiras 1111)
Serial.print("Numero da ID: ");
Serial.println(SelectedNumber);
delay(300);
Tags:
Conseguiste resolver? também estou com o mesmo problema.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por