In diesem Video möchten wir Ihnen die 0,91", 0,96" und 1,3" OLED Displays vorstellen. Im Rahmen des Videos werden die technischen Spezifikationen und Unterschiede der Varianten erklärt. Zusätzlich zeigen wir mehrere Beispielschaltungen, um darzustellen, wie die Displays eingesetzt werden können und wie die Verkabelung funktioniert.
! Achtung: Wenn das Video bei Ihnen nicht angezeigt wird, sollten Sie Ihre Cookie Einstellungen überprüfen. Sie müssen alle Cookies akzeptieren, damit das Video sichtbar ist!
Hier finden Sie die vorgestellten Displays:
0,96 Zoll OLED SSD1306 Display I2C
Verdrahtung 0,91 Zoll Display:
Code 0,91 Zoll Display (Schriftzug mit Counter):
/* ___ _____ ____ ___ / /__ / / __ \___ / (_) _____ _______ __ / /| | / / ______/ / / / _ \/ / / | / / _ \/ ___/ / / / / ___ |/ /_/_____/ /_/ / __/ / /| |/ / __/ / / /_/ / /_/ |_/____/ /_____/\___/_/_/ |___/\___/_/ \__, / /____/ Produkt, Datenblatt und Pinout unter: https://www.az-delivery.de/ Projekt: 0,91 OLED Display Datum: 03/2022 */ //Display #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); delay(100); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(15, 0); display.println("AZ-Delivery"); display.display(); } void loop() { //alle 0,5 Sekunden wird Anzeige geupdated if(millis()%500==0){ display.startscrollright(0x00, 0x0F); } }
Code 0,91 Zoll Display (Luftfeuchte und Temperatur):
/* ___ _____ ____ ___ / /__ / / __ \___ / (_) _____ _______ __ / /| | / / ______/ / / / _ \/ / / | / / _ \/ ___/ / / / / ___ |/ /_/_____/ /_/ / __/ / /| |/ / __/ / / /_/ / /_/ |_/____/ /_____/\___/_/_/ |___/\___/_/ \__, / /____/ Produkt, Datenblatt und Pinout unter: https://www.az-delivery.de/ Projekt: 0,91 OLED Display Datum: 03/2022 */ //Display #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include "grafiken.h" Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); //BME280 #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> Adafruit_BME280 bme; void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); delay(100); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); delay(100); //0x76 I2C Adresse vom Sensor if (!bme.begin(0x76)) { Serial.println("Keinen BME280 Sensor gefunden!"); while (1); } } void loop() { //display.startscrollright(0x00, 0x0F); if(millis()%500==0){ float temp =bme.readTemperature(); //float pressure =bme.readPressure() / 100.0F; float hum =bme.readHumidity(); display.clearDisplay(); display.setCursor(32, 15); display.println(String(hum)); display.drawBitmap(0, (display.height()-30)/2, grafik_luftfeuchtigkeit, 30, 30, 1); display.setCursor(92, 15); display.println(String(temp)); display.drawBitmap(60, (display.height()-30)/2, grafik_temperatur, 30, 30, 1); display.display(); } }
Zugehörige Tabellen:
const unsigned char grafik_luftfeuchtigkeit [] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x01, 0xc7, 0xde, 0x00, 0x03, 0x9b, 0xbf, 0x00, 0x03, 0xbb, 0x3f, 0x00, 0x03, 0xbb, 0x7f, 0x00, 0x03, 0x82, 0xff, 0x00, 0x03, 0xc4, 0x8f, 0x00, 0x03, 0xfd, 0x37, 0x00, 0x03, 0xfb, 0x77, 0x00, 0x03, 0xf3, 0x77, 0x00, 0x03, 0xe7, 0x07, 0x00, 0x01, 0xff, 0xde, 0x00, 0x01, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x7f, 0xf8, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; const unsigned char grafik_temperatur [] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0xc0, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0xc0, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
Verdrahtung 0,96 Zoll Display:
Code 0,96 Zoll Display (Schriftzug mit Counter):
/* ___ _____ ____ ___ / /__ / / __ \___ / (_) _____ _______ __ / /| | / / ______/ / / / _ \/ / / | / / _ \/ ___/ / / / / ___ |/ /_/_____/ /_/ / __/ / /| |/ / __/ / / /_/ / /_/ |_/____/ /_____/\___/_/_/ |___/\___/_/ \__, / /____/ Produkt, Datenblatt und Pinout unter: https://www.az-delivery.de/ Projekt: 0,96 OLED Display Datum: 03/2022 */ //Display #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> //fonts https://learn.adafruit.com/adafruit-gfx-graphics-library/using-fonts#step-2 #include <Fonts/FreeSerif9pt7b.h> Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { Serial.begin(115200); delay(250); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); } void loop() { if(millis()%1000==0){ display.clearDisplay(); display.setTextSize(1); display.setFont(&FreeSerif9pt7b); display.setTextColor(SSD1306_WHITE); display.setCursor(15, 20); display.println("AZ-Delivery"); display.drawRect(0,0,128,64,SSD1306_WHITE); //Original Font display.setFont(); display.setCursor(60, 35); long laufzeit = millis()/1000; display.println(String(laufzeit)); display.display(); } }
Verdrahtung 1,3 Zoll Display:
Code 1,3 Zoll Display (Schriftzug mit Counter):
/* ___ _____ ____ ___ / /__ / / __ \___ / (_) _____ _______ __ / /| | / / ______/ / / / _ \/ / / | / / _ \/ ___/ / / / / ___ |/ /_/_____/ /_/ / __/ / /| |/ / __/ / / /_/ / /_/ |_/____/ /_____/\___/_/_/ |___/\___/_/ \__, / /____/ Produkt, Datenblatt und Pinout unter: https://www.az-delivery.de/ Projekt: 1,3 OLED Display Datum: 03/2022 */ #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SH110X.h> //fonts https://learn.adafruit.com/adafruit-gfx-graphics-library/using-fonts#step-2 #include <Fonts/FreeSerif9pt7b.h> #define i2c_Address 0x3c #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 Adafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup(void){ Serial.begin(115200); delay(250); display.begin(i2c_Address, true); } void loop(void) { if(millis()%1000==0){ display.clearDisplay(); display.setTextSize(1); display.setFont(&FreeSerif9pt7b); display.setTextColor(SH110X_WHITE); display.setCursor(15, 30); display.println("AZ-Delivery"); display.drawRect(0,0,128,64,SH110X_WHITE); //Original Font display.setFont(); display.setCursor(60, 45); long laufzeit = millis()/1000; display.println(String(laufzeit)); display.display(); } }
Code 1,3 Zoll Display (Grafik Logo):
/* ___ _____ ____ ___ / /__ / / __ \___ / (_) _____ _______ __ / /| | / / ______/ / / / _ \/ / / | / / _ \/ ___/ / / / / ___ |/ /_/_____/ /_/ / __/ / /| |/ / __/ / / /_/ / /_/ |_/____/ /_____/\___/_/_/ |___/\___/_/ \__, / /____/ Produkt, Datenblatt und Pinout unter: https://www.az-delivery.de/ Projekt: 0,91 OLED Display Datum: 03/2022 */ //Display #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include "grafiken.h" Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); //BME280 #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> Adafruit_BME280 bme; void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); delay(100); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); delay(100); //0x76 I2C Adresse vom Sensor if (!bme.begin(0x76)) { Serial.println("Keinen BME280 Sensor gefunden!"); while (1); } } void loop() { //display.startscrollright(0x00, 0x0F); if(millis()%500==0){ float temp =bme.readTemperature(); //float pressure =bme.readPressure() / 100.0F; float hum =bme.readHumidity(); display.clearDisplay(); display.setCursor(32, 15); display.println(String(hum)); display.drawBitmap(0, (display.height()-30)/2, grafik_luftfeuchtigkeit, 30, 30, 1); display.setCursor(92, 15); display.println(String(temp)); display.drawBitmap(60, (display.height()-30)/2, grafik_temperatur, 30, 30, 1); display.display(); } }
Zugehörige Tabelle:
//50 x 50px const unsigned char mylogo [] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xf0, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x0e, 0x07, 0xff, 0xe0, 0x3e, 0x00, 0x00, 0x1e, 0x1f, 0xff, 0xf0, 0x0f, 0x00, 0x00, 0x1c, 0x3f, 0xff, 0xf0, 0x07, 0xc0, 0x00, 0x1c, 0x7e, 0xff, 0xf0, 0x03, 0xc0, 0x00, 0x1c, 0xf0, 0x00, 0xf0, 0x01, 0xe0, 0x00, 0x18, 0xe0, 0x00, 0x70, 0x00, 0xf0, 0x00, 0x19, 0xe0, 0x00, 0x70, 0x00, 0x70, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x00, 0x3c, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x00, 0x1c, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x00, 0x0c, 0x00, 0x39, 0xe0, 0x00, 0xf0, 0x00, 0x0e, 0x00, 0x39, 0xff, 0xff, 0xff, 0xff, 0x8e, 0x00, 0x39, 0xff, 0xff, 0xff, 0xff, 0xce, 0x00, 0x39, 0xff, 0xff, 0xff, 0xff, 0xc6, 0x00, 0x39, 0xff, 0xff, 0xff, 0xff, 0x86, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x0f, 0x07, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x1e, 0x07, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x3c, 0x07, 0x00, 0x39, 0xe0, 0x00, 0x70, 0x7c, 0x07, 0x00, 0x39, 0xe0, 0x00, 0xf0, 0xf8, 0x06, 0x00, 0x38, 0x00, 0x00, 0x01, 0xf0, 0x06, 0x00, 0x1c, 0x00, 0x00, 0x03, 0xe0, 0x0e, 0x00, 0x1c, 0x00, 0x00, 0x07, 0xc0, 0x0e, 0x00, 0x1c, 0x00, 0x00, 0x0f, 0x80, 0x0e, 0x00, 0x1e, 0x00, 0x00, 0x0f, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x00, 0x1e, 0x00, 0x1c, 0x00, 0x0f, 0x00, 0x00, 0x3c, 0x00, 0x3c, 0x00, 0x07, 0x00, 0x00, 0x78, 0x00, 0x38, 0x00, 0x07, 0x80, 0x00, 0xff, 0xff, 0xf8, 0x00, 0x03, 0xc0, 0x01, 0xff, 0xff, 0xf0, 0x00, 0x01, 0xe0, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x01, 0xe0, 0x01, 0xff, 0xff, 0xc0, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x07, 0xf0, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
Code 1,3 Zoll Display (Schriftzug mit u8g2 Library):
/* ___ _____ ____ ___ / /__ / / __ \___ / (_) _____ _______ __ / /| | / / ______/ / / / _ \/ / / | / / _ \/ ___/ / / / / ___ |/ /_/_____/ /_/ / __/ / /| |/ / __/ / / /_/ / /_/ |_/____/ /_____/\___/_/_/ |___/\___/_/ \__, / /____/ Produkt, Datenblatt und Pinout unter: https://www.az-delivery.de/ Projekt: 1,3 OLED Display Datum: 03/2022 */ //Display #include <U8g2lib.h> U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0); void setup(void){ u8g2.begin(); } void loop(void) { u8g2.firstPage(); do { u8g2.setFont(u8g2_font_ncenB14_tr); u8g2.drawStr(0,32,"AZ-Delivery"); } while ( u8g2.nextPage() ); delay(1000); }
3 comentarios
Peter Müller
Hallo, Frage:
ich möchte einen längeren Text als scroll ausgeben – in EINER Zeile – bisher wird immer ein Zeilenumbruch ausgelöst, und der Text wird auf 4 Zeilen untereinander “zerlegt” – gibt es dazu einen Tipp? – Vielen Dank im Voraus
Andreas Wolter
@Thomas: die Datei grafiken.h wird im ersten Teil der Quellcodes inkludiert.
Diese Datei muss sich im gleichen Ordner wie die .INO Datei befinden. Wenn Sie diese dann in der Arduino IDE öffnen, erscheint im oberen Teil des Editors ein weiterer Reiter für diese zusätzliche Datei. Dort hinein kopieren sie den Teil der “zugehörigen” Tabellen.
Sie können diese Tabellen auch direkt in die INO schreiben, müssen dann aber den include für die Datei auskommentieren.
Grüße,
Andreas Wolter
AZ-Delivery Blog
Thomas
Hallo,
versuche gerade den Sketch(Code 0,91 Zoll Display (Luftfeuchte und Temperatur) hochzuladen, leider bricht Arduino mit der Fehlermeldung “Compilation error: grafiken.h: No such file or directory”
Jetzt frag ich mich was mache ich mit der zugehörigen Tabelle, wie binde ich diese ein. Ich denke dann gibt der Compilation error ruhe.
Wäre für jede Hilfe dankbar! Bin absoluter Neuling.
Liebe Grüße
Thomas