|
|
RS485 IO Board - ModellBahnLichtSteuerungVon: Micha68 ACHTUNG! Diese Seite wird nicht weiter gepflegt. Mehr über das Projekt MoBaLiSt gibts hier: http://www.mobalist.de
[Bearbeiten] EinleitungHier stelle ich euch meine Planungen und Baufortschritte zur PC-gesteuerten Modellbahnbeleuchtung vor. Die Idee ist, sämtliche Beleuchtungen einzeln steuern zu können. Ich denke, dass damit die Beleuchtung wesentlich realistischer darstellbar ist, als mit ein paar wenigen Schaltern ganze Strassenzüge einzuschalten. Dabei soll es die Möglichkeit geben, vordefinierte Abläufe auf den Modulen laufen zu lassen und per PC die komplexe Lichtsteuerung über die Zeit zu machen. Die Module bieten bisher folgenden Funktionsumfang:
Ich habe zwei Layout-Versionen erstellt. Zum einen mit SMD-Bauteilen. Diese wird bei mir zum Einsatz kommen, da diese Module nur 80×50mm klein sind. Die DIP-Version ist für weniger geübte Löter und misst 80×100mm. Diese wird aber im Moment nicht gepflegt und erst bei Bedarf auf einen Endstand gebracht. Die Layouts wurden mit KiCad erstellt. Der Preis der SMD-Version bewegt sich für eine Platine um 15€, baut man 25 Platinen kommt man durch Rabatte auf ca. 315€ – macht ca. 12€ pro Platine. Folgene Befehle sind schon umgesetzt:
Alle Einstellungen lassen sich im EEprom speichern. Somit gibt es die Möglichkeit (über Jumper) das einmal programmierte Modul auch ohne PC laufen zu lassen. Ein weiterer Jumper ermöglicht die einfache Programmierung der Adresse: Jumper setzen, einen Befehl senden und die in diesem Befehl enthaltene Moduladresse wird als eigene Adresse übernommen. Das System bietet pro RS485-Strang die Möglichkeit, bis zu 255 Module (Adresse 1–255) anzusprechen. Die Adresse 0 dient als Broadcast-Adresse an alle Module. Hiermit können gleichzeitig alle Ausgänge oder Funktionen Ein- bzw. Ausgeschaltet werden. Die PC-Software ist noch in der Entwicklung. Hier fehlt mir noch die Idee, wie man eine komplette Anlage übersichtlich darstellen kann. Das Protokoll auf der seriellen RS485-Schnittstelle ist relativ einfach gehalten:
[Bearbeiten] Software
Die AVR-Software besteht zum einen aus einer Soft-PWM-Routine hier aus dem Tutorial. Dieses wurde auf 24 Ausgänge erweitert. Die RS485-Schnittstelle wird im Interupt abgewickelt. Ein Statemachine-ähnliches Gebilde erzeugt die Dimmer und Ablauffolgen. Jumper JP4 dient zum setzen der Adresse. Ist der Jumper gesteckt, zeigt LED D26 "prog" (rot) den Programmierstatus an. Die Adresse, die im nächsten Befehl über den RS485-Bus gesendet wird, wird als eigene Adresse übernommen und ins EEprom abgelegt. Der Jumper kann nach erfolgreicher Programmierung wieder entfernt werden.
Die PC-Software dient zum Konfigurieren und Steuern der Module. Ich schreibe das Programm mit Realstudio für Linux und Windows.
[Bearbeiten] HardwareGenaue Beschreibung folgt, sobald die ersten Platinen bestückt sind. Die Ausgänge 1-8, 9-16 und 17-24 können jeweils mit max. 500mA belastet werden. Mehr schafft ein ULN2803 nicht. [Bearbeiten] Bestückungsvarianten:
Ich betreibe meine Modellbahnelektronik mit einem Zentralen 5V-Netzteil. Diese 5V werden an P1 eingespeisst (Polarität beachten!). Diese Spannung liegt dann parallel an P2 und kann zum nächsten Modul durchgeschliffen werden. Hat man keine 5V zur Verfügung, kann die Platine auch mit einem Gleichrichter und einem 5V-Regler bestückt werden. (Bauteile G4, U1, C15, C16 und C17). An P8 kann dann ein Netzteil oder Trafo (>9V, max. 20V) angeschlossen werden. Der Gleichrichter schafft maximal 1,5A. Dies sollte reichen, da die Ausgänge eh nur mit 500mA je Block belastet werden können. Allerdings ist dann die Hitzeentwicklung zu beobachten. Werden die Treiber maximal belastet, macht es Sinn, alle 4 Gleichrichter zu bestücken und die Versorgungspins P4, P5, P6 und P8 aus einem ausreichend starken Netzteil/Trafo zu versorgen. Die Ströme verteilen sich dann auf die einzelnen Gleichrichter und die Erwärmung hält sich in Grenzen. Benutzt man nur normale LEDs mit 20mA kommt man maximal auf 500mA. Das dürfte kein Problem darstellen (teste ich noch...)
Jumper JP1 in oberer Position nutzt die Boardeigenen 5V zur Versorgung der Ausgänge. Die 5V an den LED-Ports sind über eine PolyFuse abgesichert. Jeder Port ist mit 10µF und 100n abgeblockt. Reicht die Spannung von 5V nicht aus - zB beim Betrieb von Lämpchen - können die Ausgänge Blockweise auch extern versorgt werden. Für die Ausgänge 1-8 ist dann der Gleichrichter G1 zu bestücken und der Jumper JP1 in die unteren Position zu setzen. Die Spannung für die LEDs 1-8 wird an P4 angeschlossen.
Wie oben, jedoch Jumper JP2, Gleichrichter G2 und P5 für die Versorgungsspannung.
Wie oben, jedoch Jumper JP3, Gleichrichter G3 und P6 für die Versorgungsspannung.
Die Leds werden an die Ausgänge D1-D24 angeschlossen. Auf der Rückseite befindet sich ebenfalls eine Markierung 1-24. Je nach Anwendung könne die LEDs auch von unten angeschlossen werden. ...
... [Bearbeiten] RS485-BusDer RS485-Bus wird an K1 angeschlossen und kann über K2 zum nächsten Modul durchgeschliffen werden.
oder http://www.hjelmslund.dk/USB485.asp
[Bearbeiten] Datenblätter
[Bearbeiten] Bilder
Demovideo 1: http://www.youtube.com/watch?v=7bBNUzgwtRw [Bearbeiten] Downloads
[Bearbeiten] Stand der Dinge
weitere News im Forum: http://www.stummiforum.de/viewtopic.php?f=21&t=61640 [Bearbeiten] Bekannte Fehler
[Bearbeiten] Siehe auch
|