OLED Displays Produktvorstellung

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.

 

Hier finden Sie die vorgestellten Displays:

0,91 Zoll OLED I2C Display

0,96 Zoll OLED SSD1306 Display I2C

1,3 Zoll OLED I2C

 

Verdrahtung 0,91 Zoll Display:

Für diesen Projektaufbau stellen wir Ihnen am 22.09.2022 ein praktisches Bundle mit tollem Rabatt zusammen (Link funktioniert erst zum angegebenen Datum): 0,91" OLED und GY-BME280 am ESP8266 D1 Mini

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); 
}

2 Kommentare

Andreas Wolter

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

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

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert