ich wollte ein E-paper (2,13" von Waveshare) an einem ESP32 betreiben. Dazu habe ich in der Arduino-IDE in Bibliotheksverwaltung alle möglichen Sachen installiert, die irgendwie mit EPD zusammenhängen (GxEPD, GxEPD2, EPD, Adafruit-EPD usw).
Hat aber nichts geholfen: Wenn ich so einen Beispielcode wie Hello World kompiliere, bricht es ab mit dem Hinweis, das "display...." nicht gefunden wurde. Also fehlt wohl irgendeine library.
Ich befürchte, da fehlt eher der richtige Anschluss oder der richtige Eintrag der Pins.
Du brauchst nur eine Bibliothek, GxEPD2 ist die aktuelle.
Wenn irgendwas fehlt meckert Arduino.
Ich befürchte, da fehlt eher der richtige Anschluss oder der richtige
Eintrag der Pins.
Die Pins sind gar nicht angeschlossen. Mir kam es zunächst darauf an, ob das Programm überhaupt für einen ESP32 kompiliert wird oder ob ich einen Arduino Uno nehmen muß.
Mir ist nicht bewußt, daß beim Kompilieren schon irgendwelche Verbindungen zur Hardware, so vollständig oder unvollständig sie sein mag, bestehen.
Das würde bedeuten, dass du die Kommentarzeilen vor einer der Display-Definitionen in der GxEPD2_display_selection.h entfernt hast.
In der Zeile wird "display" definiert. d.H. danach taucht die Fehlermeldung
"'display' was not declared in this scope" nicht mehr auf.
Vorsicht, muss in der ESP32-Sektion der Datei sein, nicht in der ESP8266-, STM32 oder AVR-Sektion.
Hier ist noch mal die zuletzt benutzte Version des Hallo-World-Programmes samt Fehlermeldung. Die includierten Dateien sind alle noch drin. Selbst da, wo zwischen old style und new style unterschieden wird, habe ich beide drin gelassen. Es sind also zuviel und nicht zu wenige ...h - Dateien includiert (gibt sicher kein lauffähiges Programm). Aber:In keiner der zugehörigen Dateien scheint "display" enthalten zu sein. In die ...h und ...cpp - Ddateien habe ich noch nicht hineingeschaut.
Nebenbei: weshalb dauert das Kompilieren 10-15 Minuten?
Hier das kompltte Programm:
1
// GxEPD2_HelloWorld.ino by Jean-Marc Zingg
2
3
// see GxEPD2_wiring_examples.h for wiring suggestions and examples
4
// if you use a different wiring, you need to adapt the constructor parameters!
5
6
// uncomment next line to use class GFX of library GFX_Root instead of Adafruit_GFX
7
//#include <GFX.h>
8
9
#include<GxEPD2_BW.h>
10
#include<GxEPD2_3C.h>
11
#include<Fonts/FreeMonoBold9pt7b.h>
12
13
// select the display class and display driver class in the following file (new style):
14
#include"GxEPD2_display_selection_new_style.h"
15
16
// or select the display constructor line in one of the following files (old style):
17
#include"GxEPD2_display_selection.h"
18
#include"GxEPD2_display_selection_added.h"
19
20
// alternately you can copy the constructor from GxEPD2_display_selection.h or GxEPD2_display_selection_added.h to here
Das ist nicht komplett. Da gehören die Dateien dazu, in denen du auswählst, was für ein Display du hast, und damit die "display"-Variable deklarierst.
Also Eine der "_display_selection.h"- Dateien.
die Funktion "display" 3te Zeile -> display(G....
ja immer noch auskommentiert hast
Ja, nachdem ich die Auskommentierung entfernt habe,lief das Kompilieren bis zum Ende durch!
Nach diesem hilfreichen Hinweis werde ich mich nun darum kümmern, an welche Pins des ESP-WROOM 32 das EPD angeschlossen werden muß und wie ich die passende Sequenz für mein 2.13"-EPD im Programm unterbringe. Vielleicht funktioniert es dann.
Aus dem obigen Sourcecode ist auch folgendes zu lesen:
1
// select the display class and display driver class in the following file (new style):
2
#include"GxEPD2_display_selection_new_style.h"
Anscheinend soll der Benutzer wohl in der include Datei "GxEPD2_display_selection_new_style.h" das richtige Display auswählen. Die 3te Zeile ist halt eine Alternative dazu, muß jedoch an das Display angepasst werden. Es gibt halt sehr viele verschiedene Displays.
An Deinem Gerät beeindruckt mich die schöne Gestaltung des Displays.
Hast Du das selber programmiert?
Diesen Teil schon. Wie bei Dir. Das von der Stange gefiel mir nicht. Kann ich dir aber im Quellcode zur Verfuegung stellen, falls Du dir einen flashen willst.Hat das jetzt geklappt mit der SPI Verdrahtung?
danke, ich habe es soeben heruntergeladen und gespeichert.
Mal sehen, ob ich es hinkriege und dann später an meine Verhältnisse anpassen kann. Ist mein erster Versuch mit einem grafischen Display. Allerdings komme ich in den nächsten Tagen nicht dazu (Gartenarbeit usw.).