meta data for this page
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
| uebung:itt11:oled-display [2023/01/13 14:57] – angelegt juergenhaas | uebung:itt11:oled-display [2023/01/21 15:39] (aktuell) – juergenhaas | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| [[uebung: | [[uebung: | ||
| + | [[https:// | ||
| - | < | + | < |
| + | /* | ||
| + | * Beispiel für die Verwendung eines 128x64 Pixel OLED-Displays via I2C-Schnittstelle | ||
| + | * | ||
| + | * Verdrahtung: | ||
| + | * ============ | ||
| + | * Display | NodeMCU | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | * Dieses Beispiel zeigt einen statischen Begrüßungsbildschirm mit verschiedenen Textelementen und Linien. | ||
| + | * Danach verändern sich einige Elemente um periodisch auf und ab zu zählen. | ||
| + | * | ||
| + | * siehe auch: https:// | ||
| + | */ | ||
| + | |||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | #define SDA_PIN D2 // SDA an D2 | ||
| + | #define SCL_PIN D1 // SCL an D1 | ||
| + | |||
| + | #define D1 5 // GPIO 5 des ESP ist D1 auf dem Board | ||
| + | #define D2 4 // GPIO 4 des ESP ist D2 auf dem Board | ||
| + | |||
| + | const int DISPLAY_ADDR = 0x3c; // I2C-Addresse des Displays | ||
| + | |||
| + | SSD1306Wire * display; | ||
| + | |||
| + | int current = 21; // aktuelle Zahl | ||
| + | int updown = 1; // Richtung | ||
| + | |||
| + | /** | ||
| + | * setup | ||
| + | */ | ||
| + | void setup() { | ||
| + | // Serial | ||
| + | Serial.begin(115200); | ||
| + | Serial.println(); | ||
| + | delay(100); | ||
| + | |||
| + | // Display initialisieren | ||
| + | display = new SSD1306Wire(DISPLAY_ADDR, | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | |||
| + | // Startbildschirm aufbauen | ||
| + | display-> | ||
| + | display-> | ||
| + | |||
| + | display-> | ||
| + | display-> | ||
| + | |||
| + | display-> | ||
| + | display-> | ||
| + | |||
| + | display-> | ||
| + | display-> | ||
| + | |||
| + | // Linien | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | |||
| + | // Anzeige aktualisieren | ||
| + | display-> | ||
| + | |||
| + | delay(5000); | ||
| + | } | ||
| + | |||
| + | |||
| + | /** | ||
| + | * loop | ||
| + | */ | ||
| + | void loop() { | ||
| + | // gemeinsame Elemente der veränderlichen Anzeige | ||
| + | display-> | ||
| + | |||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | |||
| + | // Ausgabe für Zählvorgang aufwärts | ||
| + | if (current < 28 && updown == 1) // aufwärts zählen | ||
| + | { | ||
| + | current++; | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | } | ||
| + | else if (current >= 28) // oben angekommen | ||
| + | { | ||
| + | updown = 0; | ||
| + | } | ||
| + | |||
| + | // Ausgabe für Zählvorgang abwärts | ||
| + | if (current > 11 && updown == 0) // abwärts zählen | ||
| + | { | ||
| + | current--; | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | display-> | ||
| + | } | ||
| + | |||
| + | if (current <= 11) // unten angekommen | ||
| + | { | ||
| + | updown = 1; | ||
| + | } | ||
| + | |||
| + | // Anzeige aktualisieren | ||
| + | display-> | ||
| + | |||
| + | delay(500); | ||
| + | } | ||
| </ | </ | ||
| [[uebung: | [[uebung: | ||