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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Rob (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilft das weiter.

Beitrag "ESP32 SSD1309 OLED C Library"

von Rob (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.