Bekanntermaßen brennt ein OLED-Display mit der Zeit ein, wenn es immer eingeschaltet ist. Der Stromverbrauch ist dabei keine Thema, sondern eher die Lebensdauer des Displays. In diesem Beispiel-Sketch kann man zur Demo das Display mit einer Taste einfach dunkel schalten.
/* OLED-Display dunkel schalten by m266 19.01.2022 Taste zur Demo an D2 angeschlossen (nicht entprellt) Dunkelsteuerung über Pin 2 mit Taste, Schalter, Monoflop, FlipFlop o. ä. */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define OLED_WIDTH 128 #define OLED_HEIGHT 64 #define OLED_ADDR 0x3C Adafruit_SSD1306 display(OLED_WIDTH, OLED_HEIGHT); // declare an SSD1306 display object connected to I2C Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); int switchPin = 2; void setup() { Serial.begin(9600); Serial.print("Sketch: "); Serial.println(__FILE__); Serial.print("Uploaded: "); Serial.println(__DATE__); Serial.println("Start"); pinMode(switchPin, INPUT_PULLUP); display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); display.display(); } void oledDisplay() { display.clearDisplay(); display.setTextSize(2); if (digitalRead(switchPin) == LOW) // OLED-Display dunkel schalten { display.setTextColor(BLACK); } else { display.setTextColor(WHITE); } display.setCursor(0, 0); display.println("Hallo"); display.print("Welt!"); display.display(); } void loop() { oledDisplay(); }
Wichtiger Hinweis:
Ein OLED-Display benötigt einiges an Speicher auf dem Arduino. Wenn weitere Funktionen verwendet werden, reicht u. U. der vorhandene Speicher (z. B. bei Arduino Uno bzw. Nano) nicht aus. Dann muss zu einem größeren Modell wie Arduino Mega gewechselt werden!