Prezados colegas do Laboratorio de Garagem,
Pouco tempo atrás eu procurei na internet um sketch para utlizar um teclado númerico com 12 teclas, sendo então baixado a biblioteca Keypad.h, funcionando perfeitamente. Estranhamente ao gravar em outro microcontrolador Atmega328P-PU, o mesmo tipo utlizado anteriormente, fatos estranhos passaram a acontecer:
1. Fazendo o upload utilizando a IDE 1.0 o teclado funciona normalmente, mas o buzzer passa a emitir um som constante e itermitente que nao consta do sketch;
2. Fazendo o upload do sketch utilizando a IDE 1.05 o teclado deixa de funcionar e o som itermitente do buzzer não acontece;
3. As duas IDE utilizam a mesma biblioteca baixada;
4. Efetuei o bootloader no microcontrolador utlizando as duas IDE e tanto um como o outro os fatos ocorrem da mesma forma;
5. Utilizei outro chip e fiz os mesmos procedimentos e os fatos ocorrem da mesma forma;
6. O microcontrolador que possui o sketch onde tudo funcionou perfeitamente ao ser inserido na board do Arduino RV3 funciona perfeitamente;
7. Por ultimo realizei uma varredura complete no meu PC e efetuei um novo download da IDE 1.05, por achar se tartar de um virus instalado no meu PC, mas tambem sem sucesso.
segue o código abaixo, embora eu acredito que não haja nenhum problema com o mesmo.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x38,20,4);
int count = 0;
char pass [4] = {'1', '9', '7', '1'};
const int yellowPin = 11;
const int redPin = 12;
const int greenPin = 10;
const int audioPin = 9;
const int duration = 200;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {5, 4, 3, 2};
byte colPins[COLS] = {6, 7, 8};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
lcd.init();
lcd.backlight();
Serial.begin(9600);
pinMode(audioPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
lcd.clear();
key_init();
}
void loop(){
char key = keypad.getKey();
if (key != NO_KEY){
if (key == '#') {
code_entry_init();
int entrada = 0;
while (count < 4 ){
char key = keypad.getKey();
if (key != NO_KEY){
entrada += 1;
tone(audioPin, 1080, 100);
delay(duration);
noTone(audioPin);
if (key == pass[count])count += 1;
if ( count == 4 ) unlocked();
if ((key == '#') || (entrada == 4)){
key_init();
break;
}
}
}
}
}
}
void key_init (){
lcd.clear();
lcd.print("Aguardando...");
lcd.setCursor(0,1);
lcd.print("Tecle #");
count = 0;
digitalWrite(redPin, HIGH);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, LOW);
tone(audioPin, 1080, 100);
delay(duration);
noTone(audioPin);
tone(audioPin, 980, 100);
delay(duration);
noTone(audioPin);
tone(audioPin, 770, 100);
delay(duration);
noTone(audioPin);
}
void code_entry_init(){
lcd.clear();
lcd.print("Entre a Senha:");
count = 0;
tone(audioPin, 1500, 100);
delay(duration);
noTone(audioPin);
tone(audioPin, 1500, 100);
delay(duration);
noTone(audioPin);
tone(audioPin, 1500, 100);
delay(duration);
noTone(audioPin);
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, HIGH);
digitalWrite(greenPin, LOW);
}
void unlocked(){
lcd.clear();
lcd.print("Acesso Liberado!");
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, LOW);
for (int x = 0; x < 20; x++){
digitalWrite(greenPin, HIGH);
tone(audioPin, 2000, 100);
delay(duration);
noTone(audioPin);
digitalWrite(greenPin, LOW);
tone(audioPin, 2000, 100);
delay(duration);
noTone(audioPin);
delay(250);
}
}
Tags:
Prezados Colegas,
Pelo jeito o problema não é com a IDE 1.0 ou 1.05. Tirei do sketch a biblioteca LiquidCrystal_I2C.h e todos seus comandos para acionamento do LCD e o teclado passou a funcionar normalmente. Provavelmente o há um conflito entre as duas bibliotecas.
Baixei a nova IDE 1.5.6 r2 Beta e os problemas pararam. Agora restou apenas o que poderia ter acontecido, já que a nova IDE já possui as duas bibliotecas mencionadas.
Valeu amigo, obrigada por dividir esta informação,vou utilizar esta biblioteca também.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por