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:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Portexpander MCP23017 für Gleisbildstellpult
29.12.2020, 15:13
Beitrag #1
Portexpander MCP23017 für Gleisbildstellpult
Hallo,

Nachdem ich jetzt an etlichen Anschlußbeinchen meiner Schalter im Deckel des Gleisbildstellpultes Anschlußkäbelchen angelötet habe (Uffs), muß ich mich zwischendurch (habe erst ca. 1/3 geschafft) zur Abwechslung mal mit was anderem beschäftigen.
Für meine vielen Schalter und LEDs schlug mir MicroBahner damals ja den MCP23017 vor.
Nun, anfängergerechte Anleitungen hierzu habe ich gefunden (z.B. hier und hier) und auch das Datenblatt (Datenbuch wird dem wohl eher gerecht Smile, davon verstehe ich aber bei weitem nicht alles). Diese Anleitungen zeigen auch, wie man mehrere (wegen der 3 Adressleitungen max. 8 Stück) MCP23017 am Adruino anschließen kann.

Der zulässige Strom pro Pin von 25 mA sollte für die 3mm-LEDs (in rot, grün und gelb, als Vorwiderstand habe ich 220 Ohm) ja kein Problem sein. Aber laut Datenblatt ist der zulässige Eingangsstrom (VDD) nur max. 125 mA, d.h. es können nur max. 6 LEDs a' 20 mA an einem MCP23017 angeschlossen werden? Oder habe ich da was falsch verstanden?
Und der Arduino kann ja auch nicht endlos Strom liefern für mehrere MCP23017. Kann man die MCP23017 auch mit einer externen Spannungsquelle versorgen, wenn man mehrere MCP23017 mit jeweils 6 LEDs (plus Tastern und Schalter) am Adruino hat?
Und an GND sollen ja auch nicht mehr als 150 mA abfließen dürfen. Von meinen Schaltern (mit Pulldown-Widerstand) ist immer eine ganze Reihe gleichzeitig geschlossen (max. ca. 60 Stück) oder offen. Wird das ein Problem?

Ich würde auch gerne die Schater, Taster und LEDs in logische Gruppen unterteilen. Ich denke mir, daß das bei der Programmierung übersichtlicher wird (z.B. alle Lokschuppen-Schalter und -Taster an einen MCP23017, die Weichentaster mit den zugörigen LEDs an einen zweiten, die Schalter der Halteabschnitte des Schattenbahnhofs an einen vierten und die Schalter der Behandlungsgleise des BW an einen fünften). Ist das so machbar oder mache ich da einen Denkfehler?

Und ein paar Sonderschalter würden dann auch noch direkt an Arduino Digital-Pins angeschlossen.

Viele Grüße
Nordlicht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.12.2020, 15:28
Beitrag #2
RE: Portexpander MCP23017 für Gleisbildstellpult
Hier findest du auch noch eine sehr gute Anleitung zum MCP23017.

Und ja, du kannst diese Bausteine auch mit externen 5Volt betreiben. Denke nur daran, dass immer GND verbunden sein muss. Und denke bei I2C an die Pullup-Widerstände.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.12.2020, 15:42
Beitrag #3
RE: Portexpander MCP23017 für Gleisbildstellpult
Hallo,
prinziel ist ja alles richtig pro Pin und Gesamt-I.
Da ich vor einiger Zeit auch dieses Problem hatte, habe ich für die Taster und Schalter-Fraktion erst einmal eine Matrik vereinbart mit dem MPC23017. also 8Bit gleich Zeile und 8Bit gleich Spalte) ergibt eine Anzahl von 64 Tastern / 3 Module sind 196 Taster oder auch Zahlen. Daraus ergeben sich Zahlengruppen für Weichen / Blocksignale / Gleisbestztmeldungen usw. Das alles in eine Tabellenform und hier Klartexte rein. Da es ein Netzwerk mit RS485 ist gibt Unterstationen, welche dann auf den entsprechenden Datensatz reagiert und die Aktoren ansteuert - also senden und empfangen mit "an-text-von-prüfzeichen". Zum Ansteuern der LED habe ich dann ULN2803 (Openkollektor und R-Netzwerke mit 1kOhm an 5P) und dies alles aus einem separaten NT mit gemeinsamen GND. Dürfte also kein Problem sein. Beachte nur die Negation durch die ULN2803, aber dies ist ja einfach lösbar. Zur Kontrolle der Stellung der Taster ( Toggel ) habe ich die MAX7219 und die 1088AS verwendet.

mfl. Gruß
Achim
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.12.2020, 19:15
Beitrag #4
RE: Portexpander MCP23017 für Gleisbildstellpult
Hallo,

An GND und Pull-Up werde ich denken. Ich werde vorher aber auch noch den Schaltplan hier einstellen zur Überprüfung. Ich mache da bestimmt noch viel falsch.

An eine Matrix hatte ich auch mal gedacht, aber das geht wohl nur für Taster, nicht aber für Schalter? Es wird doch jeweils die Spalte und Zeile auf HIGH gesetzt, wo am Kreuzungspunkt der Taster geschlossen ist, und auf LOW, wenn der Taster am Kreuzungspunkt offen ist? Was aber wenn mehrere Schalter gleichzeitig geschlossen sind? Wenn bei einer 3x3-Matrix z.B. in Zeile 1 bei allen 3 Spalten die Schalter geschlossen sind, in Zeile 2 nur in Spalte 1 und in Zeile 3 die Spalte 1 bis 3: dann wären doch alle 3 Spalten auf HIGH, ebenso wie alle 3 Zeilen. Wie soll der Arduino dann erkennen, daß Schalter 2/2 und 3/2 offen sind?

SOFTHARD schrieb:Beachte nur die Negation durch die ULN2803

Was heißt das? Ich kenne mich mit den Bausteinen noch nicht so aus.

Viele Grüße
Nordlicht
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.12.2020, 19:39 (Dieser Beitrag wurde zuletzt bearbeitet: 30.12.2020 19:47 von SOFTHARD.)
Beitrag #5
RE: Portexpander MCP23017 für Gleisbildstellpult
Hallo Nordstern,
das soll nur heißen: eine Transistorstufe (8* vorhanden) mit offenen Kollektor: also für Relais mit z.B. 12Volt und Freilaufdiode oder LED mit einem passenden Widerstand und einer Spannung, welche ja anders sein kann als die 5Volt usw. siehe Datenblatt.
Es ist kein Hexenwerk.
Die Negation sollte nur bei der Programmierung beachtet werden, da ja der entsprechende Ausgang negiert zu schalten ist, weil der Transistor das Signal umdreht, aber eine nicht leuchtende LED - leuchtet ebend, mehr nicht.
Die Problematik Schalter habe ich mit den Tastern gelöst, einmal drücken = ein wieder drücken = aus, deshalb die LED-Matrik als Kontrollbild. Blocksignal rt = aus / gr = ein oder Weichen 2 Reihen - auch zwei Taster-Reihen usw. die Taster sind dann offen und die Matrix geht dann.

mfl. Gruß
Achim
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.12.2020, 19:58 (Dieser Beitrag wurde zuletzt bearbeitet: 30.12.2020 20:04 von MicroBahner.)
Beitrag #6
RE: Portexpander MCP23017 für Gleisbildstellpult
(30.12.2020 19:15)Nordlicht schrieb:  An eine Matrix hatte ich auch mal gedacht, aber das geht wohl nur für Taster, nicht aber für Schalter?
Doch das geht. Du musst nur in Reihe mit jedem Schalter eine Diode einbauen. Bei meinem Stellpult habe ich das so gemacht. Auf dem Bild, das ich dir im anderen Thread gepostet habe, kann man die am Schalter sehen, wenn Du das Bild zoomst.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.12.2020, 20:50
Beitrag #7
RE: Portexpander MCP23017 für Gleisbildstellpult
Nochmals Hallo,
ich muss dem Franz-Peter zustimmen, an diese Variante habe ich nicht mehr gedacht.
Die Diode verhindert einen Rückstrom von den nicht abgefragten Schalter.

mfl. Gruß
Achim
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.12.2020, 21:00
Beitrag #8
RE: Portexpander MCP23017 für Gleisbildstellpult
Hier mal als Schaltung (unten).

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  MCP23017 Nordlicht 49 7.565 21.03.2021 17:22
Letzter Beitrag: Nordlicht
  Konzept Gleisbildstellpult Nordlicht 40 23.530 16.11.2019 07:40
Letzter Beitrag: HolgerM
  4 * mcp23017 anordnen shrimps 7 4.354 29.08.2019 21:09
Letzter Beitrag: hotsystems
  MCP23017 shield shrimps 12 4.608 03.05.2019 23:10
Letzter Beitrag: Bitklopfer
  Wieviel Portexpander MCP23017 am I²C-Bus? alpenpower 4 2.993 29.11.2018 17:22
Letzter Beitrag: Mathias
  Porterweiterung MCP23017 instabil staebhrb 2 5.546 29.10.2013 17:38
Letzter Beitrag: staebhrb

Gehe zu:


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