In this video, we would like to introduce you to the 0.91 ", 0.96", and 1.3 "OLED displays. As part of the video, the technical specifications and differences between the variants are explained. In addition, we show several sample circuits to present how the Displays can be used and how the cabling works.
! Attention: If the video is not displayed for you, you should check your cookie settings. You have to accept all cookies so that the video is visible!
Here you will find the displays presented:
0.96 inch OLED SSD1306 Display I2C
Wiring 0.91 inch display:
For this project structure, we put together a practical bundle with a great discount on September 22, 2022 (link only works for the specified date):0.91 "OLED and GY-BME280 am ESP8266 D1 Mini
Code 0.91 inch display (lettering with counter):
/* ___ _____ ____ ___ / /__ / / __ \___ / (_) _____ _______ __ / /| | / / ______/ / / / _ \/ / / | / / _ \/ ___/ / / / / ___ |/ /_/_____/ /_/ / __/ / /| |/ / __/ / / /_/ / /_/ |_/____/ /_____/\___/_/_/ |___/\___/_/ \__, / /____/ Product, data sheet and Pinout at: https://www.az-delivery.de/ Project: 0.91 OLED display Date: 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 set up() { display.Begin(Ssd1306_switchcapvcc, 0x3c); delay(100); display.Clear display(); display.SettextSize(1); display.SettextColor(White); display.setcursor(15, 0); display.print("AZ-Delivery"); display.display(); } void loop() { // Displays every 0.5 seconds is updated IF(Millis()%500==0){ display.Start scrollright(0x00, 0x0f); } }
Code 0.91 inch display (air humidity and temperature):
/* ___ _____ ____ ___ / /__ / / __ \___ / (_) _____ _______ __ / /| | / / ______/ / / / _ \/ / / | / / _ \/ ___/ / / / / ___ |/ /_/_____/ /_/ / __/ / /| |/ / __/ / / /_/ / /_/ |_/____/ /_____/\___/_/_/ |___/\___/_/ \__, / /____/ Product, data sheet and Pinout at: https://www.az-delivery.de/ Project: 0.91 OLED display Date: 03/2022 */ // display #define Screen_Width 128 #define Screen_height 32 #include <Adafruit_gfx.H> #include <Adafruit_ssd1306.H> #include "Graphics.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 set up() { display.Begin(Ssd1306_switchcapvcc, 0x3c); delay(100); display.Clear display(); display.SettextSize(1); display.SettextColor(White); delay(100); // 0x76 i2c address from the sensor IF (!BME.Begin(0x76)) { Serial.print("No BME280 sensor found!"); while (1); } } void loop() { //display.startsCrollright(0x00, 0x0f); IF(Millis()%500==0){ float tempo =BME.Reading temperature(); // Float pressure = bme.Readpressure () /100.0f; float humble =BME.readhumidity(); display.Clear display(); display.setcursor(32, 15); display.print(String(humble)); display.Drawbitmap(0, (display.Height()-30)/2, Graphics, 30, 30, 1); display.setcursor(92, 15); display.print(String(tempo)); display.Drawbitmap(60, (display.Height()-30)/2, Grafik_T temperature, 30, 30, 1); display.display(); } }
Associated tables:
Const Unsigned Char Grafik_Luftuachtkeit [] Progmem = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x7f, 0xF8, 0x00, 0x00, 0x3f, 0xF0, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; Const unsigned char graphic_t temperature [] progmem = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 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 comments
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