// Bibliotheken
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Variablen
const int buttonPin = 2; // Button Pin
const int buttonPin2 = 3; // Button Pin Zurück
int Z = 0; // Variable aktuelles Ziel
// OLED Größe
#define SCREEN_WIDTH 128 // Breite in Pixel
#define SCREEN_HEIGHT 32 // Höhe in Pixel
// OLED Bibliothek Einstellung
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// Setup
void setup() {
// Pin Modus Setzen
pinMode(buttonPin, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
// OLED Startsequenz
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(22, 10);
display.println("CALIWAY");
display.invertDisplay(true);
display.display();
delay(1000);
display.invertDisplay(false);
display.display();
delay(1000);
display.clearDisplay();
display.display();
}
// Loop
void loop() {
if (digitalRead(buttonPin) == LOW) { // Knopf gedrückt? Low = AN weil an GND
display.clearDisplay(); // Display leeren
Z++; // Variable +1 delay(50);
delay(250);}
if (digitalRead(buttonPin2) == LOW) { // Knopf gedrückt? Low = AN weil an GND
display.clearDisplay(); // Display leeren
Z--; // Variable -1 delay(50);
delay(250);}
if(Z==-1){Z=3;}
if(Z==0){
display.setCursor(0, 10);
display.setTextSize(2);
display.println("ZIEL 0");
display.display();}
if(Z==1){
display.setCursor(0, 10);
display.setTextSize(2);
display.println("ZIEL 1");
display.display();}
if(Z==2){
display.setCursor(0, 10);
display.setTextSize(2);
display.println("ZIEL 2");
display.display();}
if(Z==3){
display.setCursor(0, 10);
display.setTextSize(2);
display.println("ZIEL 3");
display.display();}
if(Z==4){Z=0;}
}