Forum: PC-Programmierung Arduino OLED Display Ansteuern & "Hello World" Programme gehen nicht.


von Rob (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Schlaumaier (Gast)


Lesenswert?

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.

von Schlaumaier (Gast)


Lesenswert?

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.

von Rob (Gast)


Lesenswert?

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.

von leo (Gast)


Lesenswert?

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

von Schlaumaier (Gast)


Lesenswert?

Vielleicht hilft das weiter.

Beitrag "ESP32 SSD1309 OLED C Library"

von Rob (Gast)


Lesenswert?

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.

von Rob (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.