#include <Keypad.h>
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
const byte rxPin=A1;
const byte txPin=A2;
const byte ROWS=4;
const byte COLS=4;
char keys[ROWS][COLS]={
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS]={13,12,11,10};
byte colPins[COLS]={9,8,7,6};
Keypad keypad=Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
//const int rs=7, en=6, d4=5, d5=4, d6=3, d7=2;
LiquidCrystal lcd(7,6,5,4,3,2);
SoftwareSerial mySerial(rxPin, txPin);
bool dataEntered = true;
void setup()
{
char key;
lcd.begin(16, 2);
lcd.clear();
lcd.print("Enter a key:");
mySerial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key !=NO_KEY) {
//lcd.clear();
lcd.setCursor(0,1);
lcd.print(key);
if (key=='D')
{
if(dataEntered)
{
sendDataForKey();
if(key=='c')
{
lcd.clear();
lcd.print("Enter a key");
}
}
}
}
}
void sendDataForKey()
//first commom set
{
mySerial.print(A5,HEX);
mySerial.print(A5,HEX);
mySerial.print(A5,HEX);
mySerial.print(A5,HEX);
mySerial.print(A5,HEX);
mySerial.print(A5,HEX);
mySerial.print(A5,HEX);
mySerial.print(A5,HEX);
mySerial.print(01,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
mySerial.print(80,HEX);
mySerial.print(05,HEX);
mySerial.print(00,HEX);
mySerial.print(0xFE,HEX);
mySerial.print(0xFF,HEX);
mySerial.print(01,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
mySerial.print(84,HEX);
mySerial.print(96,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
if(keys=='1')
{
mySerial.print(85,HEX);
mySerial.print(0xCA,HEX);
mySerial.print(0xD6,HEX);
}
else if(keys=='2')
{
mySerial.print(0xB8,HEX);
mySerial.print(0x0A,HEX);
mySerial.print(0x2B,HEX);
}
else if(keys=='3')
{
mySerial.print(0xFC,HEX);
mySerial.print(0x0A,HEX);
mySerial.print(0x6F,HEX);
}
else if (keys=='4')
{
mySerial.print(0xC1,HEX);
mySerial.print(0xCA,HEX);
mySerial.print(92,HEX);
}
else if(keys=='5')
{
mySerial.print(74,HEX);
mySerial.print(0x0A,HEX);
mySerial.print(0xE7,HEX);
}
else if(keys=='6')
{
mySerial.print(49,HEX);
mySerial.print(0xCA,HEX);
mySerial.print(0x1A,HEX);
}
else if(keys=='7')
{
mySerial.print(0x0D,HEX);
mySerial.print(0xCA,HEX);
mySerial.print(0x5E,HEX);
}
else if (keys=='8')
{
mySerial.print(30,HEX);
mySerial.print(0x0A,HEX);
mySerial.print(A3,HEX);
}
else if(keys=='9')
{
mySerial.print(64,HEX);
mySerial.print(0x0B,HEX);
mySerial.print(0xF6,HEX);
}
//second commom set
mySerial.print(01,HEX);
mySerial.print(A2,HEX);
mySerial.print(0x0E,HEX);
mySerial.print(0x0A,HEX);
mySerial.print(00,HEX);
mySerial.print(01,HEX);
mySerial.print(01,HEX);
mySerial.print(50,HEX);
mySerial.print(30,HEX);
mySerial.print(30,HEX);
if(keys=='1')
{
mySerial.print(30,HEX);
}
else if(keys=='2')
{
mySerial.print(31,HEX);
}
else if(keys=='3')
{
mySerial.print(32,HEX);
}
else if(keys=='4')
{
mySerial.print(33,HEX);
}
else if(keys=='5')
{
mySerial.print(34,HEX);
}
else if(keys=='6')
{
mySerial.print(35,HEX);
}
else if(keys=='7')
{
mySerial.print(36,HEX);
}
else if(keys=='8')
{
mySerial.print(37,HEX);
}
else if(keys=='9')
{
mySerial.print(38,HEX);
}
//third common set
mySerial.print(0xE8,HEX);
mySerial.print(03,HEX);
mySerial.print(00,HEX);
mySerial.print(00,HEX);
}