16x2 Display an Pro Micro funktioniert nicht

Ich habe hier ein 16x2-Display mit I2C-Schnittstelle, das an meinem Uno perfekt funktioniert. Wenn man den Uno startet wird eine Zeile mit gefüllten Rechtecken dargestellt und auch Text lässt sich anzeigen.

Wenn ich das Display an dem Pro Micro anschließe, geht die Hintergrundbeleuchtung an, aber weder die Rechtecke erscheinen, noch kann Text ausgegeben werden. Ein Serial-Scanner-Sketch gibt die Adresse des Displays (0x3F) aber genauso aus, wie auch beim Uno. Aus dem Grund kann man eine falsche Verkabelung ausschließen, oder? (Ich habe es an den digitalen Pins 2 [SDA] und 3 [SCL] angeschlossen.)

Zum Testen habe ich sowohl beim Uno als auch beim Pro Micro dieselben Sketche verwendet, um auch da Fehler ausschließen zu können. Lediglich die "Board"-Auswahl habe ich natürlich verändert.

Liegt eine grundsätzliche Inkompatibiliät in diesem Fall vor, oder könnte ich etwas übersehen haben?
:kissing:

Hast du auch die 5 Volt-Version des Pro micro ?

Die Displays funktionieren meist nicht mit 3,3 Volt.

Ich habe garnicht gewußt, dass es zwei verschiedene Varianten gibt, ich dachte das gäbe es nur beim Pro Mini >:(

Es ist möglicherweise tatsächlich eine 3,3V-Version, zumindest zeigt mein Messgerät am VCC-Pin 3,3 V an. Ist das ein eindeutiger “Beweis” dafür, dass ich das genannte Modell habe?

Ich hänge ein Photo an, falls es noch andere wichtige Merkmale geben sollte. Auf der Rückseite steht “5V” und “3.3V”, und ich habe keine Ahnung, wie man das deuten soll. Die “16.000 Mhz” auf dem Quarz (?) haben keine Bedeutung, oder?

Andererseits habe ich mich gerade nochmal beim Händler nachgesehen (ein ebay Shop mit Sitz in Deutschland), bei dem man nach meiner Meinung nicht sehen kann, dass es unterschiedliche Versionen gibt. So steht z.B. in der Überschrift “ATmega32u4 Micro Pro 5V mini Leonardo Board for Arduino AR01010” und in der Beschreibung “ATMega 32U4 läuft bei 5V/16MHz” und im Lieferumfang “1 x Pro Micro - 5V/16MHz”.

Wäre es möglich, das Gerät trotzdem zu verwenden, indem ich VCC an 5V des Uno anschließe, und die GND von Uno und Pro Micro verbinde? (Ich bin ein absoluter Neuling was so etwas angeht :-![ )
Falls es mit 100% sicher ist, dass das falsche Produkt geliefert wurde, werde ich das natürlich trotzdem reklamieren, da ich an den 5V-Ausgang des Pro Micro meinen (5V-) Pro Mini anschließen wollte.

ProMicro35.jpg

Das ist wohl ein "Mischprodukt". :wink:

Der 16 MHz Resonator (Quarz) deutet auf einen 5 Volt Pro micro hin, aber du hast 3,3 Volt gemessen.

Da wurde wohl vergessen, die Brücke "J1" zu schließen.

Hänge hier ein Link zum Schaltbild ran.
Da kann man sehen, wenn die Brücke "J1" geschlossen ist, macht der 5 Volt, Brücke offen 3,3 Volt.

Allerdings entspricht er nicht dem Datenblatt, da er bei 3,3 Volt nur mit 8 MHz betrieben werden soll.

Also Brücke schließen und es sollte funktionieren.

Okay, danke! Ich werde mich aufgrund meiner Unerfahrenheit aber nicht daran trauen, eine Brücke zu reparieren. Um genau zu sein, weiß ich nicht einmal, wo man diese Brücke genau suchen müsste.

Sagamihara:
Okay, danke! Ich werde mich aufgrund meiner Unerfahrenheit aber nicht daran trauen, eine Brücke zu reparieren. Um genau zu sein, weiß ich nicht einmal, wo man diese Brücke genau suchen müsste.

Du hast doch ein Bild des micro gepostet.
Diese Brücke befindet sich auf der Bestückungsseite, neben der USB-Buchse, gekennzeichnet mit J1.

Anhand des Schaltbildes (Mein Post #3) wird dadurch der 3,3 Volt Spannungsregler überbrückt.

Dann hast du die 5 Volt Betriebsspannung.

An dem verlinkten Schaltbild sehe ich den RAW Pin, ausserdem Vcc und UVcc und die Brücke...
Läuft dann aber nur bei Brücke und USB mit 5V, ohne USB oder ohne Brücke über den Regler mit 3.3V

michael_x:
An dem verlinkten Schaltbild sehe ich den RAW Pin, ausserdem Vcc und UVcc und die Brücke…
Läuft dann aber nur bei Brücke und USB mit 5V, ohne USB oder ohne Brücke über den Regler mit 3.3V

Das stimmt, sollte aber kein Problem machen, da der micro, so wie ich es verstehe, immer an USB (5 Volt) angeschlossen ist. Oder sollte ich mich da irren ?

Da Sagamihara den RAW Pin überhupt nicht erwähnt hat, hast du sicher recht.
An Vcc/GND "fremde 5V" aufzulegen ist zwar generell sicher nicht empfohlen, aber wenn man keinen Lötkolben hat und die Brücke sicher AUF ist ...

GND muss natürlich auch verbunden sein.

Hallo,

danke für alle Antworten, ich habe die Brücke durch die Beschreibung jetzt gefunden. Und ja, er soll immer an USB angeschlossen sein.

Sagamihara:
Hallo,
danke für alle Antworten, ich habe die Brücke durch die Beschreibung jetzt gefunden. Und ja, er soll immer an USB angeschlossen sein.

Ok, also Brücke schließen, testen und messen.

Ergebnis melden.

Okay, ich habe die Brücke geschlossen und die Spannung ist jetzt ca. 4,9.. V. Auch das Display funktioniert jetzt - soweit so gut.

Allerdings stehe ich jetzt vor einem neuen Problem (das vermutlich für außenstehende offensichtliche Gründe hat, für mich aber nicht).

Ich habe also einen Uno und einen Pro Micro. Der Uno schickt Daten per I2C an den Pro Micro (der die Adresse 8 hat ["Wire.begin(8)"]. Der Pro Micro soll wiederum etwas an das angeschlossene 16x2-I2C-Display ausgeben (Adresse 0x3F, also 63?).

Wenn ich alles, was mit dem Display zu tun habe auskommentiere, funktioniert die Datenübertragung vom Uno, was durch Ausgabe am Serial Monitor überprüft werden kann.
Wenn ich das Display aber verwenden möchte, funktioniert dieses grundsätzlich, aber anscheinend werden die Daten vom Uno nicht mehr empfangen.

Ich habe gelesen, dass man möglicherweise Pullup-Widerstände benötigt, wenn man verschiedene I2C-Geräte gleichzeitig anschließt, aber andererseits wäre das bei kurzen Kabellängen nicht nötig.? Das hat auf jeden Fall keine Verbesserung gebracht.
Ansonsten weiß ich nicht, was ich noch versuchen könnte :confused:

Das ist prima, dass es jetzt funktioniert und wir dir helfen konnten.
Allerdings solltest du die Frage bzgl. I2C hier wieder löschen, da hast du ja schon einen anderen Thread laufen.

Du meinst ich soll die Frage in den Thread, indem ich eine Frage zur Kommunikation per Serial.write/read (die dann im Verlauf eher zum Thema Hall-Sensoren geführt hat) einweben? Ich hätte gedacht, das würde hier besser reinpassen, da dieser Thread von Anfang an mit I2C zu tun hat...

Wenn ich alles, was mit dem Display zu tun habe auskommentiere, funktioniert die Datenübertragung vom Uno

I2C ist ein Master / Slave Protokoll. Wer ist Master, wer Slave?
Kann man zwar dynamisch wechseln, aber kann man sich evtl. auch einfach machen.

Beim Display ist klar: Der Micro ist Master.
Beim Uno verstehe ich dich so, dass der Micro Slave werden soll:  Wire.begin( 8 ); 8)
Kannst du stattdessen den Uno zum Slave machen? Und im Micro per Wire.requestFrom Daten holen.

Sagamihara:
Du meinst ich soll die Frage in den Thread, indem ich eine Frage zur Kommunikation per Serial.write/read....

Ja, weil es da auch um Kommunikation geht.
Hier ist das Thema ja "Display an Pro micro", da rechnet keine mit I2C.

Aber egal, musst du wissen. Aktuell wäre ein neuer Thread eh besser. :wink:

Es funktioniert jetzt perfekt, vielen Dank! Ich habe wie vorgeschlagen den Pro Micro zum Master gemacht.

Ich hatte das so aufgefasst, dass es möglicherweise ein unausgeschriebenes Foren-Gesetz gibt, nachdem man nicht zwei Threads gleichzeitig haben soll um das Forum nicht zuzumüllen, aber nächstes Mal werde ich dann jeweils zu jedem neuen Thema einen neuen Thread starten. :slight_smile:

Sagamihara:
Es funktioniert jetzt perfekt, vielen Dank! Ich habe wie vorgeschlagen den Pro Micro zum Master gemacht.

Ich hatte das so aufgefasst, dass es möglicherweise ein unausgeschriebenes Foren-Gesetz gibt, nachdem man nicht zwei Threads gleichzeitig haben soll um das Forum nicht zuzumüllen, aber nächstes Mal werde ich dann jeweils zu jedem neuen Thema einen neuen Thread starten. :slight_smile:

Ja, ok....

Prima dass es jetzt funktioniert.
Und mit zwei Threads betrifft es nur, wenn es das selbe Thema oder der selbe Inhalt ist.

Alles gut.