#include <Adafruit_SSD1306.h> // Bibliothek einbinden OLED
#include <Adafruit_GFX.h> //Bibliothek einbinden OLED
#define SCREEN_WIDTH 128 //definieren der Display Breite
#define SCREEN_HEIGHT 64 //definiere der Display Höhe
#define OLED_RESET //definieren der Variable OLED_RESET
Adafruit_SSD1306 display(SCREEN_WIDTH,SCREEN_HEIGHT,&Wire,-1); // Initialisierung Display
//Pine definieren
int pinLeds1 = 10; //pinLeds1 = Pin 10 (Board)
int pinLeds2 = 9; //pinLeds2 = Pin 9 (Board)
int pinLed3 = 7; //pinLed3 = Pin 7 (Board)
int pinLeds4 = 8; //pinLeds4 = Pin 8 (Board)
int buttonPin = 6; //buttonPin = Pin 6 (Board)
int buttonState; //Variable buttonState festgelegt
long ran; //Variable ran erzeugt
int time = 2000; // Variable time erstellt / Würfelzeit
boolean ee = false; // Variable ee erzeugt
const unsigned char dice [] PROGMEM = { //Bilddaten in Byte angegeben
0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF,
0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x3F,
0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC,
0x1F, 0xFF, 0xF8, 0x07, 0xFF, 0xFC, 0x07, 0xFF, 0xFC, 0x0F, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xFF,
0xFF, 0xE0, 0x20, 0x3F, 0xFF, 0xFF, 0xFF, 0x01, 0x3C, 0x0F, 0xFF, 0xFF, 0xFC, 0x0F, 0x3F, 0x01,
0xFF, 0xFF, 0xE0, 0x3F, 0x3F, 0xC0, 0x7F, 0xFF, 0x81, 0xFF, 0x3F, 0xF8, 0x1F, 0xFC, 0x07, 0xFF,
0x3F, 0xFE, 0x03, 0xF0, 0x1F, 0xFF, 0x3F, 0xFF, 0xC0, 0x80, 0xFF, 0xFF, 0x3F, 0xFF, 0xF0, 0x03,
0xFF, 0xFF, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x3F, 0xFF, 0xBF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF,
0x0F, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0x07, 0x3F, 0xDF, 0xFF, 0x3F, 0xFF, 0x07, 0x3F, 0x0F, 0xFF,
0x3F, 0xFF, 0x03, 0x3F, 0x07, 0xFF, 0x3F, 0xC7, 0x03, 0x3E, 0x07, 0xFF, 0x3F, 0xC3, 0x87, 0x3E,
0x0F, 0xFF, 0x3F, 0xC1, 0xEF, 0x3E, 0x0F, 0xFF, 0x3F, 0xC1, 0xFF, 0x3E, 0x1F, 0x1F, 0x3F, 0xC1,
0xFF, 0x3F, 0x3E, 0x0F, 0x30, 0xE1, 0xFF, 0x3F, 0xFE, 0x0F, 0x30, 0xE1, 0xFF, 0x3F, 0xFC, 0x0F,
0x30, 0x7F, 0xFF, 0x3F, 0xFC, 0x1F, 0x30, 0x7F, 0xFF, 0x3F, 0xFC, 0x1F, 0x30, 0x7F, 0xFF, 0x3F,
0xFE, 0x7F, 0x38, 0x7F, 0xFF, 0x3F, 0xFF, 0xFF, 0x3E, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x0F, 0xFF,
0xFF, 0x3F, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x3F, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0x3F, 0xFF, 0xC0,
0x00, 0x7F, 0xFF, 0x3F, 0xFF, 0x80, 0x00, 0x1F, 0xFF, 0x3F, 0xFE, 0x00, 0x00, 0x07, 0xFF, 0x3F,
0xF8, 0x00, 0x00, 0x01, 0xFF, 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x7F, 0x3F, 0x80, 0x00, 0x00, 0x00,
0x1F, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x07, 0x38, 0x00, 0x00, 0x00, 0x00, 0x03, 0x20, 0x00, 0x00
}; //Ende der Bildaten
const unsigned char one [] PROGMEM = { //Bilddaten in Byte angegeben
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x3F, 0xFF, 0xC0, 0x03, 0xFF,
0xF8, 0x1F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0,
0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xF8, 0x1F,
0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x3F, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}; //Ende der Bildaten
const unsigned char two [] PROGMEM = { //Bilddaten in Byte angegeben
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xE0, 0x7F, 0xFF, 0xFF, 0xC0, 0x03, 0xC0, 0x3F, 0xFF, 0xFF, 0xC0, 0x03, 0xC0,
0x3F, 0xFF, 0xFF, 0xC0, 0x03, 0xC0, 0x3F, 0xFF, 0xFF, 0xC0, 0x03, 0xC0, 0x3F, 0xFF, 0xFF, 0xC0,
0x03, 0xE0, 0x7F, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFE, 0x07, 0xC0,
0x03, 0xFF, 0xFF, 0xFC, 0x03, 0xC0, 0x03, 0xFF, 0xFF, 0xFC, 0x03, 0xC0, 0x03, 0xFF, 0xFF, 0xFC,
0x03, 0xC0, 0x03, 0xFF, 0xFF, 0xFC, 0x03, 0xC0, 0x03, 0xFF, 0xFF, 0xFE, 0x07, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}; //Ende der Bildaten
const unsigned char three [] PROGMEM = { //Bilddaten in Byte angegeben
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xE0, 0x7F, 0xFF, 0xFF, 0xC0, 0x03, 0xC0, 0x3F, 0xFF, 0xFF, 0xC0, 0x03, 0xC0,
0x3F, 0xFF, 0xFF, 0xC0, 0x03, 0xC0, 0x3F, 0xFF, 0xFF, 0xC0, 0x03, 0xC0, 0x3F, 0xFF, 0xFF, 0xC0,
0x03, 0xE0, 0x7F, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x3F, 0xFF, 0xC0, 0x03, 0xFF,
0xF8, 0x1F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0,
0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xF8, 0x1F,
0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x3F, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFE, 0x07, 0xC0,
0x03, 0xFF, 0xFF, 0xFC, 0x03, 0xC0, 0x03, 0xFF, 0xFF, 0xFC, 0x03, 0xC0, 0x03, 0xFF, 0xFF, 0xFC,
0x03, 0xC0, 0x03, 0xFF, 0xFF, 0xFC, 0x03, 0xC0, 0x03, 0xFF, 0xFF, 0xFE, 0x07, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}; //Ende der Bildaten
const unsigned char four [] PROGMEM = { //Bilddaten in Byte angegeben
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF,
0x0F, 0xC0, 0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0,
0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0,
0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0,
0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC,
0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xF0,
0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}; //Ende der Bildaten
const unsigned char five [] PROGMEM = { //Bilddaten in Byte angegeben
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF,
0x0F, 0xC0, 0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0,
0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0,
0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x3F, 0xFF, 0xC0, 0x03, 0xFF,
0xF8, 0x1F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0,
0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xF8, 0x1F,
0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x3F, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0,
0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC,
0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xF0,
0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}; //Ende der Bildaten
const unsigned char six [] PROGMEM = { //Bilddaten in Byte angegeben
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF,
0x0F, 0xC0, 0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0,
0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0,
0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF,
0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xE0,
0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0,
0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xE0, 0x7F, 0xFE,
0x07, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF,
0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0,
0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC,
0x03, 0xC0, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x03, 0xE0, 0x7F, 0xFE, 0x07, 0xC0, 0x03, 0xF0,
0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}; //Ende der Bildaten
void setup ()
{
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Dislay Start
display.clearDisplay(); //Display leer schreiben
display.drawBitmap(0,0,dice,48,48,WHITE); //Bilddatei als Bitmap schreiben
display.setTextColor(WHITE);display.setTextSize(2); //Display Textfarbe und Textgröße einstellen
display.setCursor(60,10); //Position auf der Text angezeigt werden soll
display.println("Lets"); // Textausgabe Lets
display.setCursor(60,30); //Position auf der Text angezeigt werden soll
display.println("play!"); //Textausgabe play!
display.display(); //Grafikbuffer auf dem Display ausgeben
pinMode (pinLeds1, OUTPUT); //pinLeds1 Signalausgang
pinMode (pinLeds2, OUTPUT); //pinLeds2 Signalausgang
pinMode (pinLed3, OUTPUT); //pinLeds3 Signalausgang
pinMode (pinLeds4, OUTPUT); //pinLeds4 Signalausgang
pinMode (buttonPin, INPUT); //buttonPin Signaleingang
randomSeed(analogRead(0)); //Start Zufallsgenerator
}
void loop()
{
buttonState = digitalRead(buttonPin); //Button Status wird gelesen an buttonPin
if (buttonState == HIGH){ // Wenn Status buttonState HIGH ist
ran = random(1, 7); //Zufallsgenerator = Zahl zwischen 1 und 7
if (ran == 1){ //Wenn Zahl 1 gewürfelt wurde
digitalWrite (pinLed3, HIGH); //pinLed4 auf HIGH setzen
display.clearDisplay(); //Display leer schreiben
display.drawBitmap(40,5,one,48,48,WHITE); //Bilddatei als Bitmap schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
delay (time); //Wartezeit nach definierten Wert (int time)
display.clearDisplay(); //Display leer schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
}
if (ran == 2){ //Wenn Zahl 2 gewürfelt wurde
digitalWrite (pinLeds1, HIGH); //pinLed1 auf HIGH setzen
display.clearDisplay(); // Display leer schreiben
display.drawBitmap(40,5,two,48,48,WHITE); //Bilddatei als Bitmap schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
delay (time); //Wartezeit nach definierten Wert (int time)
display.clearDisplay(); //Display leer schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
}
if (ran == 3){ //Wenn Zahl 3 gewürfelt wurde
digitalWrite (pinLed3, HIGH); //pinLed3 auf HIGH setzen
digitalWrite (pinLeds4, HIGH); //pinLeds4 auf HIGH setzen
display.clearDisplay(); //Display leer schreiben
display.drawBitmap(40,5,three,48,48,WHITE); //Bilddatei als Bitmap schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
delay (time); //Wartezeit nach definierten Wert (int time)
display.clearDisplay(); //Display leer schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
}
if (ran == 4){ //Wenn Zahl 4 gewürfelt wurde
digitalWrite (pinLeds1, HIGH); //pinLeds1 auf HIGH setzen
digitalWrite (pinLeds4, HIGH); //pinLed3 auf HIGH setzen
display.clearDisplay(); // Display leer schreiben
display.drawBitmap(40,5,four,48,48,WHITE); //Bilddatei als Bitmap schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
delay (time); //Wartezeit nach definierten Wert (int time)
display.clearDisplay(); //Display leer schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
}
if (ran == 5){ //Wenn Zahl 5 gewürfelt wurde
digitalWrite (pinLeds1, HIGH); //pinLeds1 auf HIGH setzen
digitalWrite (pinLed3, HIGH); //pinLed auf HIGH setzen
digitalWrite (pinLeds4, HIGH); //pinLeds4 auf HIGH setzen
display.clearDisplay(); // Display leer schreiben
display.drawBitmap(40,5,five,48,48,WHITE); //Bilddatei als Bitmap schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
delay (time); //Wartezeit nach definierten Wert (int time)
display.clearDisplay(); //Display leer schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
}
if (ran == 6){ //Wenn Zahl 6 gewürfelt wurde
digitalWrite (pinLeds1, HIGH); //pinLeds1 auf HIGH setzen
digitalWrite (pinLeds2, HIGH); //pinLeds2 auf HIGH setzen
digitalWrite (pinLeds4, HIGH); //pinLeds4 auf HIGH setzen
display.clearDisplay(); // Display leer schreiben
display.drawBitmap(40,5,six,48,48,WHITE); //Bilddatei als Bitmap schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
delay (time); //Wartezeit nach definierten Wert (int time)
display.clearDisplay(); //Display leer schreiben
display.display(); //Grafikbuffer auf dem Display ausgeben
}
}
digitalWrite (pinLeds1, LOW); // pinLeds1 auf LOW setzen
digitalWrite (pinLeds2, LOW); // pinLeds2 auf LOW setzen
digitalWrite (pinLed3, LOW); // pinLeds3 auf LOW setzen
digitalWrite (pinLeds4, LOW); // pinLeds4 auf LOW setzen
if (ran == 6 && !ee ){ //Wenn Faktoren Würfelanzahl 6 und Variable ee - pinLeds 4 auf HIGH
display.clearDisplay(); //Display leer schreiben
display.setTextColor(WHITE); //Display Textfarbe auf weiß setzen
display.setTextSize(2); //Display Textgröße auf 2
display.setCursor(25,0); //Position auf Display angeben
display.println("Winner"); //Textausgabe Zeile 1
display.setCursor(25,15); //Position auf Display angeben
display.println("Winner"); //Textausgabe Zeile 2
display.setCursor(20,30); //Position auf Display angeben
display.println("Chicken"); //Textausgabe Zeile 3
display.setCursor(25,45); //Position auf Display angeben
display.println("Dinner"); //Textausgabe Zeile 4
display.display(); //Grafikbuffer auf dem Display ausgeben
ee = true; // Variable ee = wahr
delay(5000); //Wartezeit
}
}