Adafruit_SSD1306.h und 2tes Display

Hallo,

Ich versuche seit Tagen ein zweites Display mit der Adafruit_SSD1306-Lib zu betreiben.

Bisher habe ich folgendes:

#include <Wire.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET     LED_BUILTIN 

Adafruit_SSD1306 displayL(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Adafruit_SSD1306 displayR(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
 if (!displayL.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 LEFT allocation failed"));
    for (;;);
  }

    if (!displayR.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
    Serial.println(F("SSD1306 RIGHT allocation failed"));
    for (;;);
  }
  displayL.clearDisplay();
  displayL.display();
  displayR.clearDisplay();
  displayR.display();
}

Leider bekomme ich “SSD1306 RIGHT allocation failed” als Fehler.

Beide Displays werden über I²C angesprochen, und hängen beide an meinem Nano an A4/A5.

A4 → SDA (Display1) → SDA (Display2)
A5 → SCK (Display1) → SCK (Display2)

In einem anderen Post habe ich gelesen, dass man über je einen 4K7-Widerstand zusäztlich Spannung auf SDA und SCK einspeisen soll. Bringt aber leider nichts.

Ein I²C-Scanner zeigt auch nur:

I2C Scanner
Scanning…
I2C device found at address 0x3C !
done

Ein Weiterer ADS1115 wird testweise problemlos im Bus erkannt und hängt an den gleichen Ausgängen.

Hat jemand eine Idee wo der Fehler liegen könnte?

Danke vorab!

Da vermutlich beide Displays die selbe I2C-Adresse haben, wird das nicht funktionieren.

Mist, mein sieht so aus:

da habe ich mich wohl vergriffen. Ich werde mal sehen ob ich einstellbare bekomme.

Vielen Dank.

Das Bild hilft da nicht weiter, Datenblatt sagt mehr aus.

Allerdings ist mir bei den Oled nicht bekannt, dass die änderbar sind.
Evtl. gibt es da ein paar in der Bucht.

Ups....hier fehlt doch der Beitrag von Deltaflyer.

ihmSelbst:
Ich werde mal sehen ob ich einstellbare bekomme.

Ja, gibt es, sehen dann so oder ähnlich aus. Die Adressen 0x78 und 0x7A mußt Du für den Arduino durch zwei teilen, also 0x3C und 0x3D.

HotSystems:
Ups....hier fehlt doch der Beitrag von Deltaflyer.

Weil er seinen Fehler bemerkt hat.

Aber auch das abgebildete Display kann seine Adresse ändern, wenn man Pin 15 durchtrennt und an Vcc legt. Das habe ich gerade in diesem Forum gelesen: Multiple OLED SSD1306 Displays using 2IC. Machen würde ich das aber eher nicht :slight_smile:

Naja, Fehler kann passieren.
Aber gleich löschen.....

Aber gut, wenn es Displays gibt, wo die Adresse gewechselt werden kann.

ihmSelbst:
Mist, mein sieht so aus:

https://42project.net/wp-content/uploads/2016/09/OLED-Display-128-x-64-Bildpunkte-I2C-back2.jpg

da habe ich mich wohl vergriffen. Ich werde mal sehen ob ich einstellbare bekomme.

Vielen Dank.

Sieht so aus als müsste R3 und oder R4 "umgesetzt" werden um eine andere Adresse einstellen zu können.

MiReu:
Sieht so aus als müsste R3 und oder R4 "umgesetzt" werden um eine andere Adresse einstellen zu können.

Sieht so aus, heißt nicht dass es so ist.

Hier fehlt einfach das Datenblatt, alles weiter ist stochern im Nebel.

@agmue,
ja ich hab den Beitrag rausgenommen. Das mit dem Pin15 weiss ich, dachte erst , er sei auf R3 od. R4 rausgeführt, aber da ist nur die Schnittstellenkonfig drauf. Und auf der Platine rumzuschneiden ist sehr heikel. Für mich persönlich würde ich es tun, jedoch würd ichs, genauso wie Du, nicht weiterempfehlen.
ein falscher Cut, und das Display geht nicht mehr oder zeigt nur noch Mist an.

@All
Deshalb hab ich den Beitrag gleich wieder entfernt, nachdem ich bemerkt habe, dass meine Aussage etwas zu enthusiastisch war.

LG Stefan