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)
In Deinem anderen Thread (LED blinkt nicht) wurde Dir geraten die
Steckerleisten anzulöten, das trifft auch hier zu.
I2C, sind die Pullup-Widerstände an SLA bzw. SDA vorhanden?
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.
> sonst killst Du unter Umständen das Board.
Das waer ja ein gewuenschter Lerneffekt.
So nicht.
Und so auch nicht.
Und so schon gar nicht.
Um mal aus der deutschen Kulturgeschichte zu zitieren.
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.
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ß
Hans G. schrieb:> Mache ich hier grundsätzlich was falsch bzw. habe einen Denkfehler?
Wie wird das Ganze denn mit Spannung / Strom versorgt? Das sieht man auf
Deinen Bildern nicht ...
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.
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.
BoomBoomMagic schrieb:> Fürs Display eher völlig uninteressant :-)
Für den Linker aber nicht. Wenn man das
"undefined reference to `loop'"
ignoriert kommt nur wenig dabei heraus.
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.
BoomBoomMagic schrieb:> Du mußt erstmal das Display initialisieren , bzw. den drauf befindlichen> SSD1306 Treiber. ;-)
Was meinst Du denn, was in SETUP passiert?
Bleib mal bei
BoomBoomMagic schrieb:> Bascom
Die Testanwendung hat ein Loop aber das Scan-Programm findet schon kein
Display deshalb werde ich erstmal das zum Laufen bringen.
Morgen kann ich mal die Pins mit der Steckverbindung zusammenlöten, vll
liegts ja daran.
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.
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.
Jörg R. schrieb:> Hans G. 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!
Ist bei diesem Display aber sowas von völlig unnötig !!
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.
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.
Die Pull-Up Widerstände des Displays sind mit ihren 10 kΩ für 400 kHz zu
hochohmig. Das funktioniert nur mit Glück und unzuverlässig. Benutze
lieber externe mit 2,2 kΩ oder 3,3 kΩ.
Holger Z. schrieb:> Man kann auch son komischen Arduino nehmen und weiter hoffen :-)
Du bist schon ein geiler Typ - nur mit der Rechtschreibung musst Du noch
etwas üben (auf dem Display) :-)
Hugo H. schrieb:> nur mit der Rechtschreibung musst Du noch> etwas üben (auf dem Display) :-)
Wie ?
Soll ich für dich die Uhrzeit auf den Kopf drehen ??
Oder braucht ihr die Essenz all' der Weisheiten noch deutlicher ?
Holger Z. schrieb:> Soll ich für dich die Uhrzeit auf den Kopf drehen ??
Wenn man den Betracher schon beleidigt, dann sollte die Grammatik
stimmen, sonst fällts auf dich selber zurück...
Holger Z. schrieb:> Soll ich für dich die Uhrzeit auf den Kopf drehen ??
Klick einfach mal auf den Link und guck wo du landest. Von einer Uhrzeit
ist da nichts zu sehen.
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 )
Holger Z. schrieb:> Arduino verdummt halt
Finde ich nicht. Treiber nehmen einem heutzutage viel Arbeit ab.
Komplett "bare metal" zu gehen macht keinen großen Sinn. Dafür sind
Controller, Sensoren, Wasserkocher zu komplex, es sei denn man möchte
Monate darin versenken.
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
:-)
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?
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 ....
>> Du bekommst es allerdings nicht auf die Reihe nur einen Usernamen zu> verwenden, dabei ist das keine Magic.>
ähm ,.... HÄ ??
War's Bier alle ??
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?
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?
Holger Z. schrieb:
> ähm .... hä ?
Holger Z. schrieb:
> ähm ,.... HÄ ??> War's Bier alle ??
Und selbst? Zu viele Comics gelesen? Der Wortschatz ist ja
beeindruckend.
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. ;-)
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;-)
Holger Z. schrieb:> Ich mache mich nur über all den Blödsinn lustig.
Schade. Schade auch dass Du die sinnvollen Beiträge nicht erkennst, oder
nicht erkennen willst.
Der TO muss erst mal das Hardwareproblem lösen. Dann soll er mal einen
kompletten Schaltplan liefern und Bilder vom Aufbau.
@TO
Kommt von Dir noch etwas?
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.
Ich habe jetzt die Steckverbindungen gelötet. Noch findet das
Scan-Programm mein Display nicht.
Werde mich mal mit den Widerständen beschäftigen.
Dies ist das Video, welches ich als Referenz verwendet habe
https://www.youtube.com/watch?v=7x1P80X1V3E
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!
Thomas V. schrieb:> Und der SCL am Display ist doch immer noch nicht richtig angelötet!
Der ist gar nicht angelötet.
Alles andere ist nicht richtig angelötet...
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;-)
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.
Hans G. schrieb:> Ich weiß keine> Entschuldigung, ist mein erstes Löten gewesen.
Kein Problem - lege einfach ein paar Kabel übereinander - das geht dann
schon (oder auch nicht).
Metall oxidiert halt etwas und die Oxide sind nun mal nicht immer gute
Leiter.
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.