I2C Display ansprechen

OP #6993632
Lesenswert?

Guten Abend,

ich möchte gerne ein Display an meinen Microcontroller anschließen. Da 
ich ein Anfänger bin habe ich mir einige Videos und Anleitungen im 
Internet angeschaut.
Leider wird bei mir das Display nicht erkannt bzw. es zeigt nichts an. 
Im Internet fand ich dann einen Scan, leider wird auch hier kein Display 
gefunden. Im Internet stand öfters die Adresse 0x3C für das Display.

Da im Bauplan die Pins auch vorhanden sind, gehe ich davon aus das ein 
Display vom Controller unterstützt wird.

Verbunden habe ich folgende Pins:

Display GND - Controller GND

Display VCC - Controller VCC

Display SCL - Controller D3

Display SDA - Controller D2

Controller: TYPE-C USB ATMEGA32U4 Module 5V 16MHz Board For Arduino 
ATMEGA32U4-AU/MU Controller Pro-Micro Replace Pro Mini

Display: 0.91 "zoll OLED Display Modul 128*32 Blau/Weiß Farbe SSD1306 
Controller IIC I2C Interface 4 Pin 3,3 V/5V Für Arduino
1
#include <Wire.h>
2
#include <Adafruit_GFX.h>
3
#include <Adafruit_SSD1306.h>
4

5
#define SCREEN_WIDTH 128 // OLED display width, in pixels
6
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
7

8
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
9
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
10

11
void setup() { 
12
  Serial.begin(112500);
13
  delay(2000);
14
  Serial.println("start display test");
15
  delay(2000);
16

17
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { 
18
    Serial.println(F("SSD1306 allocation failed"));
19
    for(;;);
20
  }
21
  
22
  delay(2000);
23
  display.clearDisplay();
24
  display.setTextSize(1);
25
  display.setTextColor(WHITE);
26
  display.setCursor(0, 10);
27
  // Display static text
28
  display.println("Hello, world!");
29
  display.display(); 
30
}

Mache ich hier grundsätzlich was falsch bzw. habe einen Denkfehler?
Bin um jeden Tip dankbar.

Grüße
Angehängte Dateien:
#6993642
Lesenswert?

Hans G. schrieb:
> Leider wird bei mir das Display nicht erkannt bzw. es zeigt nichts an.
> Im Internet fand ich dann einen Scan, leider wird auch hier kein Display
> gefunden. Im Internet stand öfters die Adresse 0x3C für das Display.

Du solltest schon ein komplettes Schaltbild liefern, gut lesbar;-)
Wie schon geschrieben könnten die Pullups an SLA und SDA fehlen.

Und, Steckerleisten anlöten, sonst killst Du unter Umständen das Board.
OP #6993664
Lesenswert?

Das Bild "Bauplan" hab ich von der Verkäuferseite. Es sollte nur zeigen 
das ich die Pins richtig gesetzt habe.
Werd mir hier aber nochmal Gedanken um einen wirklichen Schaltplan 
machen.

Ok, das mit dem Löten wollte ich zuerst noch nicht machen, da ich dachte 
ich muss hier ja vll noch einmal umstecken. Aber dann mache ich das 
zuerst mal.

Wegen Pullup-Widerstände muss ich erst nachschauen und mich informieren.
Das gabs bei den Videos alles nicht. Kann aber sein, da der Controller 
ein anderer ist.

Danke für die Tipps.
Angehängte Dateien:
Gast #6993705
Lesenswert?

Hallo,

wenn du deine Pins angelötet hast und 2-5k Widerstände vom 5V+ -> SCL 
und 5V+ -> SDA gesetztz hast. Kannst du einfach den IIC Scanner laufen 
lassen, den du oben verlinkt hast.
Der wird dir bei richtiger Verdrahtung schon die Adresse ausspucken. 
Wenn nicht Controller oder Display kaputt bzw. falsche Verdrahtung.

p.s ab und zu sind auch die kabel defekt (ist bei mir schon öfters 
vorgekommen).

Gruß
Gast #6993737
Lesenswert?

Vergess erst einmal Deine Anwendung.
Mach zuerst den I2C Scann und schau nach welche Adresse gefunden wurde.
Erst wenn dass erfolgreich war und damit auch Dein Display mit großer
Wahrscheinlichkeit in Ordnung ist,kannst Du dass mit dem Beispielsketch 
testen.
Die Displaymodule haben in der Regel für den I2C Anschluss den
Widerstand mit auf dem Board und es ist nicht erforderlich diesen
auf den Steckbrett mit anzuschließen.
Alternativ würde ich auch eine andere Library,z.B. die U8G2 testen.
Diese kannst Du auch über die Bibliotheksverwaltung nach installieren.
Gast #6993744
Lesenswert?

So wie ich das sehe , ist es das ur alte SSD1306 kompatible 0,91Zoll 
Chinaken Display.
Da wirst eh nicht so weit kommen .
Bei diesem Display mußt Du dir erst einen eigenen Font machen den Du 
dann nutzen kannst.
Aber da du noch einen Arduino nutzt , wird es sicherlich irgendwo in den 
weiten jemand geben der eine Library gemacht hat und einen Fontmaker 
hat.

Ich habe leider nur echten Code für Bascom.
Gast #6993811
Lesenswert?

Stimmt,die Loop fehlt ...
Probier doch auch ersteinmal die Beispiele im Library Ordner aus
und bestimme vorher die richtige I2C Adresse.
Wegen den Fonts,versuche die U8G2 - da hast Du einige Fonts mit dabei.
Bie Github gibt es dazu auch ein Wiki mit der Übersicht aller 
verfügbaren
Fonts incl. derer Vorschau:
https://github.com/olikraus/u8g2/wiki
Vieleicht hilft es ja,bitte Rückmeldung geben.
#6994506
Lesenswert?

Hans G. schrieb:
> Morgen kann ich mal die Pins mit der Steckverbindung zusammenlöten, vll
> liegts ja daran.

Das solltest Du für dieses und zukünftige Projekte beherzigen. Die 
Stiftleisten nicht anzulöten schreit gerade nach Fehl- bzw. 
Nichtfunktion.

Ich erwähne auch gerne zum dritten mal auf das Vorhandensein der Pullups 
für SDA und SLC. Auch die sind von eklatanter Wichtigkeit. Die sind kein 
Kann, sondern ein Muss!

Der komplette Schaltplan fehlt noch. Fotos bitte so dass man alles 
erkennt und den Kopf nicht verdrehen muss.
Gast #6994579
Lesenswert?

Jörg R. schrieb:
> Die
> Stiftleisten nicht anzulöten schreit gerade nach Fehl- bzw.
> Nichtfunktion.

Ich hätte dafür schärfere Worte, zumindest groben Vorsatz.

> Ich erwähne auch gerne zum dritten mal auf das Vorhandensein der Pullups
> für SDA und SLC. Auch die sind von eklatanter Wichtigkeit. Die sind kein
> Kann, sondern ein Muss!

Die Pullups sind auf den chinatypischen SSD1306 Platinchen drauf. Etwas 
windig ist, dass die 1306 mit 3,3V laufen, während der Arduino mit 5 
Volt spielt - sie scheinen es aber zu überleben und spielen trotzdem.
#6994613
Lesenswert?

Manfred schrieb:
> Jörg R. schrieb:
>> Ich erwähne auch gerne zum dritten mal auf das Vorhandensein der Pullups
>> für SDA und SLC. Auch die sind von eklatanter Wichtigkeit. Die sind kein
>> Kann, sondern ein Muss!
>
> Die Pullups sind auf den chinatypischen SSD1306 Platinchen drauf. Etwas
> windig ist, dass die 1306 mit 3,3V laufen, während der Arduino mit 5
> Volt spielt - sie scheinen es aber zu überleben und spielen trotzdem.

Ich anstelle der TO würde es aber trotzdem kontrollieren bzw. besser 
noch nachmessen.


Manfred schrieb:
> Jörg R. schrieb:
>> Die
>> Stiftleisten nicht anzulöten schreit gerade nach Fehl- bzw.
>> Nichtfunktion.
>
> Ich hätte dafür schärfere Worte, zumindest groben Vorsatz.

Der TO hat noch einen anderen Thread, da macht er denselben Fehler.


BoomBoomMagic schrieb:
> Ist bei diesem Display aber sowas von völlig unnötig !!

Kann ja sein. Ich kenne das Display nicht und habe auf die schnelle auch 
nichts darüber gefunden. Zudem hatte Manfred das schon bemerkt, Du warst 
also zu langsam. Passt aber zu Deinen bisherigen inhaltslosen 
Kommentaren. Dein Nick tut sein übriges dazu.
Gast #6994778
Lesenswert?

Manfred schrieb:
> Die Pullups sind auf den chinatypischen SSD1306 Platinchen drauf. Etwas
> windig ist, dass die 1306 mit 3,3V laufen, während der Arduino mit 5
> Volt spielt - sie scheinen es aber zu überleben und spielen trotzdem.

Was soll dabei böses passieren. Solange die I2C-Pullups an 3.3V gehen, 
läuft der I2C mit 3.3V. Der H-Pegel bei I2C ist bekanntlich rezessiv.
#6995341
Lesenswert?

Ihr könnt froh sein das wenigsten einer nen bisken Hirn benutzt und 
dieses popelige Teil mal eben ans Laufen bringt , wobei die Sache ja 
schon über 10 Jahre alt ist.
Scheint mir aber generell mit Displays ein Problem heutzutage zu sein , 
das kaum einer noch was auf die Reihe bekommt.
Früher machte man das nebenbei , heute reicht nicht mal nen Studium aus.
(Arduino verdummt halt )
#6995376
Lesenswert?

Waldfee schrieb:
> Es sieht soa us als hättest du Wire.begin(Sda,Scl) vor
> Dislay.begin()
> vergessen.

ähm  .... hä ?

Da steckt ein simpler Bascom Code hinter , öhm , nix mit Wire.begin oder 
Display.begin oder was auch immer für 'neumodischen' schmarrn es gibt.

Der TO hats schon recht gut begonnen.
5V , 4 Kabel , alles auf Steckbrett und die Sache läuft.
Auf n Arduino läuft eh nen Atmel , dann auch gleich richtig anfangen 
:-)
#6995381
Lesenswert?

Holger Z. schrieb:
> Ihr könnt froh sein das wenigsten einer nen bisken Hirn benutzt und
> dieses popelige Teil mal eben ans Laufen bringt , wobei die Sache ja
> schon über 10 Jahre alt ist.

Wieso wir? Unsere Displays laufen doch, nur der TO hat ein Problem.


> Scheint mir aber generell mit Displays ein Problem heutzutage zu
> sein das kaum einer noch was auf die Reihe bekommt.

Dafür haben wir Dich ja😫


Du bekommst es allerdings nicht auf die Reihe nur einen Usernamen zu 
verwenden, dabei ist das keine Magic.


Wolfgang schrieb:
> Manfred schrieb:
>> Die Pullups sind auf den chinatypischen SSD1306 Platinchen drauf. Etwas
>> windig ist, dass die 1306 mit 3,3V laufen, während der Arduino mit 5
>> Volt spielt - sie scheinen es aber zu überleben und spielen trotzdem.
>
> Was soll dabei böses passieren. Solange die I2C-Pullups an 3.3V gehen,
> läuft der I2C mit 3.3V. Der H-Pegel bei I2C ist bekanntlich rezessiv.

Und das Display läuft mit welcher Spannung?
#6995398
Lesenswert?

BoomBoomMagic schrieb:
> Fürs Display eher völlig uninteressant :-)

Holger Z. schrieb:
>> Du bekommst es allerdings nicht auf die Reihe nur einen Usernamen zu
>> verwenden, dabei ist das keine Magic.
>>
> ähm ,.... HÄ ??
> War's Bier alle ??

Zufall dass BoomBoomMagic (Gast) auch BoomBoomMagic im Nick hat?
Kaum zu glauben.

Benutzername  boomboommagic
Vorname  Holger
Nachname  Z.


Holger Z. schrieb:
> Jörg R. schrieb:
>
>> Wieso wir? Unsere Displays laufen doch, nur der TO hat ein Problem.
>>
> ach soooo , dann sind die ganzen sinnfreien Beiträge nur Spaßbeiträge ??
> Ja dann  ....

Wo siehst Du Spaßbeiträge? Oder meinst Du ausschließlich Deine eigenen?
Beitrag #6995401 wurde von einem Moderator gelöscht.
Gast #6995403
Lesenswert?

Jörg R. schrieb:
> Wieso wir? Unsere Displays laufen doch, nur der TO hat ein Problem.

Eben!

Ich habe genau dieses Display ohne große Probleme mit Arduino ans Laufen 
bekommen. Und zwar mit der lib von Adafruit und danach nochmal mit einer 
selbst geschriebenen, auf Basis der Datenblätter.

Wo war jetzt das Problem bei Arduino?
#6995427
Lesenswert?

Es würde mich ,außer den völlig unqualifizierten Aussageen , lediglich 
interessieren , ob auch nur eine Antwort den TO zum Ziel gebracht hat ??

Ich mein , ich werde nicht helfen , hab ja "nur" Bascom  :-)
Ich mache mich nur über all den Blödsinn lustig.

Wenn die Umsetzung immer so 'schnell' geht mit nem Arduino , hab so Ding 
ja nie inne Hand gehabt , bleib ich lieber bei Bascom , das dauert mir 
da viel länger - so 2-3 Minuten. ;-)
#6995434
Lesenswert?

Holger Z. schrieb:
> Es würde mich ,außer den völlig unqualifizierten Aussageen , lediglich
> interessieren , ob auch nur eine Antwort den TO zum Ziel gebracht hat ??

Ja, u.A. das die Steckerleisten unbedingt verlötet werden müssen. Der 
vielleicht wichtigste Hinweis. Der Hinweis auf die Pullups, auch auf 
deren Wert was Stefan schrieb, ist ebenfalls hilfreich. Ich weiß nicht 
ob das Display die Rs on Board hat. So richtig kann das niemand wissen, 
denn diese China-Platinchen können sich doch ständig ändern.


Stefan ⛄ F. schrieb:
> Jörg R. schrieb:
>> Und selbst? Zu viele Comics gelesen? Der Wortschatz ist ja
>> beeindruckend.
>
> Wird das jetzt ein Pimmel-Vergleich?

Wie kommst Du darauf? Nur wenn jemand mit so einem Blödsinn „War's Bier 
alle ??“ kommt folgt als nächstes wohl „geh mal zum Arzt“ oder „sind die 
Tabletten alle“. Deswegen ist Dein Kommentar leider ziemlich unpassend. 
Ist auch etwas pubertäre Ausdrucksweise, passt eigentlich nicht zu 
Dir;-)
Gast #6995456
Lesenswert?

Jörg R. schrieb:
>> Manfred schrieb:
>>> Die Pullups sind auf den chinatypischen SSD1306 Platinchen drauf. Etwas
>>> windig ist, dass die 1306 mit 3,3V laufen, während der Arduino mit 5
>>> Volt spielt - sie scheinen es aber zu überleben und spielen trotzdem.
>>
>> Was soll dabei böses passieren. Solange die I2C-Pullups an 3.3V gehen,
>> läuft der I2C mit 3.3V. Der H-Pegel bei I2C ist bekanntlich rezessiv.
>
> Und das Display läuft mit welcher Spannung?

Die verbreiteten Chinanesenboards haben einen 3V3-LDO drauf.

Kritisch wird das auf jeden Fall, wenn man noch weitere I2C-Komponenten 
am Bus hat, die mit 5V laufen. Das Display ist ja kein Selbstzweck, soll 
irgendwas anzeigen, z.B. gemessene Spannungen.
Angehängte Dateien:
Beitrag #6995800 wurde von einem Moderator gelöscht.
Beitrag #6995831 wurde von einem Moderator gelöscht.
#6995845
Lesenswert?

Hans G. schrieb:
> Ich habe jetzt die Steckverbindungen gelötet.

Ich sehe da keine einzige brauchbare Lötstelle.
Nur unqualifiziertes Rumgebrate mit kalten und fehlenden Lötstellen.

Geradezu so, als wäre das absichtlich schlecht gemacht worden, um zu 
"beweisen", daß auch ein Anlöten der Stiftleisten keinen Unterschied 
ergeben würde ...

Der Trollalarm schrillt immer lauter!
#6995880
Lesenswert?

Hans G. schrieb:
> Ich habe jetzt die Steckverbindungen gelötet.

Womit? Bunsenbrenner, Bügeleisen? Solch schlechte Lötstellen habe ich 
hier noch nie gesehen. Lötzinnspritzer ohne Ende, definitiv eine 
Lötbrücke zwischen 2 Pins, vermutlich auch weitere Kurzschlüsse.

Der Schaltplan ist kein Schaltplan, und wie schon von Thomas V. bemerkt 
sind SLA und SDA vertauscht.


> Noch findet das Scan-Programm mein Display nicht.
Das wundert hier wohl wirklich niemanden mehr.

> Werde mich mal mit den Widerständen beschäftigen.
Das ist mittlerweile das geringste Problem.

Mir kommt es auch so vor als wenn das Board versetzt zu den Pins vom 
Steckbrett sitzt. Wie kann das sein?


So langsam zweifle ich auch an der Ernsthaftigkeit des Threads. Was Du 
hier präsentiert, und mit dem Takt in dem Du antwortest, macht es keinen 
Spass Dir weiterzuhelfen.

Du bist frisch angemeldet und nennst Dich Hans Gruber. So heißt auch ein 
Fernsehdarsteller im ZDF. Zufall?

Wenn Du ernsthaft weiter Hilfe erwartest muss von Dir was kommen, aber 
bitte nicht mehr so wie bisher.


Stefan ⛄ F. schrieb:
> Die Lötstellen wirklich grausam.

Welche Lötstellen, ich sehe keine;-)
Angehängte Dateien:
OP #6995927
Lesenswert?

Das mit dem Löten war wirklich keine Absicht... Dann fange ich erst mal 
ganz am Anfang an und lerne richtig Löten.
Ich hatte eine sehr unruhige Hand und hatte Probleme weil mir das 
Lötzinn nicht auf die Platine laufen wollte. Ich weiß keine 
Entschuldigung, ist mein erstes Löten gewesen.

Ich melde mich wenn ich wirkliche Lötstellen gemacht habe.
Gast #6996082
Lesenswert?

Hans G. schrieb:
> Dann fange ich erst mal ganz am Anfang an und lerne richtig Löten.

Dafür gibt es bei Aliexpress tolle Übungsplatinen. Mit vielen Bauteilen 
drauf, aber nur wenig oder gar keine) sinnvolle Funktionen. Daran kann 
man auch gut das Reparieren (auslöten) üben.
Gast #6996274
Lesenswert?

Stefan ⛄ F. schrieb:
> Dafür gibt es bei Aliexpress tolle Übungsplatinen. Mit vielen Bauteilen
> drauf, aber nur wenig oder gar keine) sinnvolle Funktionen.

Unklare Bauteile und keinerlei Funktion:

https://www.aliexpress.com/item/32909277203.html?spm=a2g0o.cart.0.0.664d3c00jeNIjN&mp=1

https://www.aliexpress.com/item/1005003661224049.html?spm=a2g0o.cart.0.0.664d3c00jeNIjN&mp=1

Gute Sache, damit habe ich meine ersten heimischen Lötversuche an SMD 
gemacht, gibt Sinn.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren