Hallo ihr Lieben, ich mochte mit ein Arduino Uno ein OLED Display ansteuern. Der Display ist dieser hier: https://www.amazon.de/Display-Arduino-SSD1309-Parallel-Interface/dp/B0749DYGSW/ref=sr_1_3?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=oled+arduino+2%2C42+Zoll&qid=1598524257&sr=8-3 Ich habe wenig Erfahrung damit Display mit ein Arduino anzusteuern und keine Erfahrung mit OLED Displays. Meine Vorgehensweise war, den Chipnamen des Displays: 'SSD1309' in den Arduino libiry Bibliotheken zu suchen und in der Passenden Bibliothek das 'Hello Word' oder ein 'test01' Programm zu starten und zum laufen zu bringen. Der Display ist von Werk auf das SPI Protikoll eingestellt und dies will ich auch verwenden. Bibliotheken, die ich gefunden habe sind: 'U8g2' und 'SparkFun_HyperDisplay_Transparent_Graphical_OLED' bei den Beispielen von U8g bekomme ich beim Kompilieren die Fehlermeldung: "'u8g' was not declared in this scope" Code in Datei: "HelloWorld.ino" Dort ist vermerkt, dass die Kommentare in Konstruktor entfernt werden sollen. Ich habe alle Kommentare in Code gelöscht und bekomme das gleiche Ergebnis. Die Libery Dateien habe ich nicht verändert. Bei der 'SparkFun' Bibliothek habe ich den Code: 'Example1_DisplayText.ino' verwendet. Dort gab es beim Kompilieren keine Fehler. In Zeile 50 habe ich den Wert von 0 auf 1 verändert --> #define USE_SPI 1 Die von mir verwendete Pinbelegung hierbei ist: Display zu Ardunio: CS --> Pin 4 DC --> Pin 5 Res --> Pin 2 SDA --> Pin 11 SCL --> Pin 13 VCC --> 5 V GND --> GND Ich würde mich sehr freuen, wenn mich jemand darauf aufmerksam machen kann, was ich falsch mache. Dabei ist es mir gleich, welche Bibliothek nun verwendet wird.
Der Fehler "was not declared in this scope" tritt beim Arduino auf, wenn Sie einer Variable einen Wert zuweisen, ohne diese vorher deklariert zu haben. Fügen Sie beispielsweise den Befehl "a = 6;" dem Programm hinzu, ohne vorher "int a;" geschrieben zu haben, wird der Fehler ausgegeben. Und wenn du die Pin-Belegung angibst, musst du auch den Arduino mit angeben. Die Teile sind NICHT Pin-Gleich. Alle haben alle Pins das ist klar, aber leider nicht an der selben Stelle.
Nachtrag : http://blog.simtronyx.de/ein-096-zoll-oled-display-i%C2%B2c-mit-128x64-pixel-und-ein-arduino/ Das Teilchen ist zwar kleiner aber ist der Selbe Chip.
Schlaumaier schrieb: > musst du auch den Arduino mit > angeben. Rob schrieb: > ich mochte mit ein Arduino Uno ein OLED Display ansteuern. Ich dachte das wäre eine ausreichend genaue Beschreibung. Falls etwas fehlt bitte ich darum, mich zu Informieren. Schlaumaier schrieb: > Der Fehler "was not declared in this scope" tritt beim Arduino auf, wenn > Sie einer Variable einen Wert zuweisen, ohne diese vorher deklariert zu > haben. Danke. Ich spreche aber von einem Beispiel, welches ich aus einer Bibliothek heraus geöffnet habe und selbst nicht manipuliert habe. Hinzu kommt, dass die unbekannte Variable die ist, die auf die Bibliothek verweist. Schlaumaier schrieb: > Das Teilchen ist zwar kleiner aber ist der Selbe Chip. Ach dafür danke ich. Der Chip nicht nicht der selbe denn es handelt sich um ein ssd1306. Außerdem wird der Chip in dem Tutorial mit I²C angesteuert. ich möchte aber SPI. Ich muss mir um die zusätzliche Leitung keine Sorgen machen und wünsche mir eine schnelle Übertragung.
Rob schrieb: > "'u8g' was not declared in this scope" Code in Datei: "HelloWorld.ino" > Dort ist vermerkt, dass die Kommentare in Konstruktor entfernt werden > sollen. Ich habe alle Kommentare in Code gelöscht Lesen hilft: "setup u8g object, please remove comment from one ..." Du hast also kein u8g Objekt erklaert, was genau deiner Fehlermeldung entspricht. leo
leo schrieb: > Du hast also kein u8g Objekt erklaert, was genau deiner Fehlermeldung > entspricht. Danke, dass du mich darauf aufmerksam gemacht hast. Endlich habe ich verstanden, was ich machen sollte, zumindest hoffe ich das, denn es geht immer noch nicht. Ich habe den Kommentar in Zeile 106 aufgehoben, sodass das hier: "U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9);" nun zum Code dazugehört. Das Kompilieren erzeugt nun keine Fehlermeldung mehr. Meine Pinbelegung ist nun wie folgt: Display zu Arduino Uno CS --> Pin 10 DC --> Pin 9 RES --> Pin 8 SDA --> Pin 11 SCL --> Pin 13 VCC --> 5V GND --> GND Trotzdem bleibt der Display schwarz. Ist das Normal das ein OLED schwarz bleibt, auch wenn man ihn mit Spannung versorgt? Ich habe die Verbindungskabel und die Steckverbindung überprüft, die Leiten alle. Ich habe den Arduino ausgewechselt und es kommt zum selben Ergebnis.
ich habe die Bibliothek nun geändert. g8u wird nicht mehr unterstützt und ich wählte g8u2. Nun Läuft es. Ich danke für eure Unterstützung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.