#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Keypad.h>
const byte ROW = 4;
const byte COL = 4;
#define LED_PI 23
char keyscode[ROW][COL] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}};
byte rowPin[ROW] = { 19, 18, 5, 17 };
byte colPin[COL] = { 16, 4, 2, 15 };
Keypad customKeypad = Keypad( makeKeymap(keyscode), rowPin, colPin, ROW, COL);
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
pinMode(LED_PI,OUTPUT);
digitalWrite(LED_PI,LOW);
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey) {
display.setCursor(0, 10);
display.println(customKey);
display.display();
Serial.println(customKey);
if (customKey == '1')
{
digitalWrite(LED_PI,HIGH);
delay(10);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '2')
{
digitalWrite(LED_PI,HIGH);
delay(20);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '3')
{
digitalWrite(LED_PI,HIGH);
delay(30);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '4')
{
digitalWrite(LED_PI,HIGH);
delay(40);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '5')
{
digitalWrite(LED_PI,HIGH);
delay(50);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '6')
{
digitalWrite(LED_PI,HIGH);
delay(60);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '7')
{
digitalWrite(LED_PI,HIGH);
delay(70);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '8')
{
digitalWrite(LED_PI,HIGH);
delay(80);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '9')
{
digitalWrite(LED_PI,HIGH);
delay(90);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '*')
{
digitalWrite(LED_PI,HIGH);
delay(100);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '0')
{
digitalWrite(LED_PI,HIGH);
delay(110);
digitalWrite(LED_PI,LOW);
}
else if (customKey == '#')
{
digitalWrite(LED_PI,HIGH);
delay(120);
digitalWrite(LED_PI,LOW);
}
else if (customKey == 'A')
{
digitalWrite(LED_PI,HIGH);
delay(130);
digitalWrite(LED_PI,LOW);
}
else if (customKey == 'B')
{
digitalWrite(LED_PI,HIGH);
delay(140);
digitalWrite(LED_PI,LOW);
}
else if (customKey == 'C')
{
digitalWrite(LED_PI,HIGH);
delay(150);
digitalWrite(LED_PI,LOW);
}
else if (customKey == 'D')
{
digitalWrite(LED_PI,HIGH);
delay(160);
digitalWrite(LED_PI,LOW);
}
else;
}
display.clearDisplay();
}Loading
ssd1306
ssd1306