Mikrocontroller und Digitale Elektronik
›
Thread
ESP32 von heltec mit Display
TH
Thomas H.
(doktory)
OP
(Firma: Megabricks GmbH)
10.02.2023 14:12
#7344035
Hallo,
Ich habe ein ESP32 S3 von heltec gekauft und dieser hat ein Display mit eingebaut.
Dieser hier: https://heltec.org/project/wifi-kit-32-v3/
Nur wie bekomme ich den Display eingebunden? ich hab es über die Adafruit_SSD1306 probiert mit wire und gfx
doch es bleibt alles dunkel.
ist das einfach nur falsch oder hab ich eine falsche I2C Adresse? es gibt keine fehlermeldung.
Evtl kann mir jemand helfen diesen Code so zu ergänzen das die Sachen die auf dem serial screen ausgegeben werden auch auf meinem Eingebauten Screen ausgegeben werden.
Ich habe bewusst meinen Code für die Screen einbindung raus genommen um keine verwirrung zu stiften.
Danke
1
#include <WiFi.h>
2
#include <WiFiClient.h>
3
#include <WiFiServer.h>
4
#include <WebServer.h>
5
#include <FastLED.h>
6
7
const char * ssid = "" ;
8
const char * password = "" ;
9
10
#define LED_PIN 4
11
#define NUM_LEDS 50
12
#define BRIGHTNESS 100
13
#define LED_TYPE WS2813
14
#define COLOR_ORDER GRB
15
CRGB leds [ NUM_LEDS ];
16
17
WebServer server ( 80 );
18
19
int led1 , led2 ;
20
21
struct LEDPair {
22
String code ;
23
int led1 ;
24
int led2 ;
25
};
26
27
LEDPair pairs [] = {
28
{ "A001" , 0 , 1 },
29
{ "A002" , 2 , 3 },
30
{ "A003" , 4 , 5 },
31
{ "A004" , 3 , 8 },
32
{ "A005" , 2 , 30 },
33
{ "A006" , 0 , 49 },
34
};
35
36
void setup () {
37
Serial . begin ( 115200 );
38
WiFi . begin ( ssid , password );
39
40
while ( WiFi . status () != WL_CONNECTED ) {
41
delay ( 1000 );
42
Serial . println ( "Connecting to WiFi..." );
43
}
44
Serial . println ( "Connected to WiFi" );
45
Serial . println ( "IP address: " );
46
Serial . println ( WiFi . localIP ());
47
48
FastLED . addLeds < LED_TYPE , LED_PIN , COLOR_ORDER > ( leds , NUM_LEDS ). setCorrection ( TypicalLEDStrip );
49
FastLED . setBrightness ( BRIGHTNESS );
50
51
server . on ( "/led" , handleLedRequest );
52
server . begin ();
53
Serial . println ( "HTTP server started" );
54
}
55
56
void loop () {
57
server . handleClient ();
58
59
for ( int i = 0 ; i < NUM_LEDS ; i ++ ) {
60
if ( i == led1 || i == led2 ) {
61
leds [ i ] = CRGB :: Red ;
62
} else {
63
leds [ i ] = CRGB :: Black ;
64
}
65
}
66
FastLED . show ();
67
delay ( 500 );
68
69
for ( int i = 0 ; i < NUM_LEDS ; i ++ ) {
70
if ( i == led1 || i == led2 ) {
71
leds [ i ] = CRGB :: Black ;
72
} else {
73
leds [ i ] = CRGB :: Black ;
74
}
75
}
76
FastLED . show ();
77
delay ( 500 );
78
}
79
80
void handleLedRequest () {
81
if ( server . hasArg ( "ledpair" )) {
82
String ledpair = server . arg ( "ledpair" );
83
for ( int i = 0 ; i < sizeof ( pairs ) / sizeof ( LEDPair ); i ++ ) {
84
if ( ledpair == pairs [ i ]. code ) {
85
led1 = pairs [ i ]. led1 ;
86
led2 = pairs [ i ]. led2 ;
87
break ;
88
}
89
}
90
if ( led1 >= 0 && led2 >= 0 ) {
91
server . send ( 200 , "text/plain" , "LEDs are blinking" );
92
} else {
93
server . send ( 400 , "text/plain" , "Invalid request" );
94
}
95
} else {
96
server . send ( 400 , "text/plain" , "Invalid request" );
97
}
98
}
D
Dieter
Gast
10.02.2023 14:26
#7344051
Thomas H. schrieb:
I2C Adresse
Lade mal den I2C Scanner aufs Board, der sollte die Adresse finden, falls es daran liegen sollte.
Und beachte bitte die Regeln
Wichtige Regeln - erst lesen, dann posten!
1
Groß- und Kleinschreibung verwenden
2
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
Es macht wenig Spaß, immer im Fenster hin- und her zu scrollen. Danke.
Formatierung (Einrückung) könnte auch besser sein.
Beitrag #7344092 wurde von einem Moderator gelöscht.
M
Monk
Gast
10.02.2023 15:33
#7344108
Wahrscheinlich musst du die Pins einstellen, an denen das Display hängt.
https://docs.espressif.com/projects/arduino-esp32/en/latest/api/i2c.html
PepeTheSwiss schrieb:
Helmut -. schrieb:
1
Groß- und Kleinschreibung verwenden
Warum denn?
Sinn machtes 100% keinen.
Asser deutschschreiber macht das auch niemand auf der welt.
Gross/kleinschreibung ist genauso obsolet wie die sommerzeit.
Na, darfst du hier auch wieder schreiben, alter Ewiggestriger Frosch?
R
Rudolph
Gast
10.02.2023 16:03
#7344140
Ich habe
1
// Display
2
#include <U8g2lib.h> // For text on the little on-chip OLED
3
#define OLED_CLOCK 15 // Pins for the OLED display
4
#define OLED_DATA 4 // https://github.com/olikraus/u8g2/wiki
5
#define OLED_RESET 16
6
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 ( U8G2_R0 , OLED_RESET , OLED_CLOCK , OLED_DATA );
und
1
void setup () {
2
// Setup OLED Display
3
u8g2 . begin ();
4
}
Das sollte zumindest die Pins klären.
M
Monk
Gast
10.02.2023 16:09
#7344147
Thomas H. schrieb:
Nur wie bekomme ich den Display eingebunden? ich hab es über die
Adafruit_SSD1306 probiert mit wire und gfx doch es bleibt alles dunkel.
Ich habe bewusst meinen Code für die Screen einbindung raus genommen um
keine verwirrung zu stiften.
Muss man die Logik hinter der Aktion verstehen?
R
Rudolph
Gast
10.02.2023 16:10
#7344148
Rudolph schrieb:
Ich habe
Korrektur: ich habe ein V2.1. Offenbar haben sich zur aktuellen 3.0 die Pins geändert, die Pinout-Diagramme sind jedenfalls anders nummeriert.
Beitrag #7344155 wurde von einem Moderator gelöscht.
M
Monk
Gast
10.02.2023 16:19
#7344160
Rudolph schrieb:
Offenbar haben sich zur aktuellen 3.0 die Pins geändert
Ah OK, also der gleiche Sch*** wie bei den ähnlichen Modulen mit ESP8266.
Beitrag #7344167 wurde von einem Moderator gelöscht.
Beitrag #7344188 wurde von einem Moderator gelöscht.
Beitrag #7344198 wurde von einem Moderator gelöscht.
Beitrag #7344304 wurde von einem Moderator gelöscht.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
Noch kein Account?
Die Registrierung ist kostenlos und dauert nur eine Minute.
Jetzt registrieren