INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Konzept Gleisbildstellpult
04.06.2018, 19:39
Beitrag #1
Konzept Gleisbildstellpult
Hallo,

Es soll ein Gleisbildstellpult für die Modellbahn entstehen. Da ich noch Elektronik-Anfänger bin (ich arbeite mich gerade mithilfe von dicken Büchern ein), weiß ich natürlich nicht, ob meine Überlegungen einigermaßen umsetzbar sind oder ob das Unsinnig ist. Ich habe zwar schon einiges gelesen und dabei auch Dinge gefunden, von denen ich glaube, daß ich sie für die Umsetzung gebrauchen kann, aber ich weiß natürlich nicht, was es sonst noch so alles gibt (das ist ja unübersehbar viel). Da bräuchte ich dann mal eure Hilfe.
Da mir auch noch viele Details unklar sind, könnte dies ein längerer Thread werden. Wink

Gefahren wird analog, Schaltung (Weichen usw.) klassisch, also mit Schaltern und Tastern auf einem Gleisbildstellpult. Was ich nicht möchte, ist über den PC zu steuern (Gleisbildstellpult auf dem Bildschirm, fertige Steuerungen machen aber nur dieses). Nun ist die (kleine) Anlage mit Segmenten aufgebaut, die zum Bearbeiten leicht herausnehmbar sind (zwecks bequemen Basteln am Basteltisch). Damit ich nicht jedesmal umständlich einen dicken Kabelbaum von den Segemten trennen muß (und das Mitschleppen eines schweren dicken Kabelnbaumes am Segement ist auch äußerst unhandlich!), sollen so wenige Kabel wie möglich zwischen Gleisbildstellpult und Segment vorhanden sein (im Idealfall nur die Stromversorgung, getrennt nach Fahrstrom und Versorgungsspannung Arduinos und Zubehör).

Daher soll die Schaltung über Arduinos erfolgen. Ich habe mir folgendes Konzept überlegt:
Im Gleisbildstellpult werkelt ein Arduino Mega (oder mehrere, ich brauche viele Digitale Pins!) als "Server". Dieser nimmt die Taster- und Schalterbetätigungen entgegen und sendet diese dann per WLAN an andere Arduinos bzw. ESP32 (die habe ja bereits WLAN und auch einige Digitale Pins). Unter jedem Segment sitzt dann mindestens ein ESP32, welcher dann die Schaltungen ausführt (über Relais Gleisabschnitte schalten und vorhandene Weichenantriebe, Servos, Schrittmotoren u.a. steuern).

WLAN deshalb, weil die anderen Möglichkeiten (I2C, Serial) die Nachteile der Leitungslänge haben (bei mir wären das 1-3 Meter Kabel zwischen den Arduinos und die unvermeidlichen Störungen, die so eine Modellbahn erzeugt) und wiederum mehr Kabel zwischen Gleisbildstellpult und Segemten benötigt würden. Ein Bussystem kann ich auch nicht nehmen, da meine Segmente nicht hintereinander liegen, sondern teilweise auch nebeneinander, d.h. zur Verbindung bräuchte ich eine sternförmige Verbindung (jeweils ausgehend vom Gleisbildstellpult direkt zu jedem Segment).
Sind diese Überlegungen soweit umsetzbar oder ist das Unsinn?

Nun zum anderen Problem: ich brauche jede Menge Digitaler Ein- und Ausgänge, viel mehr als ein Arduino Mega liefern kann!
Ich habe inzwischen gelesen, daß es sog. Port-Expander und Schieberegister gibt. Was ist da am besten geeignet (Digitale Eingänge für Taster und Schalter, Digitale Ausgänge für LEDs)?

Ein weiteres Problem ist noch der benötigte Strom. Der ist ja beim Arduino arg begrenzt, d.h. ich kann an einen Mega gar nicht an jeden Digitalen Pin eine LED hängen, weil die zusammen viel mehr Strom benötigen als der Mega liefern kann. Ich werde sowohl normale LEDs als auch WS2812 verbauen. Bei den WS2812 kann man ja eine externe Stromversorgung dran hängen (die haben ja Anschlüsse dafür), aber das geht ja nicht mit normalen LEDs. Wie macht man das hier? Die LEDs über Relais ansteuern oder gibt es elegantere Lösungen?

Damit ihr euch ein Bild von dem benötigten Equipment machen könnt, hier mal die Zeichnung wie das Gleisbildstellpult aussehen soll (siehe Attachment).
Gezählt habe ich bisher folgendes (ein paar Dinge sind noch unklar):

Für das Gleisbild:
32 Schalter Ein/Aus
13 Schalter Ein/Aus/Ein
18 Weichentaster
8 Lokschuppentor-Taster
1 Schiebeschalter (3 Stellungen)
Zwei Sonderschalter für Drehscheiben, wobei ich noch nicht weiß, wieviele Digitale Pins ich dafür benötige
18 rote LEDs
18 grüne LEDs
4 gelbe LEDs
45 RGB-WS2812-LEDs

Auf der oberen Leiste:
3 Schiebeschalter (2 Stellungen)
2 Schiebeschalter ( 3 Stellungen
2 Schiebeschalter (4 Stellungen)
12 RGB-WS2812-LEDs
2 8er Riegel RGB-WS2812-LEDs

Macht zusammen (ohne die Sonderschalter für die Drehscheiben) satte 149 benötigte Digitale Pins!

Neben dem Gleisbild mit den Schaltern, Tastern und LEDs gibt es da noch zwei Fahrregler, die unabhängig vom Arduino sind, d.h. der Fahrstrom geht direkt zu den Segmenten. Geschaltet wird der Fahrstrom für einige Halteabschnitte erst von den ESP32 unter den Segemten per Relais.
Ferner wird da noch ein Raspberry Pi 3 B+ mit einem 7'' Touchscreen eingebaut, der den nicht einsehbaren Schattenbahnhof per Videokamera überwachen soll. Ferner eine Zahlentastatur, mit welcher ich die noch nötigen Sonderaufgaben (drehen Portalkran und Wasserkräne usw.) schalten soll (für die dafür nötigen Taster ist nämlich kein Platz mehr auf dem Gleisbild).
Da ich mich mit der Zahlentastatur noch nicht beschäftigt habe, weiß ich auch noch nicht, wieviele Pins ich dafür am Mega benötige.
Was ich auch noch nicht weiß, wie ich ev. später mal Fahrstraßen schalten soll (was benötigt man da als Schalter/Taster? Vielleicht kann dazu ja einer der Modellbahner hier mal was dazu sagen?).

Statt des Mega könnte auch der Raspberry als "Server" bzw. "Zentrale" dienen. Was wäre geeigneter?

Teilweise ist der Kasten für das Gleisbildstellpult breits gebaut. Ich habe noch mal ein Bild von einer aktuellen Stellprobe drangehängt.

Ich werde zu Anfang noch nicht alles anschließen, sondern erstmal mit den einfachen Sachen anfangen, und zwar mit dem Haltepunkt-Segment. Hier muß nämlich nur ein Halteabschnitt und die Beleuchtung geschaltet werden. Je weiter ich mich dann in den Arduino-Anfänger-Tutorials durcharbeite, werde ich die anderen Sache stückweise ausbauen und anschließen. Taster/Schalter und LEDs habe ich bereits gelernt abzufragen bzw. zu schalten.


Angehängte Datei(en) Thumbnail(s)
       

Viele Grüße
Nordlicht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.06.2018, 20:24
Beitrag #2
RE: Konzept Gleisbildstellpult
Hallo
da du viel geschrieben hast, und in der kürze nicht alles gleich beantwortbar ist, nur eine beschränkte Auskunft und Ergänzung zu deinen Fragen:
ich habe ein Schaltpult für 7 mal 16 Tasten an einem Mega, plus 10 Kippschalter, spez. Taster direkt am Mega, außerdem Komm-Leitungen (RX + TX 2mal).
Das ganze an einem Netzteil 5V / 0,7 A. Alle Taster haben ein LED, sind als Modul mit einem PCF8575 ein spez. Gehäuse auf dem Pult angeschlossen, Verbindung Pult - Platte 6 Adern (Reserve noch mit 9 Adern --> 15polige Steckverbindung). Der Strom einer LED wurde getestet und Widerstandsnetzwerke mit min. 1KOhm bei 5P(es leuchten ja nicht 16, sondern nur 8 bei Weichen) gehen hervorragend. Manches lässt sich ja auch durch Logik lösen, Weichen --> Servos, dann Signale, dann Block-Relais. usw. Daraus ergibt sich z.B. nur ein Taster "Beginn" und ein Taster "Ziel". Beachte Reihenfolge und schon kein Taster für die Umgekehrte Richtung. Auf der Platte verwende ich MCP23017 und 2*ULN2803 für LED-Signale oder Relais, Die Verbindung der Schaltmodule mit dem UNO oder MEGA über I2CL und bei Entfernung von 20 cm bis 50 cm ist ein Stern auch möglich bei 19200.
Wichtig nur ein vorab Test der Baugruppen, also viel Software schreiben.
sollte fürs Erste reichen.
mfl Gruß
Achim
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.06.2018, 07:57 (Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2018 08:51 von Binary1.)
Beitrag #3
RE: Konzept Gleisbildstellpult
Hallo Achim,

der Driver ULN2803 ist ein gutes Teil, welche Erfahrungen hast Du damit gemacht? Ich verwende für Porterweiterung die SPI Version. Schon mal ausprobiert?

Gruß
Rainer

bei der Gelegenheit mal eine Idee für einen Weichenantrieb...


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.06.2018, 09:12
Beitrag #4
RE: Konzept Gleisbildstellpult
Hallo Rainer,
ich stehe etwas auf dem Schlauch - SPI-Version?. Ich benutze ganz herkömmlich Dual-Inline auf 5 * 7 cm² -Lochraster und habe hier entweder LED angeschlossen oder auf 15 * 7 cm² -LR mit Relais und Klemmleisten. Und dann allerdings im Pult Bereich die PCF8575, nur mit LED, die lassen sich besser ansprechen denn hier ist das speichern des Zustandes und auslesen einfacher, sowie mechanisch einfacher händelbar.

mfl Gruß

Achim
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.06.2018, 09:18
Beitrag #5
RE: Konzept Gleisbildstellpult
MCP23018 SPI-Version von MCP23017
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.06.2018, 10:22 (Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2018 10:27 von MicroBahner.)
Beitrag #6
RE: Konzept Gleisbildstellpult
Hallo,
(04.06.2018 19:39)Nordlicht schrieb:  Macht zusammen (ohne die Sonderschalter für die Drehscheiben) satte 149 benötigte Digitale Pins!
In solchen Fällen verwendet man eigentlich nicht mehr einzelne Digitale Pins. Das Zauberwort heisst 'Matrix' und I/O Expander. In meinem Gleisbidlstellpult habe ich eine ähnliche Anzahl von Schaltern. Die sind in einer Matrix angeordnet und werden über I2C-Bus Portexpander ausgelesen. Benötigen also alle zusammen ganze 2 I/O Pins am Controller.
Für die Ansteuerung der LED's habe ich einen 4-Digit 7-Segment Treiber verwendet. Pro IC lassen sich 32 LED ansteuern und auch das geht über I2C. Leider gibt es genau den Baustein nicht mehr. Aber vergleichbar ist z.B. der MAX 7219 mit seriellem (ähnl. SPI) Interface. Der kann 8 Digits, also 64 LED mit einem Baustein. Da sich jedes Segment einzeln ansteuern lässt, ist es letztendlich egal, ob das eine 7-Segment Anzeige oder alles einzelne Led's sind.
Mit der Technik hast Du noch reichlich IO's an deinem MEGA übrig.

Solange Du keine große Halle mit deiner Moba füllen willst, ist auch WLAN für die Übertragung zu den Komponenten oversized. Da reichen ganz einfache übliche kabelgebundene serielle Techniken. Ich gehe auch mit I2C problemlos über mehrere Meter.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.06.2018, 10:27
Beitrag #7
RE: Konzept Gleisbildstellpult
Hallo Achim,

Du schriebst
Code:
Auf der Platte verwende ich MCP23017 und 2*ULN2803
Was bekommst Du nicht zusammen?

Gruß
Rainer
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.06.2018, 14:44
Beitrag #8
RE: Konzept Gleisbildstellpult
Hallo,

Habe mal nach den erwähnten Bauteilen gegoogelt.

Also PCF8575: Da habe ich diese Seite gefunden: Port-Expander PCF8574
Wenn ich das richtig verstehe, dann kann man an einen PCF8575 maximal 8 LEDs oder Taster/Schalter dran hängen, wobei bei als Ausgänge konfiguriert nur 100 uA pro Pin machbar sind. Die LEDs brauchen aber 20 mA. Ist also nicht machbar, oder habe ich da was falsch verstanden?

MCP23017: 16 Pins, als Ein- oder Ausgänge konfigurierbar, wobei jeder Pin 20 mA liefern kann. Also besser geeignet für meine Einzel-LEDs als der PCF8574?

ULN2803: Da liefert die Suche mehrere. Welcher ist denn der richtige?
Und so ganz verstehe ich die Funktionsweise dieses ICs noch nicht. Ist das sowas wie ein elektonisches 8er Relais? Die Erklärungen, die man ergoogelt, sagen "8 Schalter in einem Gehäuse", wobei alle Schalter einen gemeinsamen GND besitzen. Also 8 Eingangspins, wenn einer auf HIGH gesetzt wird, wird der entsprechende Ausgang geschaltet.
Laut Datenblatt (was sich auch noch nicht so richtig deuten kann, dazu fehlen mir noch zu viele Kenntnisse) kann an den Ausgängen max. ein Strom von 500 mA fleißen. Gild das für alle Ausgänge gemeinsam oder für jeden einzeln?
Und was ist der Vorteil gegenüber den klassischen Relais?

Max7219: Hmmm, da ergibt die Suche auch verschiedene Ergebnisse. Ich neme mal an, der erste ist der richtige?
Also 64 LEDs sind damit betreibbar, angeordnet in einer Matrix von 8 Zeilen und 8 Spalten. Reicht der Strom denn aus, wenn als 64 LEDs a' 20 mA gleichzeitig an sind?
Dies scheint mir für die LEDs am geeignetsten zu sein. Hiernach gibt es das auch als Arduino-Shield mit allen nötigen Bauteilen. Ist wohl für Anfänger besser geeigent als der nackte IC? Gibt es das auch ohne die fertige 8x8-LED-Matrix? Meine LEDs sind ja nicht im Quadrat angeordnet, sondern müssen einzeln verdrahtet werden.
Aber für die Taster/Schalter ist dieses IC wohl nicht geeignet, da es nur Ausgäng sind?

Um es mal zu präzisieren:
von den 149 benötigten Pins werden 107 als Eingänge benötigt (Taster/Schalter), 42 als Ausgänge für die LEDs (davon einer für die 73 WS2812-RGB-LEDs).

SOFTHAR schrieb:(es leuchten ja nicht 16, sondern nur 8 bei Weichen)

Ja, da hast du natürlich recht. Von den 36 Weichen-LEDs leuchten immer nur entweder die rote oder die grüne, also insg. 18 Stück. Von den WS2812-RGB-LEDS leuchten allerdings immer alle.

SOFTHARD schrieb:Manches lässt sich ja auch durch Logik lösen, Weichen --> Servos, dann Signale, dann Block-Relais. usw.
Nur wenn man Blocksteuerung macht. Ich möchte aber schon gerne alle Weichen und Halteabschnitte einzeln schalten können. Signale gibt es nicht, da die "Anlage" bisher nur aus Bahnbetriebswerk (für mehr habe ich keinen Platz Confused) und Schattenbahnhof besteht. Ein Bahnhof wird erst viel später gebaut und der bekommt dann ein eigenes Gleisbildstellpult.
Fahrstraßenschaltung ist mal ein Zusatz für sehr viel später, aber diese Möglichkeit möchte ich natürlich jetzt schon vorsehen, daher die Frage, wie sage ich der Steuerung, daß bei den jetzt zu betätigenden Tastern/Schaltern eine Fahrstraße geschaltet werden soll und nicht nur die Weichen/Halteabschnitte einzeln?

MicroBahner schrieb:Das Zauberwort heisst 'Matrix' und I/O Expander.

Ok, also die 40 Einzel-LEDs in einer Matrix verschalten und dann mit dem MAX7219 ansteuern.

Aber was mache ich mit den 107 Schaltern/Tastern? Nehme ich dafür mehrere PCF8575? Bei 13 Stück könnte ich 104 Taster/Schalter ansteuern, die restlichen 3 dann direkt an den Arduino.
Laut dieser Seite kann man aber nur 8 Stück an den I2C-Bus hängen.
Oder sollte man die auch in einer Matrix verschalten? Eine 8x8-Matrix (64 Taster/Schalter) und eine 7x7-Matrix (49 Taster/Schalter)? Dann bräuchte ich nur zwei PCF8575? Oder mache ich da einen Denkfehler?

MicroBahner schrieb:Solange Du keine große Halle mit deiner Moba füllen willst, ist auch WLAN für die Übertragung zu den Komponenten oversized. Da reichen ganz einfache übliche kabelgebundene serielle Techniken. Ich gehe auch mit I2C problemlos über mehrere Meter.

Es mag vielleicht oversized sein (meine "Anlage" ist eigentlich nur ein "Regalorama", d.h. eine ganz kleine Anlage im Regal mit mehreren Regaletagen, wobei es hier erstmal nur um die 1. Etage geht), aber ich will ja gerade die Kabel so weit es geht verringern wegen der besseren Handhabbarkeit beim Herausnehmen der Segmente.
Über I2C habe ich gelesen, daß damit die Kabel nur sehr kurz sein dürfen.
Und dann ist da ja noch die schöne Signatur von @hotsystems: "I2C = weniger ist mehr: weniger Kabel, mehr Probleme." Wink Das schreckt ab. Big Grin

Viele Grüße
Nordlicht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste