Super Mini ESP32-C3 Board

OP #7517662
Lesenswert?

Hallo, ich habe auf Aliexpress ein kleines Board gefunden und will da ein bißchen experimentieren. Ich habe mal präventiv ein paar bestellt, die haben ja bis zu acht Wochen Lieferzeit. In www gibt es unterschiedliche Informationen über die Funktionen der Pins. Weiß jemand welche Pins man als Input und/ oder Outputs und welche Pins Interrupts verarbeiten können? https://de.aliexpress.com/item/1005006054605298.html?spm=a2g0o.order_list.order_list_main.35.3b085c5fl1BHSj&gatewayAdapt=glo2deu Vielen Dank für jede Antwort Hans

#7517668
Lesenswert?

Schaltplan im Anhang, Datenblatt findest du hier: https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/hw-reference/index.html

Beachten: Da drinnen werkelt ein Risc-V Core, Toolchain ist also eine andere als bei bisherigen ESP32.

Sind aber nette Teile, und dass sie direkt USB unterstützen, und das Board deshalb den CH340 o.Ä. einsparen kann ist beim Stromsparen auch von Vorteil.

Ach ja, die eigentliche Frage: Jeder GPIO-Pin ist interruptfähig.

Angehängte Dateien:
#7533034
Lesenswert?

Ich habe mal ein Mini-Benchmark ESP32-WROOM gegen ESP32-C3 laufen lassen:

Micropython 1.21.0 auf beiden Boards installiert und per REPL Python laufen lassen:

1
for i in range(10000000):   # 10^7 Durchläufe
2
    a=3**3

ESP32-WROOM brauchte 57 Sekunden, ESP32-C3 47 Sekunden, (evtl ist das Ergebnis nicht repräsentativ)

#7533673
Lesenswert?

Hallo,

dein ESP32C3 Board sollte gleich dem von XIAO sein. Deswegen frage ich einmal ob bei dir I2C in Hardware funktioniert oder nicht? "Wir" haben im Arduino Forum jemanden der bekommt sein I2C Display mit SSD1306 und u2g8 Lib per I2C Hardware nicht zum laufen. Nur per Software I2C. Mit Hardware I2C scheint es komplett einzufrieren. laut Aussage. Er sieht an den I2C Pins auch keine Signale. Die Frage wäre funktioniert bei dir irgendwas mit Wire.h Hardware I2C (RTC, Sensor, Display, etc.) und Ausgaben auf der Seriellen? Wenn ja könnte man den ESP32C3 als Problem ausschließen.

#7533717
Lesenswert?

Mein Board habe ich bei Ali gekauft https://www.aliexpress.com/item/1005005955099518.html Ich arbeite nicht mit Arduino-... sondern mit Micropython. Tatsächlich kann man den Hardware-I2C nicht nutzen, SoftI2C geht einwandfrei.

1
MicroPython v1.21.0 on 2023-10-06; ESP32C3 module with ESP32C3
2
Type "help()" for more information.
3
>>> 
4
>>> from machine import Pin, I2C
5
>>> i2c = I2C(scl=Pin(4), sda=Pin(3), freq=10000)
6
Warning: I2C(-1, ...) is deprecated, use SoftI2C(...) instead
7
>>> from machine import SoftI2C
8
>>> i2c = SoftI2C(scl=Pin(4), sda=Pin(3), freq=10000)
9
>>> i2c.scan()
10
[60]
11
>>>

Auch die GPIOs funktionieren.

#7533765
Lesenswert?

Der esp32c3 ist kein herkömmlicher Esp32 (240mhz dual Core), sondern ein Singlecore risc-V, Soweit ich ich mich erinnere etwas mehr als die hälfte Taktrate.

Das mit dem ssd1306 gab es auch schon auf Facebook, der erste mit Ahnung der das ausprobiert hatte, hat es dann doch schnell zum Laufen bekommen.

Das Problem ist das man keinen echten Serial Port als Debug Port hat, da kommen viele dann nicht weiter.

Der C3 hat einfach nur kleine Unterschiede im i2C.

#7533790
Lesenswert?

Hallo,

ich liebe solche Antworten.

#Philipp K. schrieb:

Der esp32c3 ist kein herkömmlicher Esp32 (240mhz dual Core), sondern ein Singlecore risc-V, Soweit ich ich mich erinnere etwas mehr als die hälfte Taktrate.

Das wissen wir schon.

Das mit dem ssd1306 gab es auch schon auf Facebook, der erste mit Ahnung der das ausprobiert hatte, hat es dann doch schnell zum Laufen bekommen.

Und wie hat er es zum Laufen gebracht? Doch nicht etwa mit Software I2C ...

Der C3 hat einfach nur kleine Unterschiede im i2C.

Das wären genau? Das der RISC-V Kern alles intern irgendwie emuliert?

#7533998
Lesenswert?

Hallo,

also mal Butter bei de Fische. Was weißt du wirklich? Hören sagen hilft hier nicht weiter. Das Datenblatt zum ESP32C3 hatte ich schon gelesen. Hilft mir bzw. dem anderen eigentlichen User mit XIAO ESP32C3 nicht weiter. Wo das Problem ist? I2C in Hardware funktioniert nicht bzw. blockiert andere Dinge wie die Serielle. Weil Software I2C und Serielle funktionieren. Das ESP Core Package für die Arduino IDE stammt von Espressif selbst. Jetzt kann darin ein Fehler sein oder der RISC-V Kern hat ein Problem. Letzteres glaube ich jedoch weniger. Ich hatte gehofft jemand sagt das Problem liegt genau da, Lösung x führt zum Erfolg oder es gibt dafür keine Lösung. Alles ist möglich. Ich bin nur neugierig, ich selbst habe das Teil nicht.

(Firma: Privat) #7534468
Lesenswert?

also es gibt eine zusätzlich Release binaries for Tasmota firmware 13.2.0 on ESP32 für den esp32c3 risc-v , dann aber läuft so manches andere nichtmehr. und der aus FB behält seine info wie er das zum laufen bekommen hat als GEHEIM. das hat er extra so beschrieben !!! der ist aber auch einer der professionell programiert.

auch beschreibt er die probleme mit dem seriellen monitor. allerdings auch ohne eine lösung der probleme.

dann gibt es die brzo_i2c-master.zip , ist aber auch keine sichere sache. denn die ist eigentlich für de esp8266 geschrieben , und in wiefern die sicher auf dem esp32c3 risc v läuft steht in den sternen.

für privat als hobby ist das bestimmt so okay , wenn das ganze allerdings in eine fixe verkaufbare lösung werden soll , vergisses.

manchmal läuft das ganze problemlos an , manchmal halt nicht und jedes mal zwischen boot und reset herum zu spielen ???

komisch ist nur !!! das keiner der Verkaufsfirmen ein beispiel für das Problem veröffentlicht. keiner bietet ein beispiel esp32c3 risc-v und ssd1306 ohne extra hardware an

beschriebe probleme mit dem prozessor und der i2c gibt es zu haufe in den foren , ohne echte lösung

(Firma: Privat) #7534512
Lesenswert?

das problem mit dem esp32c3 risc v prozessor ist das er keine der beschrieben ports , spi , i2c , tx/rx seriel HW ,in wirklichkeit hat !!! alles nur per Software in einem task mit den gpio's simuliert. genau deshalb gibt es diese probleme , sowohl mit der i2c als auch mit der spi und dem tx/rx als externe rs232. aber auch die serielle über den usb , ist nur eine JTAG , somit auch nur software. und da gibt einer der china ingenieuren zu erkennen das nicht sicher ist wiegut das programiert ist.

#7534526
Lesenswert?

Veit D. schrieb:

also mal Butter bei de Fische.

Ich befürchte das es jemand der Ahnung hat mit den ersten einschlägigen Google Ergebnissen oder Beachtung der vorhandenen issues der arduino-esp Repos in 20 Minuten hinbekommt.

Nur tappt man da ohne ein paar Tests leider im Dunkeln wenn man helfen möchte und das gerät nicht hat. I2c ist halt kein Hexenwerk.

Es kann halt soviel falsch laufen.

Peter A. schrieb:

und der aus FB behält seine info wie er das zum laufen bekommen hat als GEHEIM.

Das war ironisch weil es wohl zu einfach ist, so habe ich das verstanden.

#7534546
Lesenswert?

Gruss

Ich frag mal. Und wie sieht es beim ESP32C3 für eine praktische Anwendung mit ADC, BLE und Smartphone aus? Informell bin ich bei den ESPs und ADC schon distanziert. Geht aber auch extern. Das microPython steht bei mir im Interesse, ( C(++) kann es durchaus auch sein.)

Dirk St

#7536976
Lesenswert?

Da ich den Esp32-C3 sowieso mal ausprobieren wollte probierte ich das mit dem Display am Xiao-ESP32-C3.

Das ganze war in 5 Minuten erledigt..

Ich brauchte das Board nur auspacken und 4 Jumper Kabel zum SSD1306 Display verstrippen.

Dazu U8g2 HW-I2C Democode den ich mal etwas abgeändert habe genutzt (Ich vermute mal das klappt auch ohne abändern.)

Es funktionierte, welch ein Wunder!

Was etwas Übung forderte war über die SMD-Taster zwischen den Pin Headern in den Flashmode zu kommen.. ich musste doppelt resetten, bzw. das Board stromlos machen damit das Programm startete, trotz des SW-Reset am Ende vom Flashtool.

#7538447
Lesenswert?

Philipp K. schrieb:

Was etwas Übung forderte war über die SMD-Taster zwischen den Pin Headern in den Flashmode zu kommen.. ich musste doppelt resetten, bzw. das Board stromlos machen damit das Programm startete, trotz des SW-Reset am Ende vom Flashtool.

Entspricht eigentlich allen "nackten" ESP's.

Reset drücken und festhalten. Boot drücken und festhalten. Reset loslassen. Boot loslassen. Flashen....danach Reset drücken und er läuft. ;)

#7539135
Lesenswert?

Dieter S. schrieb:

Veit D. schrieb:

"Wir" haben im Arduino Forum jemanden der bekommt sein I2C Display mit SSD1306 und u2g8 Lib per I2C Hardware nicht zum laufen. Nur per Software I2C. Mit Hardware I2C scheint es komplett einzufrieren. laut Aussage.

Mittlerweile gibt es da aber eine Lösung. Also u2g8 funktioniert auch am ESP32-C3 mit I2C Hardware.

Habe ich gelesen. :-) Sehr schön.

#7599348
Lesenswert?

Die Probleme mit der Hardware-I2C lassen sich leicht lösen, wenn man sich das ESP32C3-Datenblatt ansieht. Darin heißt es, dass es sich bei den I2C-Leitungen um offene Drain-Pins handelt. Diese Pins müssen an VCC hochgezogen werden, damit sie ordnungsgemäß funktionieren. Beim XIAO ESP-C3 sind keine Pullups mit den Standard-I2C-Pins verbunden und diese müssen daher vom Benutzer hinzugefügt werden. Laut Espressif sollen die Werte bei einer Geschwindigkeit von 400kHz bei etwa 2K und bei einer Geschwindigkeit von 100kHz bei 5K liegen. Der ESP32-C3-(super)mini verwendet Pull-up-Widerstände mit einem Wert von 10K, die auf den Standard-I2C-Leitungen montiert sind. Hardware-I2C wird hier wahrscheinlich funktionieren, aber nur für niedrige Geschwindigkeiten (<50 kHz) und kurze Kabel. Es ist möglich, die I2C-Pins auf andere Pins zu verlegen, aber man sollte dann die benötigten Pull-up-Widerstände hinzufügen.

#7599355
Lesenswert?

Jack D. schrieb:

Darin heißt es, dass es sich bei den I2C-Leitungen um offene Drain-Pins handelt.

Das ist bei I2C so und der ESP sollte da keine Ausnahme machen.

Diese Pins müssen an VCC hochgezogen werden, damit sie ordnungsgemäß funktionieren.

Das steht schon so in der I2C-Spezifikation (Kap. 3.1.1 SDA and SCL signals). Der ESP32C3 kann da nichts für. Das ist seit 42 Jahren so. https://www.nxp.com/docs/en/user-guide/UM10204.pdf

#7599366
Lesenswert?

Die 10k sind ein Kompromiss... diese "Arduino"-Platinchen werden gerne mit ähnlichen "Arduino"-I²C-Boards verknüpft, und dort sind auch jeweils 10k Pull-Up drauf. d.H. alles fein, zusammen sind das die geforderten 5k bei 100kHz. Wenn du zuviele von diesen Breakout-Boards parallel schaltest geht's halt nicht mehr.

Und wenn du eigene Hardware/Platinchen über I²C anflanschen willst, musst du dich selber um die Pull-Ups kümmern.

#7599778
Lesenswert?

Εrnst B. schrieb:

... d.H. alles fein, zusammen sind das die geforderten 5k bei 100kHz. Wenn du zuviele von diesen Breakout-Boards parallel schaltest geht's halt nicht mehr.

Wo hast du diese komische Forderung nach 5kΩ her. Damit bist du bei 3,3V mehr als einen Faktor 4 über dem laut Spezifikation zulässigen minimalen Wert und weit unter dem maximalen, der dann von deinem Aufbau abhängt.

In der Abbildung in der I2C Spezifikation zum maximalen Pull-Up siehst du, dass der Widerstand von der kapazitiven Last abhängt und weit höher sein kann (I2C-Specifikationen Rev7 (*) in Figure 41. Rp(max) as a function of bus capacitance im Kap 7.1 Pull-up resistor sizing auf S.50)

Um bei 3.3V die zulässigen 3mA zu überschreiten, müsstest du schon 10 oder mehr Busteilnehmer mit 10kΩ auf den Bus hängen. Das dürfte in der Breakout-Boards-Gemeinde dann doch schon eher selten sein. (I2C-Specifikationen (*) Fig. 42 im Kap 7.1 Pull-up resistor sizing, S.50)

Die 3mA sind der Mindestwert, den ein Busteilnehmer im Fast- oder Standard-Mode schaffen können muss, d.h. selbst wenn der Strom höher ist, ist das noch lange keine Garantie, dass nichts mehr geht.

Diejenigen, die mehr Teilnehmer auf den Bus hängen wollen, müssen dann zum Lötkolben greifen und ein paar Pull-Ups entfernen.

*) https://www.nxp.com/docs/en/user-guide/UM10204.pdf

#7613617
Lesenswert?

Meine Lieben, ich gebe gerne meinen Senf dazu, weil ich auch diese hübschen "ESP32C3 Super Mini" Boards bei Aliexpress gekauft habe: Die wichtigste Info und die häufigste Fehlerquelle ist m.E., dass das Pinout-Diagramm praktisch überall falsch ist (es sind sogar mehrere verschiedene im Umlauf), auch auf den Seiten der Aliexpress-Händler. Das "Drüberretten" mit Soft-I2C ist völlig unnötig:

Nehmt das Pinout aus dem Schaltplan (rechts oben). Das stimmt.

LG Ran

PS:

Angehängte Dateien:
(Firma: Verliererland) #7653062
Lesenswert?

Wenn jemand schon ein Kicad7 schematic/footprint/3dModel gebastelt hat, würde ich mich über Link freuen.

Möchte damit einen kleinen I2C Slave basteln und bei JLPCB mit ordern. Mit dual gate drivern (ucc37324: https://de.aliexpress.com/item/1005006041939790.html) ein paar Mosfets schalten..

Mein master board hat den S2Mini (https://github.com/RoboDurden/Esp32_20A_80V_dcdc) , da wäre Bluetooth5 vom C3Mini gar nicht verkehrt.

Anbei das Produktphoto von 1,91€ AliExpress Verkäufer. Welche zwei I2C pins soll ich verwenden ?

Mit 2000Hz, 50% duty pwm laden soll man die Zyklen von LiIon rund verdoppeln können: https://www.photovoltaikforum.com/thread/225892-liion-zyklenzahl-durch-gepulstes-laden-verdoppeln-2-khz-50-duty/

Ist für eBike Besitzer interessant, da wird kein LiFePo4 verbaut..

Angehängte Dateien:
#7653091
Lesenswert?

Gibts den für die Risc Variante die ganzen libs im Quellcode oder ist es da genauso wie bei den restlichen ESPxxx Chips? Ich frag mich nur immer wie da jemand garantiert, dass sich nicht in vielen Millionen Chips Hintertüren befinden die nur auf den Tag X warten. Bei jedem richtigen Computer schreit alles auf wegen jeder noch so kleinen Sicherheitslücke aber bei den Controllern hat keiner ein Auge drauf und alle linken die Firmware-Libs aus dem Expressiv SDK ohne irgendwas zu hinterfragen oder sich darüber Gedanken zu machen und hängen mit den Teilen in der Regel direkt am Internet.

(Firma: Verliererland) #7653185
Lesenswert?

Okay dann hab ich mal selber symbol/footprint/3dModel gebastelt, siehe Anhang. Bin noch totaler Anfänger mit KiCad, in der Zip sollten aber irgendwie alle daten drinne sein.

Wäre halt für mich wichtig zu wissen, wenn die i2c pins nicht frei wählbar wären. Ebenso wenn nicht alle gpio pwm unterstützen. Wobei ich 2 kHz 50% duty zur not auch per interrupt schalten kann.

Angehängte Dateien:
#7653427
Lesenswert?

Das R. schrieb:

Drum wüsste ich immer noch gern, wo die i2c pins bei den aktuellen

Was passiert den wenn du einfach mal bei Google z.B. "ESP32-C3 datasheet" alternativ "pinout" eingibst?

Einer der ersten Ergebnisse : https://www.studiopieters.nl/esp32-c3-pinout/

"The ADC (Analogue to Digital Converter) and DAC (Digital to Analogue Converter) features are assigned to specific static pins. However, you can decide which pins are UART, I2C, SPI, PWM, etc – you just need to assign them in the code. This is possible due to the ESP32-C3 chip’s multiplexing feature."

#7653790
Lesenswert?

Das R. schrieb:

Stephan S. schrieb:

Bei einem ESP32-C3 von Ali sind an GPIO8 und GPIO9 jeweils 10k nach +3.3 verbaut

In diesem Thread stehen alt lauter unterschiedliche Angaben, was denn nun die standard gpio pins für i2c sind und ob da pullup widerstände auf der kleinen platine verbaut sind.

Hallo,

nun überlege einmal ganz scharf wie man mit einfachsten Mitteln feststellen kann an welchen Pin Pullup/Pulldown verbaut sind.

(Firma: Verliererland) #7655316
Lesenswert?

Okay, in meinem Bahnhof hab ich schon so ein Teil liegen, und bis auf den vorigen Post sind alle hier alle I2C pin Angaben falsch.

Einzig GPIO8 und GPIO9 haben 10k Widerstand zu 3.3V. Das wären also die Pins wenn man nicht selber für die pullups sorgen will und nur wenige i2c module ansteuern möchte.

Da es in meinem Solarmobil mindestens 6 Stück werden, lege ich den i2c wohl besser auf andere pins.

Häng morgen mal ein oled dran..

P.S. das rote Ding ist die bluetooth antenne ?

Angehängte Dateien:
#7655357
Lesenswert?

Stephan S. schrieb:

Bei einem ESP32-C3 von Ali sind an GPIO8 und GPIO9 jeweils 10k nach +3.3 verbaut

wobei Pullups mit Werten von 10k für I2C bei 3.3 Volt viel zu hoch sind, auch wenn die Sensoren oft nochmals 4k7 haben, sind das gerade mal 3k2 gesamt.

Bei 3.3 Volt braucht man für vernünftige Pegel eher um 1k, bei langsamem Clock kann es auch mehr sein.

Angehängte Dateien:
(Firma: Gast) #7655388
Lesenswert?

Das R. schrieb:

und bis auf den vorigen Post sind alle hier alle I2C pin Angaben falsch.

Blödsinn! Ich habe gesagt, dass der Pins recht frei wählbar sind! Und dazu stehe ich auch. Benutze selber gerne GPIO 3+4 für I2C, weil sie so praktisch nah an GND und 3.3V liegen.

Warum GPIO8 einen Pullup hat ist auch recht klar. Liegt da doch der Boot Taster drauf, welcher auch im Reset einen eindeutigen Pegel benötigt.

(Firma: Verliererland) #7655850
Lesenswert?

So, GPIO8 ist in der tat die kleine blaue onboard led und gipo9 der nutzbare button neben dem reset button. Finde ich dämlich, von den eh wenigen pins zwei für etwas zu verschwenden das eh nur auf dem board verwendung finden ?

I2C funktioniert and sda=6 und scl=7 auf anhieb, mit dem kleinen oled auch ohne zusätzliche pullups:

Für serial output per usb muss man im ESP32_C3_DevModule die option "USB CDC on Boot" auf Enabled setzen. Wenn man dann allerdings das terminal nicht öffnet, bleibt der ESP in der codeausführung hängen - seltsam Wenn man serial nicht initialisiert, läuft er problemlos.

1
//#define SERIALDEBUG Serial  // uncomment to enable serial 115200 baud debug output
2

3
#include "include.h"
4

5
void setup() 
6
{
7
  DEBUG(
8
    SERIALDEBUG.begin(115200);
9
    OUTN("ESP32 C3 Super Mini with i2c oled :-)");
10
  )
11

12
  pinMode(PIN_LedBuiltin,OUTPUT);
13
  pinMode(PIN_Button,INPUT);
14

15
  display.init();
16
  display.flipScreenVertically();
17

18
  display.clear();
19
  display.setTextAlignment(TEXT_ALIGN_LEFT);
20
  display.setFont(ArialMT_Plain_16);
21
  display.drawString(0, 0, "Hello world");
22
  display.setFont(Dialog_plain_32); // ArialMT_Plain_10
23
  display.setTextAlignment(TEXT_ALIGN_CENTER);
24
  display.drawString(60, 32,"ESP32 C2 :-)" );
25
  display.display();
26
}
27

28
void PrintFloat(int x, int y, float f, int iDecimals=1, String sUnit="", int iMinWidth=3)
29
{
30
  char s[6];     //result string 5 positions + \0 at the end
31
  dtostrf(f, iMinWidth, iDecimals, s );
32
  if (sUnit == "")
33
    display.drawString(x, y,s );
34
  else
35
  {
36
    sUnit = String(s)+sUnit;
37
    display.drawString(x, y,sUnit );
38
  }
39
}
40

41
void Display()
42
{
43
  if (iNow < iTimeDisplay)  return;
44
  iTimeDisplay = iNow + TIME_Display;
45
  
46
  display.clear();
47
  display.setColor(WHITE);
48

49
  display.setFont(ArialMT_Plain_16); // Dialog_plain_32 ArialMT_Plain_10
50
  display.setTextAlignment(TEXT_ALIGN_RIGHT);
51
  PrintFloat(40,0,fUin,1,"V");
52
  PrintFloat(82,0,fIout,1,"A");
53
  PrintFloat(128,0,fUout,1,"V");
54
  
55
  display.setFont(ArialMT_Plain_24); // Dialog_plain_32 ArialMT_Plain_10
56
  display.drawString(128, 14,"Super Mini" );
57
  
58
  display.drawString(64, 40,String(iNow%3000<1000 ? fUin : fUout) );
59
  display.drawString(128, 40,String(fIout) );
60
  display.display();
61
}
62

63
void loop() 
64
{
65
  iNow = millis();
66

67
  if (!digitalRead(PIN_Button))
68
    iBlink = 200;
69
  else
70
    iBlink = 1000;
71

72
  boolean bLedOn = (iNow%iBlink)<(iBlink/2);
73
  digitalWrite(PIN_LedBuiltin, bLedOn ? LOW : HIGH);
74

75
  Display();
76
}
1
// include.h
2

3
#define PIN_LedBuiltin  8
4
#define PIN_Button   9
5

6
#define PIN_SDA   6
7
#define PIN_SCL   7
8

9
#define TIME_Display 200
10
unsigned long iNow = 0, iTimeDisplay = 0;
11
unsigned int iBlink = 1000;
12

13
float fUin=44.4, fIout=5.3, fUout=28.6;
14

15
#include "SSD1306Wire.h" // legacy include: `#include "SSD1306.h"`
16
// custom fonts: http://oleddisplay.squix.ch
17
#include "Dialog_plain_32.h"
18

19
// Initialize the OLED display using Wire library
20
SSD1306Wire  display(0x3c, PIN_SDA, PIN_SCL); // I2C_Scanner: 0x3C
21

22
#ifdef SERIALDEBUG
23
  #define DEBUG(code) {code}
24
  #define OUT(s)  {SERIALDEBUG.print(s);}
25
  #define OUT2(s,i) {SERIALDEBUG.print(s);SERIALDEBUG.print(": ");SERIALDEBUG.print(i);}
26
  #define OUT2T(s,i)  {SERIALDEBUG.print(s);SERIALDEBUG.print(": ");SERIALDEBUG.print(i);SERIALDEBUG.print("  ");}
27
  #define OUT2N(s,i)  {SERIALDEBUG.print(s);SERIALDEBUG.print(": ");SERIALDEBUG.print(i);SERIALDEBUG.println();}
28
  #define OUTN(s) {SERIALDEBUG.println(s);}
29
  #define OUTI4(i){if (i<10) SERIALDEBUG.print("   ");  else if (i<100) SERIALDEBUG.print("  ");  else if (i<1000)  SERIALDEBUG.print(" "); SERIALDEBUG.print(i);}
30
#else
31
  #define DEBUG(code)
32
  #define OUT(s)
33
  #define OUT2(s,i)
34
  #define OUT2T(s,i)
35
  #define OUT2N(s,i)
36
  #define OUTN(s)
37
  #define OUTI4(i)
38
#endif

kompletter code hier: https://github.com/RoboDurden/Esp32_20A_80V_dcdc/tree/main/Arduino/ESP32C3_oled

Angehängte Dateien:
Beitrag #7655905 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren