#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#define rele1 13
#define rele2 12
int temp = (200);
const byte Linhas = 4;
const byte Colunas = 4;
char MatrizTeclado [Linhas][Colunas] = {
// 0 1 2 3
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pinoLinhas [Linhas]= {9,8,7,6};
byte pinoColunas [Colunas]={5,4,3,2};
Keypad Teclado = Keypad ( makeKeymap (MatrizTeclado), pinoLinhas , pinoColunas , Linhas , Colunas);
LiquidCrystal_I2C lcd (0x27,20,4);
void setup() {
Serial.begin (9600);
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
lcd.init();
lcd.backlight ();
lcd.setCursor(0,0);
lcd.print (" Projeto Teclado Numerico ");
lcd.setCursor (3,1);
lcd.print ("PedroOS 3.0 ");
delay(temp);
lcd.clear();
lcd.setCursor (0 , 0);
lcd.print (" Apertar Teclado " );
delay (temp);
}
void loop() {
static bool estadorele1 = LOW;
char Aperta = Teclado.getKey ();
if (Aperta){
tone (10 ,499,10);
}
if (Aperta){
Serial.print("tecla apertada = ");
Serial.println ((Aperta));
lcd.print (" Apertar Teclado " );
delay (80);
lcd.clear ();
lcd.setCursor (4 , 0);
lcd.print (" Numero " );
lcd.setCursor (7 , 1);
lcd.print (Aperta);
delay (80);
lcd.clear ();
lcd.print (" Apertar Teclado " );
}
if (Aperta)
{
switch (Aperta)
{
case '1': // Se for pressionado...
if (estadorele1 == LOW){
estadorele1 = HIGH;
}
else {
estadorele1 = LOW ;
}// o led .
digitalWrite(rele1, estadorele1);
break;
case '2' :
if (estadorele1 ==LOW){
estadorele1=HIGH ;
}
else {
estadorele1 = LOW ;
}
digitalWrite(rele2 ,estadorele1);
break;
}
}
}