ESP32 startet nicht im 12V Betrieb

Widerstandsmessungen sind sinnfrei!
Wenn da noch andere Komponenten im Spiel sind.
Und bei eingeschalteten Geräten sowieso.

Ja habe ich gemacht ohne Spannung.
Dann baue ich die mal ein und schaue was dann passiert.

Nein!

Unter Spannung den Strom zwischen I2C Leitung und GND messen.
Sollten bis maximal 3mA sein.
Den Rest macht das Ohmsche Gesetz.

Dazu muss man das kennen.
Widerstand nachmessen ist def. einfacher.

es sind jeweils nur 1ma

Einfacher und unsinnig schließen sich nicht aus.

Wenn er nur so hohe Werte bekommt, kann kein 4k7 verbaut sein. Also sind sie nicht sinnfrei und es fehlen die Pullups

Messungen, bei denen von vornhinein klar ist, dass sie Müll liefern (können) sind sinnfrei, oder auch gar gefährlich.

Müllmessungen erzeugen falsche Annahmen/Lösungsversuche.

Zwischen SDA und GND bzw SCL und GND?
könnte reichen.

Grüße Uwe

Bei 12V betrieb:
Bitte die 5V und die 3,3V nachmessen.
Wenn die Spannungen ok sind ( Messung in DC für den Wert und in AC für die Restwelligkeit (max100mV) )
Hast Du versucht den ESP zu resetieren (hat er eine Resetknopf?)
Grüße Uwe

Ja es ist ein Resetknopf vorhanden. Wenn ich ihn betätige scheint alles normal aber sobald ich auf einen Taster drücke geht es für eine sekunde und dann macht es wieder nichts. Werde mal die Pullups verbauen und Testen

Dir wurde doch auch schon mehrfach empfohlen, die Spannungen (3,3V und 5V) zu messen. Hast du das gemacht ?
Und welche Spannungen hast du gemessen ?
Wenn du Hilfe haben möchtest, solltest du auch alle Tips befolgen und Fragen beantworten.

Ich weiß nicht.....
Natürlich sind Pullup wichtig.

Aber wenn es an USB tut, und am Wandler nicht, dabei ändern sich nicht die Pullup.
Oder?

Solche Probleme löst man nicht durch probieren, sondern durch messen.
Richtiges messen.
So bekommt man ein Fundament für Lösungen.
Stochern im Nebel, ist meist nicht so lehrreich.
Selbst wenn das blinde Huhn auch mal ein Korn findet, weiß es nicht warum, oder wie reproduzieren.

1mA reicht sicher für kurze Busse.
Sind sie ausgedehnter, ist mehr nötig.

Ein Oszi würde die Spannungsverläufe auf dem Bus und auch auf den Versorgungsleitungen zeigen.

Welche Leistung hat eigentlich das 12V Netzteil, bzw. wieviel mA kann es liefern?

Dieses ist ein Vorschlag, der mit dem Hauptproblem vermutlich nichts zu tun hat.

Mir hat einiges an dem Programm nicht gefallen.
z.B. die Durchnummerierungen.
Die Verteilung der LED oder auch Relais auf jeweils 2 Arrays.
Mir wäre das zu kompliziert immer darauf achten zu müssen auf welchen mcp man da zugreifen muss.

Und, weil mir gerade langweilig war.....
Also fix aus einem meiner älteren Programme/Wühlkiste was raus operiert und halbwegs auf ESP und und diese Anwendung angepasst.

#include <Wire.h>
#include <Adafruit_MCP23X17.h>


struct Mcp
{
  Adafruit_MCP23X17 mcp;
  const byte addr;
  Mcp( const byte addr): addr(addr) {}
};


struct Pin
{
  Adafruit_MCP23X17 *mcp;
  const byte pin;

  Pin(const byte pin): mcp{nullptr}, pin{pin} {} // nativer Pin
  Pin(Adafruit_MCP23X17 *mcp, const byte pin): mcp{mcp}, pin{pin} {} // mcp Pin
};

void digitalWrite(const Pin &pin, const byte value)
{
  if(pin.mcp) pin.mcp->digitalWrite(pin.pin, value);
  else digitalWrite(pin.pin, value);
}

bool digitalRead(const Pin &pin)
{
  if(pin.mcp) return pin.mcp->digitalRead(pin.pin);
  else return digitalRead(pin.pin);
}

void pinMode(const Pin &pin, const byte mode)
{
  if(pin.mcp) pin.mcp->pinMode(pin.pin, mode);
  else pinMode(pin.pin, mode);
}


Mcp mcps[]
{
  {0x20},
  {0x21},
};



const Pin relayPins[]
{
  {&mcps[0].mcp, 0},
  {&mcps[0].mcp, 1},
  {&mcps[0].mcp, 2},
  {&mcps[0].mcp, 3},
  {&mcps[0].mcp, 4},
  {&mcps[0].mcp, 5},
  {&mcps[0].mcp, 6},
  {&mcps[0].mcp, 7},
  {&mcps[1].mcp, 0},
  {&mcps[1].mcp, 1},
};

const Pin ledPins[]
{
  {&mcps[0].mcp,  8},
  {&mcps[0].mcp,  9},
  {&mcps[0].mcp, 10},
  {&mcps[0].mcp, 11},
  {&mcps[0].mcp, 12},
  {&mcps[0].mcp, 13},
  {&mcps[0].mcp, 14},
  {&mcps[0].mcp, 15},
  {&mcps[1].mcp,  8},
  {&mcps[1].mcp,  9},
};



void setup()
{
  Serial.begin(115200);
  Wire.begin();

  for(Mcp &m : mcps)
  {
    if (!m.mcp.begin_I2C(m.addr))
    {
      Serial.print("Fehler: MCP (0x");
      Serial.print(m.addr, HEX);
      Serial.println(") nicht gefunden!");
      while (1);
    }
  }

  for(const Pin &p : relayPins)
  {
    pinMode(p, OUTPUT);
    digitalWrite(p, LOW);
  }

  for(const Pin &p : ledPins)
  {
    pinMode(p, OUTPUT);
    digitalWrite(p, HIGH);
  }
}


void loop()
{

}

Ist natürlich nicht vollständig, nur ein Ansatz, wie man sowas angehen könnte.
Wenn es schmeckt, dann verwenden, sonst im Regal liegen lassen.

So die pullups machen keinen unterschied.
Am Board sind 5,023V DC und 0,0068 AC
Die 3,3V vom Board sind kosttant bei 3,28V DC
Das Netzteil liefert 3A

Du verweigerst Dich permanent der angeboteten Hilfe.
Was erwartest Du?

Sehe ich nicht.

#2
und

und

#16

Nein, das ist Verweigerung.

Sorry aber ich bin absoluter Neuling das sit mein erstes Projekt. Es ist für unsere RK um 10 Funkgeräte mit einem Pult zu bedienen. Bin nicht so der Fachman.
Habe jetzt mal genauer alles beobachtet. Wenn es am PC angeschlossen ist funktioniert alles bestens.
Wenn ich es über das 12V Netzteil betreibe Fährt es hoch und im Dysplay steht System Bereit. Dann wähle ich peer Tastendruck einen Kanal aus und es steht dann Auch Kanal X Vorwahl. Danach spring er sofort wieder auf System Bereit und es geht nichts mehr.