/*
Hier ist ein Sketch, der folgendes bewirkt:
- einfachen Text anzeigen
- invertierten Text anzeigen
- Zahlen anzeigen
- Zahlen mit Basis anzeigen (Hex, Dez)
- ASCII-Symbole anzeigen
- Text horizontal und vertikal scrollen
-Teil der Anzeige scrollen
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Parameter für OLED SSD1306 festlegen
#define SCREEN_WIDTH 128 // OLED Breite
#define SCREEN_HEIGHT 64 // OLED Höhe
#define OLED_RESET -1 // Reset
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Wire.begin(21, 20); // SDA, SCL
Serial.begin(9600);
// initialize the OLED object
if(!oled.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 - Adresszuweisung fehlgeschlagen!"));
for(;;); // wenn es nicht funktioniert, dann Endlosschleife
}
// Anzeigepuffer löschen
oled.clearDisplay();
// Display Text
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0,28);
oled.println("Hello Lernfeld 7");
oled.display();
delay(2000);
oled.clearDisplay();
// Display Inverted Text
oled.setTextColor(BLACK, WHITE); // 'invers'
oled.setCursor(0,28);
oled.println("Hallo Lernfeld 7");
oled.display();
delay(2000);
oled.clearDisplay();
// zeichengröße einstellen
oled.setTextColor(WHITE);
oled.setCursor(0,24);
oled.setTextSize(2);
oled.println("Hallo!");
oled.display();
delay(2000);
oled.clearDisplay();
// Zahlen anzeigen
oled.setTextSize(1);
oled.setCursor(0,28);
oled.println(123456789);
oled.display();
delay(2000);
oled.clearDisplay();
// HEX - DEC anzeigen
oled.setCursor(0,28);
oled.print("0x"); oled.print(0xFF, HEX);
oled.print("(HEX) = ");
oled.print(0xFF, DEC);
oled.println("(DEC)");
oled.display();
delay(2000);
oled.clearDisplay();
// Anzeige ASCII Zeichen
oled.setCursor(64,24);
oled.setTextSize(2);
oled.write(4);
oled.display();
delay(2000);
oled.clearDisplay();
// Scrollen vom gesamten Display
oled.setCursor(0,0);
oled.setTextSize(1);
oled.println("Scrollen");
oled.println("vom gesamten");
oled.println("Display!");
oled.display();
oled.startscrollright(0x00, 0x07);
delay(2000);
oled.stopscroll();
delay(1000);
oled.startscrollleft(0x00, 0x07);
delay(2000);
oled.stopscroll();
delay(1000);
oled.startscrolldiagright(0x00, 0x07);
delay(2000);
oled.startscrolldiagleft(0x00, 0x07);
delay(2000);
oled.stopscroll();
oled.clearDisplay();
// Scrollen von einer Zeile
oled.setCursor(0,0);
oled.setTextSize(1);
oled.println("Scrollen");
oled.println("einer Zeile");
oled.println("vom Display.");
oled.display();
oled.startscrollright(0x01, 0x01); // nur Zeile 2 scrollen
}
void loop() {
// Hauptprogramm
}