NodeMCU I/O Ports erweitern mit Arduino?

Hallo zusammen,
für mein Vorhaben brauche ich mehr I/O Ports als das NodeMCU zur Verfügung hat.
Genauer gesagt brauche ich mindestend 10 Eingänge und 10 Ausgänge (diese sollen Relais schalten, ich denke hierbei ein ein ausreichend großes Relay-Board). Mindestens deswegen, weil ich mir Reserven behalten möchte, für eventuelle Erweiterungen.

Ich dachte nun daran, einen Arduino Uno (oÄ) als Portexpander zu verwenden.

Was meint ihr dazu? Ich bin auf dem Gebiet der Elektronik nicht allzu gut drauf, darum möchte ich Port-Expander-ICs nicht unbedingt verwenden.
Wie sollten die beiden am besten miteinander kommunizieren, wenn ich eine Kommunikation in beide Richtungen haben möchte?
Leitungslängen sind kein Thema, die beiden wären nur wenige cm voneinander entfernt.

Einen schönen Abend noch :wink:
Mike

Warum nimmst du keine i2c-portexpander, MCP23017 ?

Du hast mehrere Möglichkeiten:

Du kannst I2C-Portexpander (8 und 16 BBit) anschließen, z.B 16 Bit Input und 16 Bit Output.

Du kannst, wie von Dir angedacht, einen UNO/Nano als intelligente Porterweiterung über I2C anschließen.
Dann solltest Du aber auch eine gewisse Vorverarbeitung wenn möglich auf den UNO/Nano mit auslagern.
Eine funktionierende Prinzipstudie dafür habe ich hier veröffentlicht.

Gruß Tommy

klar kannst auch einen I2C Slave auf einem Arduino aufsetzen, aber in Wirklichkeit ist es für einfache Aufgaben rausgeworfenes Geld und Zeit, weil Portexpander das auch machen können und die brauchst nicht programmieren.

Kommunikation in beide Richtungen... da musst etwas umdenken. I2C ist immer Master-Slave.

Der Master fragt einen Wert an, der Slave antwortet.
bzw.
Der Master fordert zum setzen eines Wertes auf, der Slave macht.

Es gibt zwar noch einen spezial Fall (Der Slave meldet seinen Mitteilungsbedarf auf einer IRQ Leitung), aber schlussendlich fragt trotzdem der Master ab.

Ich dachte nun daran, einen Arduino Uno (oÄ) als Portexpander zu verwenden.

Mach das doch!

Ich verwende auch gerne Arduinos als halb intelligente Portexpander.
Auch gerne mehrere davon.

über I2c, mit Levelshifter
Wobei der ESP8266 dann nur Master sein darf

firefist235:
Genauer gesagt brauche ich mindestend 10 Eingänge und 10 Ausgänge

Ich dachte nun daran, einen Arduino Uno (oÄ) als Portexpander zu verwenden.

Moment.
Das macht 20 PIN.
Ein UNO? Unmöglich.

Da Du eh I2C benutzt, nimm das, was es fertig gibt.
Portexpanderboards en mass.

Eine Erklärung wie es funktioniert, gibt es u.a. hier:PCF8575 I2C 16-Bit Digital Input Output Expander - Arduino Project Hub

Der Chip stellt 16 PIN zur Verfügung und ist über 3-bit addressierbar. Also 8 Stück davon könntest verbauen ohne Komplikationen. Macht 128 PIN mit einer Chipfamilie....

Das komplette Datenblatt für den PCF 8575:

Ich danke euch,
ich werde mir die I2C-Portexpander mal etwas genauer ansehen, ist ja scheinbar wirklich nicht viel dabei :wink:

Moment.
Das macht 20 PIN.
Ein UNO? Unmöglich.

nicht ganz. Ein UNO hat 20 I/O Pins. Da aber 2 Pins für I2C gebraucht werden stehen nur 18 frei zur Verfügung.
Grüße Uwe

uwefed:
nicht ganz. Ein UNO hat 20 I/O Pins. Da aber 2 Pins für I2C gebraucht werden stehen nur 18 frei zur Verfügung.

Ich bin davon ausgegangen, das der NMCU mit dem Ardu nicht via Portexpander kommuniziert :wink: Wobei das sogar machbar wäre.
Aber ja, wenn es um die reine PIN-Zahl geht, stimmts so.

my_xy_projekt:
Ich bin davon ausgegangen, das der NMCU mit dem Ardu nicht via Portexpander kommuniziert :wink: Wobei das sogar machbar wäre.

Wie dann? Per Ommm?

Gruß Tommy