dies hier ist mein erster Beitrag in diesem Forum, also bitte ich falsche Themenerstellung, etc. zu entschuldigen.
Ich habe ein Arduino Großprojekt, bei dem ich ca 120 digitale In-/Outputs benötige.
Um dies zu bewerkstelligen, wollte ich 1 Arduino Mega mit 54 D I/O und 16 A I/O.
Dennoch benötige ich ein 2tes Arduino Mega um alle LEDs und Taster anschließen zu können.
Mein Problem ist jetzt, dass ich von dem einen Arduino auf das andere code-mäßig zugreifen muss. Ich weiß es gibt die I2C-Schnittstelle, mit der man das einfach realisieren kann. Meine Sorge damit ist, dass die Programmierung für meinen Fall eher umständlich ist.
An dem einen Arduino wären bei mir hauptsächlich Taster angeschlossen, an dem anderen hauptsächlich LEDs. Wenn nun gewisse Taster gedrückt werden, sollen gewisse LEDs aufleuchten (es soll ein Modellbahn-Stellwerk realisiert werden)
Nun ist meine Frage, ob es die Mögluchkeit gibt, nicht mit Master/Slave zu arbeiten, sondern die PINs des 2ten Arduinos einfach als "zusätzliche" PINs im 1ten Arduino zu definieren:
PINs von Arduino 1: 1 bis 54
PINs von Arduino 2: 55 bis 109
Kann ich dann in einem Codebereich auf alle PINs zugreifen?
Wäre euch sehr dankbar, wenn ihr mir helfen könntet.
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
typishes "Problem XY" Szenario. du fragst wie du machst Y obwohl eigentlich etwas anderes, ein X lösen willst. Aber du denkst "das schaffe ich nicht, ich muss es auf zwei Platinen auslegen. aber wie? ich frage den coolsten Arduino Forum auf der Erde darum"
beschreibe was ist dein Projekt, wozu du es bauen willst, und wir sagen dir wie du es mit einer Platine realisierst. wer weiß, vielleicht auch mit einem Attiny.
glaub uns bitte - die Auswertung von I2C Keypad Treibern und I2C Portexpander ist WESENTLICH einfacher als der Aufbau einer Arduino-Arduino Kommunikation.
Wegen der Taster - ist dir klar, dass man Taster auch in einer Matrix verschalten kann und so wesentlich an konventionellen Pins einsparen kann? z.B. eine 4 x 4 Matrix mit 8 Pins ergeben 16 abfragbare Taster. Der SX1509 kann z.B. direkt eine Tastenmatrix auslesen.
Wegen der LEDs ... überleg dir ob du diese als Neopixel auslegen kannst. Gibt es nicht nur als SMD sondern auch in "herkömmlichen" 5mm Bauform (such mach nach APA106) - dann kannst du deine ganzen 50+ LEDs an einem Pin betreiben.
@kolaha Ich baue einen Bahnhof der Deutschen Bahn. Um die Signale zu steuern, habe ich ein Stellpult mit Drucktastern gebaut. Diese Taster (ca 40 Stück) möchte ich an ein Arduino anschließen. Die Signale (LEDs) werden auch an dem Arduino angeschlossen.
Wie schon gesagt, hochgerechnet ca 120 Pins.
Und nein, ich denke nicht dass ich das nicht schaffe, sondern nur, dass ich Anfänger ohne großes Detailwissen ohne eure Hilfe es nicht schaffe. Aus diesem Grund habe ich hier nachgefragt, da ich weiß, dass es hier Leute gibt die mir helfen können.
@noiasca Ich glaube euch das sehr gerne. Das war auch keine Anforderung eigene Arduino-Arduino-Kommunikation aufzubauen, sondern nur eine Idee (die in meinem Anfänger-Hirn Sinn gemacht hat)
Wenn ihr Profis sagt, dass das komplex ist, werde ich natürlich die Finger davon lassen.
Danke dir für den Tipp mit der Taster-Matrix, davon wusste ich noch nichts.
Das mit den Neopixel sagt mir ebenfalls nichts, hardware-mäßig kann ich an den LEDs nicht ändern, da immer ca 10 Stück in einem Signal verbaut sind.
ein Mikrokontroller kann physikalisch nicht viel LEDs mit genug Strom versorgen(etwa 10). deshalb wirst du sowieso auf irgeneine weise auf Porterweiterung oder sonstwas zurück greifen:
von Transistoren die mit einem Pin mehrere LEDs gleichzeitig ein-/aus-schalten können;
Schieberegister, einfache oder z.B. MAX7219;
bis adressierbare LED Treiber, wie SOP8 WS2811
die Tasten, oder Schalter kann man auch mit Schieberegister scannen, Anzahl der gebrauchten Pins wird immer 3 sein;
eine I2C Porterweiterung, z.B. PCF8575 kann 16 zusätzliche Pins bereit stellen
Die Kathoden (-) der LEDs sind miteinander verbunden, also 11 Kabel. Dies ist so vom Hersteller vorgegeben. (theoretisch könnte ich die Signale auch mit einem gemeinsamen Plus-Pol bestellen)
Und egal welche Version (Pin am MC, Porterweiterung) du verwendest, du musst immer auf den max. Strom achten, die der jeweilige Pin und alle zusammen liefern können. Diese Infos findest du im zugehörigen Datenblatt.
Weil es aus meiner Sicht Overkill ist einen UNO/MEGA als reinen Portexpander zu verwenden wenn es dafür ICs (auch Boards) gibt.
Auch ein I2C Slave Sketch will geschrieben werden.
Auch wenn ich und sicher viele andere sowas irgendwo fertig haben, bevorzuge ich hier weitere ICs für einen Anfänger.