Hallo, Du hast natürlich recht, da habe ich zu kurz gedacht, sorry. Hier jetzt der etwas "umfangreiche" Text:
@Bodo: nein, ist nicht nur Paperware, siehe Videos . Stromversorgung kann über Flachbandkabel laufen, kann oder muss ggf. lokal eingespeist werden, z.B. wg. unterschiedlicher Spannungen. Im Flachbandkabel laufen bei mir 24V für meine alten Märklin-Metallschienen-Weichen. Mehrere Adern + lokaler Kondensator + sequentielles Schalten sollten reichen, den Strombedarf zu decken. Aber der I2C-Bus-LED-Treiber von ELV verträgt max. 17V, wird also mit altem 12V Steckernetzteil versorgt.
Den DCC-Bus möchte ich weitgehend den Fahrzeugen überlassen. Ein zentraler Decoder für viele Komponenten ist auch preiswerter. Mal eine einfache Beispielrechnung für ein einfaches System ohne DI2C-Bus aus 8 Weichen + 2 Lichtsignalen:
1
2
3
4
5
6
7
8
9
+--------+----------------------------------------------------------------------------------+--------+--------+--------+
| Anzahl | Bezeichnung | Bucht | sonst | eigen |
+--------+----------------------------------------------------------------------------------+--------+--------+--------+
| 1 | Arduino Mega 2560 | 12€ | 34€ | |
+--------+----------------------------------------------------------------------------------+--------+--------+--------+
| 1 | Platine für 8 Weichen:1 MCP23017+ 4 ULN2803 | | | <10€ |
+--------+----------------------------------------------------------------------------------+--------+--------+--------+
| 1 | I2C-Bus-LED-Treiber, 16 LED‘s, ELV Bausatz | | 13€ | |
+--------+----------------------------------------------------------------------------------+--------+--------+--------+
D.h. in Summe 35€. Größere Anlagen haben realistischerweise viel mehr Weichen und Signale. Aber der Ardunio dient nur als Kommando-Empfänger und als I2C-Sterung für alle Komponenten, d.h. ist in den Kosten immer nur einmal anzusetzen. Eine nackte Platine, entsprechend eigener Entwicklung für diese Zwecke zum Ein- bzw. Auflöten von Bauteilen kostet im übrigen weniger als 3€, inkl. Versand. Ein Beispiel ist die obige einfache Platine für 8 Weichen.
Beispiele für andere Komponenten:
@MicroBahner:
16-Kanal I2C-Servo-Interface: Arduino Nano ( I2C: SDA -> A4, SCL -> A5 ) 4€
könnte man natürlich als LED-Treiber verwenden !
4 Relais Karte: Arduino - Grove Relay Module, 4 Channel, 5 V, SRD-05VDC-SL-C 13€
I2C Entfernungsmesser: Adafruit VL6180X Time of Flight Distance Ranging Sensor (VL6180) 17€
z.B. zum Einmessen von Loks
Treiber f. 2 Schrittmotoren: Grove I2C Mini Motor Driver 15€
Falls die Adressen nicht ganz ausreichen: TCA9548A I2C Multiplexer 7€
SparkFun Differential I2C Breakout - PCA9615 (Qwiic) für Patchkabel 14€
so ähnlich wie mein DI2C-Interface ( <10€)
Die Preise sind von deutschen Versendern. Aber es gibt noch viel mehr I2C-Komponenten als Bauteile, Boards mit und ohne Stemma- oder Qwiic-Stecker. Das meine ich mit Baukastensystem, eigene Entwicklungen gemischt mit Kaufteilen.
@hmarx: Ja, Entwerfen + Löten + Schrauben + SW Schreiben = mein Hobby = 0€.
@MicroBahner: Also erst mal ist der DI2C-Bus nur unter besonderen Umständen ggf. erforderlich. Mein Ziel ist halt, HW und SW für DCC-Decoder in einer Komponente zu haben und nur einfache Treiber einzusetzen. Ich möchte das DCC-Signal weitgehend den Fahrzeugen überlassen. Ich stelle mir das wie ein BSTR ( Arduino ) mit STT‘s ( Weichen- und LED-Treiberkarten ) an einem ESTW ( z.B. iTrain über DCC ) vor.
Klar, Du hast Recht, das ist eher Geschmackssache und die meisten würden es so wie Du machen. Die Vorteile FÜR MICH sind aber:
Aufwand und Kosten Decoder nur 1 mal ( auch ein Nano braucht noch Optokoppler und was kleines für ACK ),
SW konzentriert in einer Komponente ( Konfiguration, Updates etc. in einem Arduino ), der immer notwendige Scheduler betreibt ( ähnlich PinPulser in Beispiel NmraDccAccessoryDecoder_Pulsed_8 ) betreibt schaltet nicht nur Weichen, sondern dimmt auch z.B. LED‘s, alles in einer SW.
ich kann sehr einfach eigene Platinen für x-beliebige Zwecke selbst machen, muss also kein Decoder-Frontend in HW und SW jedes mal vorsehen,
aber es ist nicht verboten einen Nano zu nehmen, A4 und A5 an den I2C-Bus anzuschließen, und damit Servos, LED‘s usw. anzusteuern. Optokoppler und ACK-HW brauche ich nicht. Das Board mit dem Nano, oder was ähnlichem reicht.
@LPW: Weichenendlagen: meine Weichensteuerung ist zunächst noch was ganz simples, ich will ja zunächst nur checken, ob das alles Sinn für mich hat. Ich habe noch viele Ideen, z.B. I2C-Treiber für Mux-Lichtsignale, Lokgeschwindigkeit messen etc. Aber meine Platinen sind in der Version 0.
Der DI2C-Bus wird nur für größere Entfernungen und höhere I2C-Taktraten notwendig. Trotzdem wollte ich mir die Möglichkeit offen halten, so etwas zu nutzen. Meistens wird man ohne auskommen und kann dann die I2C-Anschlüsse direkt miteinander verbinden.
Die I2C-Technik wurde zwar 1982 entwickelt, ist aber noch höchst lebendig. Es gibt auch schon eine neue kompatible Weiterentwicklung, den I3C-Bus.
Die von mir angewandte Schneid-Klemm-Technik für das Aufbringen der Stecker ist Industriestandard, die Stecker kosten um die 0,20€, und ist sekundenschnell gemacht. Das differentielle DI2C erhöht die Störsicherheit wie alle differentiellen Techniken, wie sie auch z.B. im LAN, in RS485 ( wie z.B. in BiDiB ) usw. enthalten sind.
Ja, Stemma und Qwiic werden hauptsächlich von Adafruit und Sparkfun, aber auch von anderen, z.B. Grove, angewandt. Und wenn man unter der Anlage auf dem Rücken liegt, ist man über einfache Verbindungstechnik sehr froh.
@Coder: die Konfiguration und Ansteuerung der vielen unterschiedlichen Komponenten ist recht komplex und deswegen bin ich über jede Bib. froh, die ich entweder direkt oder selbst modifiziert verwenden kann. Ich verwende als IDE VisualStudio mit VisualGDB von Sysprogs und Atmel Studio. Die Arduino-IDE nur gelegentlich für kleineres. Möglicherweise werde ich auch gar keinen Arduino, sondern einen anderen uC als Kommando-Empfänger und I2C-Steuerung verwenden.
Gruß Rolf