#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Keypad.h>

Adafruit_SSD1306 display(4);

// ustawienie klawiatury
const byte ROWS = 4; //cztery rzędy
const byte COLS = 3; //trzy kolumny
char hexaKeys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}};

// ustawienie komunikatów  
   char message1[]="1 7:30 IC GORNIK Gliwice";
   char message2[]="2 7:45 IC LAJKONIK Krakow Gl.";
   char message3[]="3 8:00 PR Wisla Glebce";
   char message4[]="4 8:05 TLK Czestochowa";
   char message5[]="1 11:55 PR Kedzierzyn Kozle";
   char message6[]="2 12:00 PR Zwardon";
   char message7[]="3 12:10 TLK Rybnik";
   char message8[]="4 12:25 IC NEPTUN Gdynia";
   char message9[]="1 19:00 PR Myslowice";
   char message10[]="2 19:20 Os. Katowice";
   char message11[]="3 19:45 TLK Tychy";
   char message12[]="4 20:00 IC Warszawa Wsch.";
   char message13[]="1 21:00 IC Praga";
   char message14[]="2 22:05 IC Wieden";
   char message15[]="3 22:40 IC Berlin";
   char message16[]="4 23:20 IC Poznan Gl";
   int x, minX;

// podłączenie klawiatury do Arduino   
byte rowPins[ROWS] = {8, 7, 6, 5};  //Piny, do których podłączamy wyprowadzenia od rzędów
byte colPins[COLS] = {4, 3, 2}; //Piny, do których podłączamy wyprowadzenia od kolumn

Keypad keypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS );

void setup(){
 Serial.begin(9600);
 display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
 display.setTextSize(1);
 display.setTextColor(WHITE);
 display.setTextWrap(false);
 x = display.width();
 minX = -8 * strlen(message1);
}
  
void loop(){

 char key = keypad.getKey();
      Serial.println(key);
delay(1000);
  if(key == '1'){
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message1);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message2);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message3);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message4); 
   display.display();
  }
 else if(key == '2'){
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message5);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message6);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message7);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message8);
  display.display();
 }
 else if(key == '3'){
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message9);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message10);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message11);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message12);
  display.display();
 }
else if(key == '4'){
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message13);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message14);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message15);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message16);

   display.display();
   
  }
  

}
 

  
Loading
ssd1306