Forum: Mikrocontroller und Digitale Elektronik Arduino Mega 2560


von Timo B. (timotheus87)


Lesenswert?

moin leute,

ich plane mit einem ardunio mega 2560 meine modellbahn zu steuern.
da ich eine ganze menge eingänge und auch ausgänge brauche und ein 
arduino " zu klein " ist,
hab ich zwei fragen:

ist es möglich wenn z.b. 2 arduinos beide einen lan shield bekommen und 
über einen switch verbunden sind, ob es möglich das z.b. an arduino 1 am 
eingang 1 ein signal anliegt welcher dann aber bei arduino 2 den ausgang 
5 schaltet? oder auch das an arduino 1 eingang 1 und am arduino 2 
eingang 3 jeweils ein signal anliegen muss um dann ausgang 7 vom arduino 
2 zu schalten ( UND schaltung )?

es geht mir erstmal nicht um die programmierung, mir geht es erst rein 
um die machbarkeit und somit und die hardware planung, da ich noch nicht 
weiss ob meine idee funktioniert.und so lange ich das nicht weiss 
brauche ich ja nicht wirklich planen.

und eine frage zu den lan shields..... so wie ich raus gefunden habe 
brauche ich den w5100.....den gibt es in blau und in rot mit micro sd 
karten slot......welcher wäre der richtige..... ich brauche nur eine 
ganz normale. lan anschluss.

danke schonmal im voraus

Timo

von Sebastian R. (sebastian_r569)


Lesenswert?

Timo B. schrieb:
> ist es möglich wenn z.b. 2 arduinos beide einen lan shield bekommen und
> über einen switch verbunden sind, ob es möglich das z.b. an arduino 1 am
> eingang 1 ein signal anliegt welcher dann aber bei arduino 2 den ausgang
> 5 schaltet? oder auch das an arduino 1 eingang 1 und am arduino 2
> eingang 3 jeweils ein signal anliegen muss um dann ausgang 7 vom arduino
> 2 zu schalten ( UND schaltung )?

Wenn du entsprechende Ehternet-Protokolle definierst und implementierst, 
dann ist das durchaus möglich. Muss halt alles in Firmware passieren. 
Mit der Hardware wäre das prinzipiell möglich.

Timo B. schrieb:
> o wie ich raus gefunden habe
> brauche ich den w5100

Weshalb brauchst du den W5100? Gäbe auch noch den (vermutlich 
günstigeren) ENC28J60. Hinter der Library verhalten sich beide 
Identisch.

Timo B. schrieb:
> den gibt es in blau und in rot mit micro sd
> karten slot......welcher wäre der richtige.

Die Farbe der Platine ist egal. Ob du die SD-Karte brauchst, ist deine 
Entscheidung


Tipp: Für viele Eingänge und Ausgänge muss man nicht unbedingt einen 
größeren Controller nehmen. Es gibt Port-Extender die über einen I2C-Bus 
angeschlossen werden und auch jeweils noch einmal 8/16 Ein- oder 
Ausgänge zur Verfügung stellen können.

Dadurch kannst du (je nach Adressiermöglichkeiten) 64 Ein/Ausgänge 
haben, die aber nur mit 2/4 Leitungen (I2C, SPI) auf deinen Controller 
gehen.

Von der Geschwindigkeit ist das auch nicht langsamer als der Umweg über 
LAN.

Es sei denn, die LAN-Strecke ist länger und soll Leitstand von der Bahn 
trennen. Aber selbst dann könnte ein kleinerer Arduino UNO oä. bereits 
ausreichen, wenn du Portextender nutzt.

: Bearbeitet durch User
von Thomas E. (thomase)


Lesenswert?

Dein Threadtitel ist maximal unglücklich gewählt.

von Joachim B. (jar)


Lesenswert?

Sebastian R. schrieb:
> Die Farbe der Platine ist egal

das mag hier der Fall sein, gilt aber nicht immer:

nokia5110 Displays findet man in blau 3,3V (bis 5V angeblich aber die 
LED wird ohne zusätzlichen 22 Ohm beleidigt) und in rot 5V (5V sicher, 
an 3,3V z.B. ESP gehts nicht.)
die Roten gehen direkt am nano mit 5V die Blauen 3,3V nur ESP32 mit 3,3V

nur wegen Farbe egal

von Cyblord -. (cyblord)


Lesenswert?

Timo B. schrieb:
> es geht mir erstmal nicht um die programmierung, mir geht es erst rein
> um die machbarkeit und somit und die hardware planung, da ich noch nicht
> weiss ob meine idee funktioniert.und so lange ich das nicht weiss
> brauche ich ja nicht wirklich planen.

Bevor man an eine solch anspruchsvolle Aufgabe, wie eine 
Eisenbahnsteuerung geht, sollte man sein System im Griff haben. Kannst 
du mittlere Programme sicher auf deinem Zielsystem programmieren? Kennst 
du die HW deines Zielsystem gut?

Wenn nein, lerne das erst. Es macht keinen Sinn, irgendwas zusammen zu 
stoppeln, über LAN Kopplung nachzudenken, wenn man von all dem gar keine 
Ahnung hat. Die Planung muss schlecht werden.

So ein Projekt kann man erst angehen, wenn die Erfahrung da ist. Nicht 
vorher. Wenn die Erfahrung fehlt, hole die erst nach.

von Sebastian R. (sebastian_r569)


Lesenswert?

Joachim B. schrieb:
> nokia5110 Displays findet man in blau 3,3V (bis 5V angeblich aber die
> LED wird ohne zusätzlichen 22 Ohm beleidigt) und in rot 5V (5V sicher,
> an 3,3V z.B. ESP gehts nicht.)
> die Roten gehen direkt am nano mit 5V die Blauen 3,3V nur ESP32 mit 3,3V

Ist das allgemeingültig und sicher festgelegt?

Oder auch einfach nur davon abhängig, aus welcher Maschine es beim 
Chinesen fällt?

von Joachim B. (jar)


Angehängte Dateien:

Lesenswert?

Sebastian R. schrieb:
>> die Roten gehen direkt am nano mit 5V die Blauen 3,3V nur ESP32 mit 3,3V
>
> Ist das allgemeingültig und sicher festgelegt?
>
> Oder auch einfach nur davon abhängig, aus welcher Maschine es beim
> Chinesen fällt?

gute Frage, ich habe diese Platinen seit 5 Jahren in rot und blau 
bestellt, zuletzt blaue August 2019 und rote Juli 2019, es hat sich in 
der Verwendbarkeit seit 2014 nichts verändert.

Die roten Platinen werden mit white Backlight gelistet, die blauen 
Platinen aktuell mit blue backlit

Die Belegung mit Pins differiert und die Bestückung!
Die roten gehen am ESP32 schon wenn man die LED nicht aus dem Port 
versorgt und einen Transistor für die PWM zu 5V vorschaltet sowie VCC an 
5V legt.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Das ist auf jeden Fall über Ethernet machbar, aber so ist es auch 
maximal kompliziert.

Deswegen würde ich Dir empfehlen, die beiden Platinen über eine serielle 
UART Verbindung oder über I²C Protokoll miteinander zu verbinden.

von Timo B. (timotheus87)


Lesenswert?

Das Problem ist, hab ich leider vergessen zu schreiben. Das ich auf 
Grund der Verkabelung eine dezentrale Steuerung bauen will.
Und der I2C ist ja nun nicht endlos über Kabel zu verbinden. Ich muss ja 
kein LAN nehmen. War wegen der verdrahtung nur mein gedanke.
Ich kann ja auch in jedem Bereich ein Port Expander setzen und unter der 
Anlage ein I2C Bus legen...welche Methode ist mir relativ

Wie lang darf denn das Bus Kabel sein ?

von Edwina (Gast)


Lesenswert?

Timo B. schrieb:
> moin leute,
>
> ich plane mit einem ardunio mega 2560 meine modellbahn zu steuern.
> da ich eine ganze menge eingänge und auch ausgänge brauche und ein
> arduino " zu klein " ist,
> hab ich zwei fragen:
>
> ist es möglich wenn z.b. 2 arduinos beide einen lan shield bekommen und
> über einen switch verbunden sind, ob es möglich das z.b. an arduino 1 am
> eingang 1 ein signal anliegt welcher dann aber bei arduino 2 den ausgang
> 5 schaltet? oder auch das an arduino 1 eingang 1 und am arduino 2
> eingang 3 jeweils ein signal anliegen muss um dann ausgang 7 vom arduino
> 2 zu schalten ( UND schaltung )?
>
> es geht mir erstmal nicht um die programmierung, mir geht es erst rein
> um die machbarkeit und somit und die hardware planung, da ich noch nicht
> weiss ob meine idee funktioniert.und so lange ich das nicht weiss
> brauche ich ja nicht wirklich planen.


Bring erstmal deine Tastatur zur Reparatur, die meisten 
Programmiersprachen sind Case Sensitiv!!

von Dr. Sommer (Gast)


Lesenswert?

Ganz anderer Vorschlag: suche dir ein handliches Board mit CAN 
Unterstützung raus, z.B. das Olimexino-STM32 (teilweise 
Arduino-kompatibel, weiterer Vorteil: Per 12V zu betreiben). Packe 
überall da, wo du Ein-Ausgänge brauchst (Weichen & Co) eins davon hin. 
Vernetze sie untereinander via CAN (3 Adern). Das ist nach anfänglicher 
Einarbeitung recht komfortabel zu programmieren, robust und erprobt, und 
du hast dann viel weniger Kabelsalat als bei einem großen zentralen 
Controller. Wird bei Autos schon lange genau so gemacht!

von Stefan F. (Gast)


Lesenswert?

Timo B. schrieb:
> Wie lang darf denn das Bus Kabel sein ?

1 Meter sind gar kein Problem, bei mehr muss man sich Gedanken um 
passende Treiberbausteine, Wellenwiderstand und so machen.

Dann würde ich aber eher auf UART mit RS-422 oder RS-485 Treiber setzen. 
Diese Dinger beommst du für ganz kleines Geld und damit kannst du locker 
flockig einen ganzen Kilometer schaffen.

https://www.amazon.de/MAX485-module-RS-485-TTL-MTS1EU/dp/B017A676EY

Lass dich durch die Schraubklemmen nicht dazu verleiten, auf GND zu 
verzichten. Eigentlich gehören da dreipolige Klemmen dran (ist meine 
Meinung).

von Timo B. (timotheus87)


Lesenswert?

Ok..1 Meter Kabel zwischen den Expander ist viel zu wenig .


Werde mir das board heute Abend mal genauer angucken, aber dein 
Vorschlag klingt sehr gut.

Wie gesagt.. die Kommunikation muss nicht über LAN laufen, kann auch 
jeder andere Bus sein, welchen man aber über ein paar Meter Kabel 
schicken kann.  Auch muss es kein arduino sein. Hab den arduino gefunden 
und dachte mir das der für mich richtig wäre.

Aber das stm32 finde ich auch gut

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?

Timo B. schrieb:
> Wie gesagt.. die Kommunikation muss nicht über LAN laufen

Ethernet und IP-Stack sind halt sehr kompliziert. Auch wenn dir die 
Ethernet Shields da einiges abnehmen, ist das Potential für Fehler und 
Kopfzerbrechen trotzdem da. Und den größten Vorteil von Ethernet, 
nämlich die hohe Datenrate, brauchst du gar nicht (bzw. Kannst ihn 
vermutlich via Arduino gar nicht ausreizen).

Stefanus F. schrieb:
> Dann würde ich aber eher auf UART mit RS-422 oder RS-485 Treiber setzen

Das ist elektrisch zu CAN fast identisch, aber man muss viel in Software 
selber machen, was einem bei CAN die Hardware abnimmt.

Stefanus F. schrieb:
> 1 Meter sind gar kein Problem

I2C ist halt sehr störanfällig und bietet auch kaum Mechanismen um 
Fehlübertragungen zu erkennen. Eine Modelleisenbahn mit Elektromotoren 
und Funken an Stromabnehmern dürfte eine Menge Störungen produzieren - 
viel Fehlerpotential. CAN ist viel robuster und kann Fehler erkennen, 
wurde genau für solche Umgebungen geschaffen. Mit geeigneter Hardware 
(eben z.B. genanntem Olimexino-STM32) ist CAN m.E sogar einfacher zu 
programmieren als I2C - mit letzterem hat man also nix gewonnen!

Der Weg über CAN+Arduino ist nur noch nicht ganz so breit getreten wie 
I2C+Arduino, aber auf lange Sicht lohnt sich das. Vor allem, wenn man 
das System später noch erweitern möchte.

von Stefan F. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Das ist elektrisch zu CAN fast identisch, aber man muss viel in Software
> selber machen, was einem bei CAN die Hardware abnimmt.

Ja stimmt. Nur hat Arduino mit CAN nichts am Hut. Ich war davon 
ausgegangen, dass der TO womöglich bei Arduino bleiben möchte.

von Dr. Sommer (Gast)


Lesenswert?

Stefanus F. schrieb:
> Ja stimmt. Nur hat Arduino mit CAN nichts am Hut

Jo, aber in CAN einarbeiten ist letztlich weniger lästig als auf Basis 
von RS485 ein Multi Master Protokoll selbst zu klöppeln.

Es gibt Arduino CAN Bibliotheken, aber die sind glaube ich nicht so gut. 
Da aber wie gesagt die CAN Hardware fast alles abnimmt, muss man in 
Software nur noch die auf dem Präsentierteller dargebotenen Daten 
abrufen. Das geht auch ohne Bibliothek ziemlich einfach, und es gibt ja 
auch noch die STM32 HAL Bibliotheken und mbed...

von Timo B. (timotheus87)


Lesenswert?

Nein, Also mir ist das egal ob stm32 oder adruino...und egal ob can oder 
i2c .

Wenn einer von euch, bessere Hardware habt, die meine wünsche erfüllen. 
Bin ich gerne bereit diese auch einzusetzen

von Sebastian R. (sebastian_r569)


Lesenswert?

Timo B. schrieb:
> Nein, Also mir ist das egal ob stm32 oder adruino...und egal ob can oder
> i2c .

Du musst für dich selber entscheiden, was du einsetzen möchtest.

Dazu die Vor- und Nachteile herausfinden und gegenüber stellen. In 
Kombination mit deinen Fähigkeiten in Sachen Hard- und Firmware erhälst 
du dann die für dich beste Lösung

von Dr. Sommer (Gast)


Lesenswert?

Timo B. schrieb:
> und egal ob can oder i2c .

Also von I2C würde ich definitiv abraten. Sobald der Elektromotor der 
Lok angeht (mit Bürsten?) hast du nur noch Müll auf der Leitung. Ja, man 
kann sich mit Repeatern und speziellen Transceivern behelfen - aber 
warum solche Krücken nehmen, wenn man auch ein System (CAN) nutzen kann, 
welches von Grund auf darauf ausgelegt wurde, diese Probleme zu lösen. 
CAN funktioniert auch in Elektroautos mit großen Motoren, während I2C 
mit etwas Pech von einer ollen Ladungspumpe von einem LCD-Treiber außer 
Gefecht gesetzt werden kann (BTDT).

Ethernet ist zwar ebenso robust, aber eben sehr viel komplizierter...

von Stefan F. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> in CAN einarbeiten ist letztlich weniger lästig als auf Basis
> von RS485 ein Multi Master Protokoll selbst zu klöppeln.

Er hat zwei Boards.
1
Board 1               Board 2
2
    TxD ------>------ RxD
3
    RxD ------<-------TxD

Ich sehe da keine Notwendigkeit für "ein Multi Master Protokoll".

von Dr. Sommer (Gast)


Lesenswert?

Stefanus F. schrieb:
> Er hat zwei Boards.

Noch! Ich hatte ja vorgeschlagen mehrere kleine Boards mit weniger IO 
als wenige große  Boards mit viel IO zu nehmen.

von Stefan F. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Stefanus F. schrieb:
>> Er hat zwei Boards.
>
> Noch! Ich hatte ja vorgeschlagen mehrere kleine Boards mit weniger IO
> als wenige große  Boards mit viel IO zu nehmen.

Ja, ab drei Boards wird CAN interessant.

von Joachim B. (jar)


Lesenswert?

Stefanus F. schrieb:
> Er hat zwei Boards.Board 1               Board 2
>     TxD ------>------ RxD
>     RxD ------<-------TxD
>
> Ich sehe da keine Notwendigkeit für "ein Multi Master Protokoll".

geht auch mit 3 Boards und wenns einmal rum ist weiss Board 1 das es 
fehlerfrei gelaufen ist, RS232 Tempo sollte doch reichen und als V24 
+-12V ist es genügend sicher glaube ich, sonst kann er nach Tests immer 
noch wechseln, das hier ist ja billig zu testen.
1
Board 1               Board 2               Board 3
2
TxD --------->------- RxD,TxD ------->----- RxD,TxD -->---
3
                                                          ]
4
RxD ---------<------- TxD,RxD -------<----- TxD,RxD --<---

von Cyblord -. (cyblord)


Lesenswert?

Timo B. schrieb:
> Nein, Also mir ist das egal ob stm32 oder adruino...und egal ob can oder
> i2c .

wer so redet kann entweder alles oder nichts.

von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
> als V24 +-12V ist es genügend sicher

RS422/485 Treiber kommen mit 5V aus und übertragen erheblich sicherer. 
Außerdem sind sie inzwischen billiger.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.