Neuheiten 2021
Diskussionen zu den veröffentlichten Neuheiten finden sich im Forum Allgemeines (da sie in der Regel spurgrößenübergreifend sind), bzw. werden dahin verschoben. Bitte schaut zunächst hier nach, bevor ihr einen neuen Thread aufmacht, ob ihr dort nicht schon eine Diskussion zur Neuheitenveröffentlichung Eures Herstellers findet. Es macht keinen Sinn mehrere Threads zum gleichen Thema in zig Unterforen zu führen.
Die Diskussionsthreads zu den bereits veröffentlichten Neuheiten 2021 der am häufigsten diskutierten Hersteller:
Diskussionen zu den veröffentlichten Neuheiten finden sich im Forum Allgemeines (da sie in der Regel spurgrößenübergreifend sind), bzw. werden dahin verschoben. Bitte schaut zunächst hier nach, bevor ihr einen neuen Thread aufmacht, ob ihr dort nicht schon eine Diskussion zur Neuheitenveröffentlichung Eures Herstellers findet. Es macht keinen Sinn mehrere Threads zum gleichen Thema in zig Unterforen zu führen.
Die Diskussionsthreads zu den bereits veröffentlichten Neuheiten 2021 der am häufigsten diskutierten Hersteller:
- Märklin / Trix Neuheiten 2021
- Piko Neuheiten 2021
- Roco / Fleischmann Neuheiten 2021
MobaLedLib: 768 LEDs, Servos, Sound, …………… Zwei Jahre MobaLedLib!
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: Diskussion DC
Hallo Thomas,
Schön, dass es Dir gefällt. Und Dir auch ein Dankeschön. Du hast mich auf die Idee gebracht das Auszuprobieren. Der Dank geht auch an Bodo und Franz-Peter, die mich in die richtige Richtung geschubst haben.
Der DCC-Arduino leitet alle DCC Zubehör- und Signal-Befehle einfach per serieller Schnittstelle an den LED-Arduino weiter. Dadurch muss die DCC-Software nie angepasst werden. Auf dem LED-Arduino bestimmt man mit der Bibliothek welche „Signale“ für die Steuerung benutzt werden.
Das wird genauso wie bei dem CAN Signal Beispiel gemacht. Ich musste die Daten nur anstelle vom CAN-Bus von der seriellen Schnittstelle lesen.
Vielleicht schaffe ich es Heute nacht das ganze so zu Dokumentieren, dass ich es veröffentlichen kann.
Hardi
Schön, dass es Dir gefällt. Und Dir auch ein Dankeschön. Du hast mich auf die Idee gebracht das Auszuprobieren. Der Dank geht auch an Bodo und Franz-Peter, die mich in die richtige Richtung geschubst haben.
Der DCC-Arduino leitet alle DCC Zubehör- und Signal-Befehle einfach per serieller Schnittstelle an den LED-Arduino weiter. Dadurch muss die DCC-Software nie angepasst werden. Auf dem LED-Arduino bestimmt man mit der Bibliothek welche „Signale“ für die Steuerung benutzt werden.
Das wird genauso wie bei dem CAN Signal Beispiel gemacht. Ich musste die Daten nur anstelle vom CAN-Bus von der seriellen Schnittstelle lesen.
Vielleicht schaffe ich es Heute nacht das ganze so zu Dokumentieren, dass ich es veröffentlichen kann.
Hardi
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: Diskussion DC
Hallo Ingo,
danke für den hundertsten Beitrag hier.
- verschiedene Farben
- Überprüfung der LED Kommunikation
- kein zusätzlicher Prozessor Pin
- Pegelanpassung
- Schutz des „teuren“ Arduinos
Ich habe mir bereits notiert, das ich das bei einer „richtigen“ Platine einbauen will. Dazu würde ich einen WS2811 im DIL8 Gehäuse mit einer IC-Fassung verwenden. Diesen kann man gegebenen Falls einfach tauschen. Zusätzlich will ich das Ende der Kette auf einen weiteren WS2811 legen der ebenfalls auf der Platine sitzt. Damit kann geprüft werden ob die Kette unterbrochen ist oder falsche Daten übertragen werden.
Ich würde mich sehr über Bilder und Videos hier freuen.
Hardi
danke für den hundertsten Beitrag hier.
Ich weiß nicht ob das ein Opfer oder ein Feature ist. Ich baue immer mindestens eine LED als Heartbeat auf meine Platinen. Dazu bietet sich eine RGB-LED an:
- verschiedene Farben
- Überprüfung der LED Kommunikation
- kein zusätzlicher Prozessor Pin
- Pegelanpassung
- Schutz des „teuren“ Arduinos
Ich habe mir bereits notiert, das ich das bei einer „richtigen“ Platine einbauen will. Dazu würde ich einen WS2811 im DIL8 Gehäuse mit einer IC-Fassung verwenden. Diesen kann man gegebenen Falls einfach tauschen. Zusätzlich will ich das Ende der Kette auf einen weiteren WS2811 legen der ebenfalls auf der Platine sitzt. Damit kann geprüft werden ob die Kette unterbrochen ist oder falsche Daten übertragen werden.
Das bekommst Du sicher hin, wenn nicht, das frag einfach nach...
Ich würde mich sehr über Bilder und Videos hier freuen.
Hardi
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- InterRegioExpress (IRE)
- Beiträge: 270
- Registriert: Mi 11. Mär 2015, 15:49
- Nenngröße: TT
- Stromart: digital
- Gleise: TT
- Wohnort: Chiclana
- Alter: 53
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: Diskussion DC
Die Idee, das Signal zu checken, ist gar nicht mal so abwegig. Man müsste allerdings die Kette wieder rückführen, wäre etwas Kabelaufwand mehr.
Aber man könnte als 1. Bytegruppe z.B. 0x55AA55 aussenden und das Signal per SPI wieder einlesen zum Vergleichen. So könnte man Fehler in der Verkabelung finden und vor allem: man kann damit eine Auto-Konfiguration machen, weil man weiß, wie viele LEDs am Strang angeschlossen sind. Und man muss dann auch nicht mehr updaten, als wirklich physikalisch vorhanden sind.
__________________________
LG aus Andalusien.
RailSolution - das Lichtprojekt von Modellbahnern für die Modellbahn
LG aus Andalusien.
RailSolution - das Lichtprojekt von Modellbahnern für die Modellbahn
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: Diskussion DC
Hallo Ingolf,
bei der 4-poligen Verkabelung wird das Ende der Kette automatisch wieder zurück geführt.

Ich hatte dieses Signal auch schon mit dem Arduino verbunden. Da ich es aber bisher nicht ausgewertet hab wurde der Pin für eine andere Funktionalität verwendet.
Zur Bestimmung der Länge benötigt man keine SPI-Lese Routine. Es reicht wenn man überprüft ob ein Signal ankommt. Zur Ermittlung der LED Anzahl benötigt man auch kein spezielles Muster. Es reicht wenn man an X LEDs eine Null schickt. Wenn ein Signal zurück kommt, dann sind weniger als X LEDs vorhanden. Durch geschickte Veränderung von X kann man so ganz schnell die Anzahl der LEDs ermitteln ohne das die LED leuchten.
Auf diese Weise kann man auch im Betrieb Unterbrechungen erkennen.
Ich hatte allerdings letztens eine LED welche bei einem bestimmten Eingangswert zufällige Zahlen an ihrem Ausgang ausgegeben hat. Das sah lustig aus. Alle Folgenden LEDs haben verrückt gespielt. Ich zeig Euch mal das Video. So einen Fehler kann man nur erkennen wenn man das Signal am Ende der Kette auswertet.
Hardi
bei der 4-poligen Verkabelung wird das Ende der Kette automatisch wieder zurück geführt.

Ich hatte dieses Signal auch schon mit dem Arduino verbunden. Da ich es aber bisher nicht ausgewertet hab wurde der Pin für eine andere Funktionalität verwendet.
Zur Bestimmung der Länge benötigt man keine SPI-Lese Routine. Es reicht wenn man überprüft ob ein Signal ankommt. Zur Ermittlung der LED Anzahl benötigt man auch kein spezielles Muster. Es reicht wenn man an X LEDs eine Null schickt. Wenn ein Signal zurück kommt, dann sind weniger als X LEDs vorhanden. Durch geschickte Veränderung von X kann man so ganz schnell die Anzahl der LEDs ermitteln ohne das die LED leuchten.
Auf diese Weise kann man auch im Betrieb Unterbrechungen erkennen.
Ich hatte allerdings letztens eine LED welche bei einem bestimmten Eingangswert zufällige Zahlen an ihrem Ausgang ausgegeben hat. Das sah lustig aus. Alle Folgenden LEDs haben verrückt gespielt. Ich zeig Euch mal das Video. So einen Fehler kann man nur erkennen wenn man das Signal am Ende der Kette auswertet.
Hardi
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- CityNightLine (CNL)
- Beiträge: 1652
- Registriert: Do 28. Apr 2005, 08:37
- Wohnort: München
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: Diskussion DC
Moin Hardi,Hardi hat geschrieben: ↑Fr 18. Jan 2019, 07:56....
Der DCC-Arduino leitet alle DCC Zubehör- und Signal-Befehle einfach per serieller Schnittstelle an den LED-Arduino weiter. Dadurch muss die DCC-Software nie angepasst werden. Auf dem LED-Arduino bestimmt man mit der Bibliothek welche „Signale“ für die Steuerung benutzt werden. .....
heisst das, eigentlich kann ich hinter den seriellen DCC-Arduino in einer Art Bus-/Parallel-Verkabelung meherer „LED-Arduinos“ klemmen, die sich alle am selben Sender nähren, da der LED-Arduino ja selbst definiert, welche DCC-Adresse ihn interessiert?
Reicht dazu die Stärke des Signals, und wenn ja, wieviele LED-Arduinos könnte der versorgen?
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: Diskussion DC
Hallo Thomas,
theoretisch währe das möglich. Falls die Ausgangsleistung des DCC-Arduinos nicht reicht könnte man auch noch ein 33 Cent IC (CD 4001) dazwischen schalten. Ich würde das nicht unbedingt empfehlen. Wenn viele LEDs angesteuert werden sollen, dann ist eine galvanische Trennung der Stromkreise nicht schlecht. Vor allem ist bei mehr als 256 RGB LEDs eine Räumliche Trennung wahrscheinlich und da man das DCC Signal überall auf der Anlage hat wird die Verkabelung einfacher mit getrennten Systemen.
Hardi
theoretisch währe das möglich. Falls die Ausgangsleistung des DCC-Arduinos nicht reicht könnte man auch noch ein 33 Cent IC (CD 4001) dazwischen schalten. Ich würde das nicht unbedingt empfehlen. Wenn viele LEDs angesteuert werden sollen, dann ist eine galvanische Trennung der Stromkreise nicht schlecht. Vor allem ist bei mehr als 256 RGB LEDs eine Räumliche Trennung wahrscheinlich und da man das DCC Signal überall auf der Anlage hat wird die Verkabelung einfacher mit getrennten Systemen.
Hardi
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: Diskussion DC
Hallo Stummiland,
Die Version 0.7.5 der MobaLedLib ist verfügbar.
Sie enthält folgende Änderungen:
Man kann die Bibliothek auch „von Hand“ installieren:
- Download von https://github.com/Hardi-St/MobaLedLib über “Clone or Download” button
- Löschen der alten Bibliothek im Verzeichnis: C:\Users\<User>\Documents\Arduino\libraries (<User> anpassen)
- Installation über „Sketch/Bibliothek einbinden/.ZIP Bibliothek hinzufügen“
Viel Spaß damit…
Und weil ich schon lange keine Bilder mehr gezeigt hab hier die beiden Varianten der LED Verteiler:


Alf hat die ersten 24 Platinen der ersten Version am Freitag bekommen. => Bald kann es los gehen…
Hardi
Die Version 0.7.5 der MobaLedLib ist verfügbar.
Sie enthält folgende Änderungen:
- Zusätzliche Beispiele:
- Brennendes Haus: “Druck Knopf” Aktion mit Feuer, Rauch, Sound und Feuerwehrauto wie in dem
Video in Post #58 gezeigt (https://vimeo.com/311006857)
- DCC (Digital Command Control) Decoder Beispiel mit zwei Arduinos. Gezeigt im Post #98 (https://vimeo.com/311996452). Damit können jetzt auch DCC Zubehörkommandos zur Steuerung der LEDs verwendet werden. Das ist z.B. für Lichtsignale sinnvoll.
- Brennendes Haus: “Druck Knopf” Aktion mit Feuer, Rauch, Sound und Feuerwehrauto wie in dem
- Zusätzliche Funktionen: Bin_InCh_to_TmpVar() und RGB_Heartbeat2()
- Zip Dateien der Verteilerplatinen für die RGB LEDs hinzugefügt. Diese gibt es jetzt einzeln ohne das S3PO Modul mit zwei verschiedenen Steckern. Die erste Version verwendet Pfostenstecker so wie ich das bisher gezeigt hab. Die zweite nutzt die billigeren RJ10 Stecker. Beide Platinen können mit einem Eingangsstecker des jeweils anderen Typs bestückt werden so dass man beide Varianten gemischt einsetzen kann.
- Verbesserter Feuer Algorithmus
- Korrigierter “binary mode” des Zählers (CF_BINARY)
- Korrigierte Initialisierung der Pattern Funktion bei der Verwendung des „Goto“ Modes.
- Englische Dokumentation auf denselben Stand gebracht wie die Deutsche.
- Neue version des Pattern_Configurator.xlsb
Man kann die Bibliothek auch „von Hand“ installieren:
- Download von https://github.com/Hardi-St/MobaLedLib über “Clone or Download” button
- Löschen der alten Bibliothek im Verzeichnis: C:\Users\<User>\Documents\Arduino\libraries (<User> anpassen)
- Installation über „Sketch/Bibliothek einbinden/.ZIP Bibliothek hinzufügen“
Viel Spaß damit…
Und weil ich schon lange keine Bilder mehr gezeigt hab hier die beiden Varianten der LED Verteiler:


Alf hat die ersten 24 Platinen der ersten Version am Freitag bekommen. => Bald kann es los gehen…
Hardi
Zuletzt geändert von Hardi am Mo 21. Jan 2019, 08:20, insgesamt 1-mal geändert.
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- CityNightLine (CNL)
- Beiträge: 1652
- Registriert: Do 28. Apr 2005, 08:37
- Wohnort: München
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: Diskussion DC
Moin Hardi,
habe gerade versucht das BurningHouse-Beispiel zu testen.
Da kommt beim kompilieren die Fehlermeldung:
Code: Alles auswählen
In file included from C:\Users\thkas\Documents\Arduino\libraries\MobaLedLib-master\examples\22.Burning_House\22.Burning_House.ino:150:0:
C:\Users\thkas\Documents\Arduino\libraries\MobaLedLib-master\src/Keys_4017.h:59:160: fatal error: TimerOne.h: No such file or directory
compilation terminated.
TimerOne.h gibt es nicht. Vllt kannst Du das prüfen. Danke
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.5
Hallo Thomas,
Freut mich, dass Du das Beispiel gleich probiert hast.
Das Beispiel benötigt noch zwei weitere Bibliotheken:
Eine Offizielle anleitung zum installieren von Bibliotheken habe ich hier gefunden: https://www.arduino.cc/en/Guide/Libraries#toc3
In jedem Fall muss ich das noch mal in das Beispiel schreiben. Ich dachte eigentlich, dass die Fehlermeldung die ganze Codezeile zeigt. Dort habe ich schon mal einen Hinweis eingebaut (Ganz Rechts):
Aber wenn man nicht alles zweimal prüft…
Danke für den Hinweis
Wenn Du das Beispiel ohne die Tastaturplatine testen willst, dann musst Du einen Taster an einen Arduino Pin anschließen und diesen einlesen. Dummerweise scheint gerade draußen die Sonne. => Ich kann erst wieder in den Keller wen es dunkel wird. Jetzt muss ich erst mal Vitamin B produzieren (Oder was war das Zeug wozu man die Sonne braucht?).
Hardi
Freut mich, dass Du das Beispiel gleich probiert hast.
Das Beispiel benötigt noch zwei weitere Bibliotheken:
- TimerOne
- DIO2
Eine Offizielle anleitung zum installieren von Bibliotheken habe ich hier gefunden: https://www.arduino.cc/en/Guide/Libraries#toc3
In jedem Fall muss ich das noch mal in das Beispiel schreiben. Ich dachte eigentlich, dass die Fehlermeldung die ganze Codezeile zeigt. Dort habe ich schon mal einen Hinweis eingebaut (Ganz Rechts):
Code: Alles auswählen
#include <TimerOne.h> // The TimerOne library must be installed in addition if you got the error message "..fatal error: TimerOne.h: No such file or directory"
#include <DIO2.h> // The library for I/O 2 functions must be installed also
Danke für den Hinweis
Wenn Du das Beispiel ohne die Tastaturplatine testen willst, dann musst Du einen Taster an einen Arduino Pin anschließen und diesen einlesen. Dummerweise scheint gerade draußen die Sonne. => Ich kann erst wieder in den Keller wen es dunkel wird. Jetzt muss ich erst mal Vitamin B produzieren (Oder was war das Zeug wozu man die Sonne braucht?).
Hardi
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- CityNightLine (CNL)
- Beiträge: 1652
- Registriert: Do 28. Apr 2005, 08:37
- Wohnort: München
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.5
Danke, und Nein, da kommt nicht die Code-Zeile, nur der Fehler.
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.5
Hallo Thomas,
D? Ach so und ich wundere mich, dass ich nichts gespürt hab von dem B…
Ich teste den Code meistens ohne ihn als Bibliothek zu verpacken. Dann kommen andere Fehlermeldungen.
=> Es ist gut wenn Ihr mich darauf hin weist.
Danke
Hardi
D? Ach so und ich wundere mich, dass ich nichts gespürt hab von dem B…
Ich teste den Code meistens ohne ihn als Bibliothek zu verpacken. Dann kommen andere Fehlermeldungen.
=> Es ist gut wenn Ihr mich darauf hin weist.
Danke
Hardi
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- CityNightLine (CNL)
- Beiträge: 1652
- Registriert: Do 28. Apr 2005, 08:37
- Wohnort: München
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.5
Moin Hardi,
das müsste doch dann gehen, wenn ich ein Kabel von GND auf A0 nutze, kurz stecke und wieder ziehe, oder habe ich den Sketch noch nicht verstanden?
Über A0 liest er doch die Taster ein, oder?
Problem: Da tut sich nichts, Taster habe ich keine da.
Ergänzung: Während des Essens hat das Teilchen gelegen, jetzt flimmert es

Gibt es da noch irgendeinen Timer, der nur ab und zu ein Einschalten zulässt?
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.6
Hallo Thomas,
Die Eingänge eines IC‘s müssen immer auf einem definierten Pegel liegen sonst driften sie undefiniert zwischen 5V und GND was komische Effekte erzeugen würde. Dazu müsste man einen Schalter verwenden der ganz schnell zwischen 5V und GND wechselt. Das ist aber umständlich deswegen verwendet man einen Widerstand der den Eingang auf den „Ausschalt“ Pegel zieht wenn der Schalter nicht betätigt wird.
Das Beispiel ist aber für die „PushButtonAction_4017“ Schaltung geschrieben. Hier schaltet ein Zähler (CD 4017) abwechselnd 5V auf einen der 10 Taster. Wenn der Taster in dem Moment gedrückt wird, dann kommen die 5V am Arduino an. Anhand des Zeitpunkts kann das Programm bestimmen welcher Taster gedrückt wurde.
Bei dieser Anwendung muss ein Pull-Down Widerstand verwendet werden. Dummerweise hat der Arduino nur schaltbare Pull-Up Widerstände. Darum ist in der Schaltung der Widerstand R5 unten Links eingebaut:

Dieser sorgt dafür, das am Eingang A0 des Arduinos 0V anliegen, wenn kein Taster betätigt wird.
Mit diesem Widerstand und einem einfachen Taster gegen 5V sollte das Beispiel auch funktionieren. Der Arduino würde sich vielleicht „wundern“ warum immer alle 10 Taster gleichzeitig gedrückt werden, aber er würde sich nicht weiter darum kümmern, weil er laut Programm nur auf den Taster 3 achten soll.
Falls Dir die Erklärung zu ausführlich war, dann bitte ich das zu entschuldigen, aber vielleicht hilft sie einem anderen Stummi weiter. Und wenn ich mich nicht klar genug ausgedrückt hab, dann frag einfach noch mal nach. Auch darüber freuen sich die Anderen die sich nicht zu fragen trauen…
Ich habe das Beispiel so angepasst, dass man es ohne die Schalterplatine verwenden kann. Der Taster (Oder in Kabel) wird an D7 angeschlossen und mit GND verbunden. Mit einem Compiler Schalter kann man die verwendung der Tasterplatiene wieder aktivieren.
Das geänderte Beispielist auf GitHub verfügbar (Link siehe ersten Beitrag).
Wenn Du Pech hast, dann liegt das an einer kaputten RGB LED. Ich hatte das letztens auch mal. Das sieht dann so aus:
Ich habe ewig gebraucht den Bösewicht zu finden. Hab die Dächer von allen Häusern noch mal abgerissen… Wenn ich das Video vorher gemacht hätte, dann währe mir vielleicht aufgefallen, dass der Fehler erst im zweiten Haus von links aufgetreten ist. Die Fehlerhafte LED war im ersten Haus auf der Rückseite. Die Häuser sind immer noch nicht wieder richtig zusammen gebaut ;-(
Das gemeine an dem Fehler war, dass er erst nach einer bestimmten Zeit und vermutlich bei einem bestimmten Muster aufgetreten ist.
Zum Glück ist das bis jetzt der erste Fehler dieser Art. Bei einer zweiten LED braucht eine der Grundfarben eine Zeit bis sie richtig leuchtet. Sie beeinflusst aber nicht die folgenden LEDs.
Insgesamt habe ich etwas mehr als 200 LEDs verbaut und erst 2 Fehler.
Hat das flackern bei Dir ähnlich ausgesehen?
Oder vielleicht war der Pin A0 nicht richtig mit GND verbunden und das was Du gesehen hast war das Feuer? Es sieht bei den LEDs ohne Haus tatsächlich aus wie ein wildes Flimmern fällt mir gerade auf. Und die Blinkenden Lichter des Feuerwehrautos sind nicht besser. Hier werden die Einzelnen LEDs mit falschen Farben angezeigt und sie überlagern sich Teilweise.
Je länger ich darüber nachdenke bin ich davon überzeugt, dass Du mein „Feuer“ gesehen hast. Das wirkt erst mit dem darüber gestülpten Haus und LEDs welche in die verschiedenen Richtungen scheinen und sich dabei überlagern gut.
Erst wenn man viele LEDs verwendet und diese nicht direkt sieht (Blatt Papier), dann wirkt es ein bisschen wie ein Feuer. Es ist aber noch sehr verbesserungsfähig.
Im Video stimmen die Farben nicht und es ist außerdem überstrahlt.
Ich finde das der Effekt in dem „brennenden“ Haus ganz gut rüberkommt, und ein größeres Feuer will ich gar nicht auf der Anlage haben.
Die Simulation eines Lagerfeuers sieht auch ganz gut aus. Ich muss auch davon mal ein Video machen.
Hardi
Ja, der Pin A0 wird als Eingang verwendet. Aber er muss in diesem Beispiel mit 5V verbunden werden. In den anderen Beispielen habe ich die Schalter mit GND verbunden, weil man sich dann den Pull-up Widerstand sparen kann indem man den Pull-Up im Prozessor aktiviert. Das macht man mit der folgenden Zeile:
Code: Alles auswählen
pinMode(SWITCH0_PIN, INPUT_PULLUP); // Activate an internal pullup resistor for the input pin
Das Beispiel ist aber für die „PushButtonAction_4017“ Schaltung geschrieben. Hier schaltet ein Zähler (CD 4017) abwechselnd 5V auf einen der 10 Taster. Wenn der Taster in dem Moment gedrückt wird, dann kommen die 5V am Arduino an. Anhand des Zeitpunkts kann das Programm bestimmen welcher Taster gedrückt wurde.
Bei dieser Anwendung muss ein Pull-Down Widerstand verwendet werden. Dummerweise hat der Arduino nur schaltbare Pull-Up Widerstände. Darum ist in der Schaltung der Widerstand R5 unten Links eingebaut:

Dieser sorgt dafür, das am Eingang A0 des Arduinos 0V anliegen, wenn kein Taster betätigt wird.
Mit diesem Widerstand und einem einfachen Taster gegen 5V sollte das Beispiel auch funktionieren. Der Arduino würde sich vielleicht „wundern“ warum immer alle 10 Taster gleichzeitig gedrückt werden, aber er würde sich nicht weiter darum kümmern, weil er laut Programm nur auf den Taster 3 achten soll.
Falls Dir die Erklärung zu ausführlich war, dann bitte ich das zu entschuldigen, aber vielleicht hilft sie einem anderen Stummi weiter. Und wenn ich mich nicht klar genug ausgedrückt hab, dann frag einfach noch mal nach. Auch darüber freuen sich die Anderen die sich nicht zu fragen trauen…
Ich habe das Beispiel so angepasst, dass man es ohne die Schalterplatine verwenden kann. Der Taster (Oder in Kabel) wird an D7 angeschlossen und mit GND verbunden. Mit einem Compiler Schalter kann man die verwendung der Tasterplatiene wieder aktivieren.
Das geänderte Beispielist auf GitHub verfügbar (Link siehe ersten Beitrag).
Nein, die Push Button Aktion kann sofort wieder aktiviert werden. Und wenn A0 mit GND verbunden war, dann entspricht das dem nicht betätigten Taster. Es sollte also gar nichts passieren. Wenn A0 offen gewesen wäre, dann würde der Eingang sich irgendwo zwischen 5V und GND herum driften. Dann hätte die Aktion gestartet und gleich darauf wieder beendet werden können.
Wenn Du Pech hast, dann liegt das an einer kaputten RGB LED. Ich hatte das letztens auch mal. Das sieht dann so aus:
Ich habe ewig gebraucht den Bösewicht zu finden. Hab die Dächer von allen Häusern noch mal abgerissen… Wenn ich das Video vorher gemacht hätte, dann währe mir vielleicht aufgefallen, dass der Fehler erst im zweiten Haus von links aufgetreten ist. Die Fehlerhafte LED war im ersten Haus auf der Rückseite. Die Häuser sind immer noch nicht wieder richtig zusammen gebaut ;-(
Das gemeine an dem Fehler war, dass er erst nach einer bestimmten Zeit und vermutlich bei einem bestimmten Muster aufgetreten ist.
Zum Glück ist das bis jetzt der erste Fehler dieser Art. Bei einer zweiten LED braucht eine der Grundfarben eine Zeit bis sie richtig leuchtet. Sie beeinflusst aber nicht die folgenden LEDs.
Insgesamt habe ich etwas mehr als 200 LEDs verbaut und erst 2 Fehler.
Hat das flackern bei Dir ähnlich ausgesehen?
Oder vielleicht war der Pin A0 nicht richtig mit GND verbunden und das was Du gesehen hast war das Feuer? Es sieht bei den LEDs ohne Haus tatsächlich aus wie ein wildes Flimmern fällt mir gerade auf. Und die Blinkenden Lichter des Feuerwehrautos sind nicht besser. Hier werden die Einzelnen LEDs mit falschen Farben angezeigt und sie überlagern sich Teilweise.
Je länger ich darüber nachdenke bin ich davon überzeugt, dass Du mein „Feuer“ gesehen hast. Das wirkt erst mit dem darüber gestülpten Haus und LEDs welche in die verschiedenen Richtungen scheinen und sich dabei überlagern gut.
Erst wenn man viele LEDs verwendet und diese nicht direkt sieht (Blatt Papier), dann wirkt es ein bisschen wie ein Feuer. Es ist aber noch sehr verbesserungsfähig.
Im Video stimmen die Farben nicht und es ist außerdem überstrahlt.
Ich finde das der Effekt in dem „brennenden“ Haus ganz gut rüberkommt, und ein größeres Feuer will ich gar nicht auf der Anlage haben.
Die Simulation eines Lagerfeuers sieht auch ganz gut aus. Ich muss auch davon mal ein Video machen.
Hardi
Zuletzt geändert von Hardi am Mo 21. Jan 2019, 01:28, insgesamt 1-mal geändert.
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- CityNightLine (CNL)
- Beiträge: 1652
- Registriert: Do 28. Apr 2005, 08:37
- Wohnort: München
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.6
Moin moin Hardi,
Habe dann im FastLED-Beispiel "Fire2012 with Palette" eine eigene Palette mit mehr Orange-anteilen erstellt. Hat funktioniert auf der Basis der in http://www.farb-tabelle.de/en/table-of-color.htm dargestellten RGB-Werte für die Farben und meiner MIschung.
Allerdings wirkt das in Deinem Video schon recht gut mit Deiner Einstellung.
Jetzt aber wieder ´mal eine ergänzende Frage:
Über das Beispiel "FireTruck" hatten wir schon ´mal gesprochen. Was muss ich machen, um auch auf die Vorderlichter "weiss" den Stroboskop-Effekt zu bringen (wäre ein bisserl amerikanisch oder sehr modern). Die RGB-LED bringt mit C_ALL bei ein undefiniertes Licht, wenn ich eine BlueLight-Variable einsetze.
Wie kann ich ein Cx definieren, dass näherungsweise weiß wäre und den Stroboeffekt darstellen kann.
Sowas in der Art:
define C_W GhostWhite
??? uint32_t GhostWhite = strip.Color(248, 248, 255);
??? strip.setPixelColor(n, GhostWhite);
Wobei n dann aus dem FireTruck die LED ist.
Beispielidee kommt von dort: https://learn.adafruit.com/adafruit-neo ... ibrary-use
Wie schon gesagt, ich kann den einen oder anderen Programmierprozess verstehen, aber nicht selbst umsetzen.
Danke für die Erklärung. Das war super hilfreich fürs Verständnis.
Vllt. war es ja eine Zufallseinschaltung auf Grund des Drifts. Hat ja ne Stunde rumgelegen.
Danke! Schaun wir mal.
Ja, es kann sein, dass es das Feuer war. Zum Effekt hatte ich im Post #74 schon das geschrieben:Hardi hat geschrieben: ↑Mo 21. Jan 2019, 01:09 ....Je länger ich darüber nachdenke bin ich davon überzeugt, dass Du mein „Feuer“ gesehen hast. Das wirkt erst mit dem darüber gestülpten Haus und LEDs welche in die verschiedenen Richtungen scheinen und sich dabei überlagern gut. ......Ich finde das der Effekt in dem „brennenden“ Haus ganz gut rüberkommt......
Das war dann in der DCC-Entwicklung untergegangen, macht aber nichts.ThKaS hat geschrieben:...
Mit 6 RGB-Leds geht es schon ganz gut. Allerdings wäre mir der Weiss-Anteil zu groß und das ganze Feuer etwas zu hektisch.
Wie und wo kann man denn am Timing (auf-abblenden und der Farbe z.B. mehr orange-gelb) spielen?...
Habe dann im FastLED-Beispiel "Fire2012 with Palette" eine eigene Palette mit mehr Orange-anteilen erstellt. Hat funktioniert auf der Basis der in http://www.farb-tabelle.de/en/table-of-color.htm dargestellten RGB-Werte für die Farben und meiner MIschung.
Allerdings wirkt das in Deinem Video schon recht gut mit Deiner Einstellung.
Jetzt aber wieder ´mal eine ergänzende Frage:
Über das Beispiel "FireTruck" hatten wir schon ´mal gesprochen. Was muss ich machen, um auch auf die Vorderlichter "weiss" den Stroboskop-Effekt zu bringen (wäre ein bisserl amerikanisch oder sehr modern). Die RGB-LED bringt mit C_ALL bei ein undefiniertes Licht, wenn ich eine BlueLight-Variable einsetze.
Wie kann ich ein Cx definieren, dass näherungsweise weiß wäre und den Stroboeffekt darstellen kann.
Sowas in der Art:
define C_W GhostWhite
??? uint32_t GhostWhite = strip.Color(248, 248, 255);
??? strip.setPixelColor(n, GhostWhite);
Wobei n dann aus dem FireTruck die LED ist.
Beispielidee kommt von dort: https://learn.adafruit.com/adafruit-neo ... ibrary-use
Wie schon gesagt, ich kann den einen oder anderen Programmierprozess verstehen, aber nicht selbst umsetzen.
-
- InterRegioExpress (IRE)
- Beiträge: 261
- Registriert: So 30. Aug 2015, 10:15
- Nenngröße: H0
- Stromart: digital
- Steuerung: Z21
- Gleise: Piko A
- Wohnort: 39629 Bismark
- Alter: 65
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.6
Hallo Hardi,
ich habe am WE ein wenig mit den LED´s herumgespielt.
Erst mit dem Wemos D1 mini und ESP Easy. Zum Ansteuern der LED´s habe ich eine kleine Batch-Datei zum Testen.

Wie man sieht, arbeitet die erste LED brav mit.
Nach kurzer Zeit ging jedoch nix mehr.
Lange gesucht..., der LED-Streifen hatte irgendwo den Geist aufgegeben. Man, sind die Dinger sensibel !
Aber ich habe ja vorgesorgt...
Dann habe ich den Nano mit einem neuen LED-Streifen angeschlossen und ein paar Sketche ausprobiert.
Dabei bin ich sehr schnell an meine Grenzen gestoßen.
Ein paar Fragen:
Ist das CAN-Modul notwendig ? Ich hätte nichts, womit ich das Teil steuern könnte.
Wie müßte die Minimal-Beschaltung für den Nano sein ? Ich habe jetzt nur den Nano über 470 Ohm mit dem Din verbunden.
Den Sketch "House" auf den Nano geflasht, tja... irgendwas passiert da, also die min- und max-Zeit runter, neu geflasht, hmmm…
Kurz gesagt, ich sehe nicht durch.
Muß ich das Configurations-Arrey noch meinen Bedürfnissen anpassen ????
In der "House.ino" oder gar in der "MobaLedLib.h" ???
Bitte verzeihe die unqualifizierten Fragen eines alten Mannes

Grüße Ingo
ich habe am WE ein wenig mit den LED´s herumgespielt.
Erst mit dem Wemos D1 mini und ESP Easy. Zum Ansteuern der LED´s habe ich eine kleine Batch-Datei zum Testen.
Man könnte noch Pausen einfügen, LED´s ein- und ausschalten, man müßte sich weiter mit dem Syntax des Plugins beschäftigen.curl http://192.168.2.172/control?cmd=NeoPixel,1,255,0,0
curl http://192.168.2.172/control?cmd=NeoPixel,2,0,255,0
curl http://192.168.2.172/control?cmd=NeoPixel,3,0,0,255
curl http://192.168.2.172/control?cmd=NeoPixel,4,255,0,0
curl http://192.168.2.172/control?cmd=NeoPixel,5,0,255,0
curl http://192.168.2.172/control?cmd=NeoPixel,6,0,0,255
curl http://192.168.2.172/control?cmd=NeoPixel,7,255,0,0
curl http://192.168.2.172/control?cmd=NeoPixel,8,0,255,0
curl http://192.168.2.172/control?cmd=NeoPixel,9,0,0,255
curl http://192.168.2.172/control?cmd=NeoPixel,10,255,0,0

Wie man sieht, arbeitet die erste LED brav mit.
Nach kurzer Zeit ging jedoch nix mehr.
Lange gesucht..., der LED-Streifen hatte irgendwo den Geist aufgegeben. Man, sind die Dinger sensibel !
Aber ich habe ja vorgesorgt...
Dann habe ich den Nano mit einem neuen LED-Streifen angeschlossen und ein paar Sketche ausprobiert.
Dabei bin ich sehr schnell an meine Grenzen gestoßen.
Ein paar Fragen:
Ist das CAN-Modul notwendig ? Ich hätte nichts, womit ich das Teil steuern könnte.
Wie müßte die Minimal-Beschaltung für den Nano sein ? Ich habe jetzt nur den Nano über 470 Ohm mit dem Din verbunden.
Den Sketch "House" auf den Nano geflasht, tja... irgendwas passiert da, also die min- und max-Zeit runter, neu geflasht, hmmm…
Kurz gesagt, ich sehe nicht durch.
Muß ich das Configurations-Arrey noch meinen Bedürfnissen anpassen ????
In der "House.ino" oder gar in der "MobaLedLib.h" ???
Bitte verzeihe die unqualifizierten Fragen eines alten Mannes



Grüße Ingo
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.6
Hallo Ingolf,
Als minimal Beschaltung reicht ein Kabel zum DIN der ersten LED und die Verbindungen von GND und 5V. Ich habe bisher auch nie einen Widerstand in die Datenleitung eingebaut. Jede LED hat ja schon einen Widerstand am Eingang.
Bei dem House Beispiel passiert sehr wenig. Das soll ja auch so sein. Die Preiserleins kommen ja nicht alle gleichzeitig heim... Zu Testzwecken kannst Du Zeiten ändern:
In der „MobaLedLib.h“ muss nichts geändert werden(Kann aber, dann währe es gut wenn Du mir das mitteilst damit es in die nächste Version kommt).
Zur Anpassung an Deine Bedürfnisse veränderst Du zunächst das Konfigurationsarray. Am besten in kleinen Schritten damit Du evtl. auftretende Fehler schneller findest. Zunächst mal kannst Du weitere Zimmer hinzu fügen. Dann kannst Du mit den verschiedenen Beleuchtungstypen spielen (TV, Hell, Dunkel, Neon,...)
Vielleicht kombinierst Du dann mal zwei Beispiele. Zum Beispiel die Ampel und das Haus.
Taste dich einfach Stück für Stück an die Möglichkeiten heran. Immer in kleinen Schritten.
Und scheue Dich nicht zu Fragen wenn Du nicht weiter kommst. Ich freue mich darüber wenn sich jemand mit der Bibliothek beschäftigt.
@Thomas: Ich hab Deine Beitrag nicht übersehen, es wird aber eine ziemlich lange Antwort werden. Gib mir ein bißchen Zeit...
Hardi
Was ist denn kaputt gegangen? Mechanisch? Meißtens betrifft es nur die vorderen LEDs...
Nein, das CAN Modul wird nur dann benötigt, wenn Du was vom CAN lesen willst.Ingolf hat geschrieben: ↑Mo 21. Jan 2019, 11:15 Ein paar Fragen:
Ist das CAN-Modul notwendig ? Ich hätte nichts, womit ich das Teil steuern könnte.
Wie müßte die Minimal-Beschaltung für den Nano sein ? Ich habe jetzt nur den Nano über 470 Ohm mit dem Din verbunden.
Den Sketch "House" auf den Nano geflasht, tja... irgendwas passiert da, also die min- und max-Zeit runter, neu geflasht, hmmm…
Kurz gesagt, ich sehe nicht durch.
Muß ich das Configurations-Arrey noch meinen Bedürfnissen anpassen ????
In der "House.ino" oder gar in der "MobaLedLib.h" ???
Als minimal Beschaltung reicht ein Kabel zum DIN der ersten LED und die Verbindungen von GND und 5V. Ich habe bisher auch nie einen Widerstand in die Datenleitung eingebaut. Jede LED hat ja schon einen Widerstand am Eingang.
Bei dem House Beispiel passiert sehr wenig. Das soll ja auch so sein. Die Preiserleins kommen ja nicht alle gleichzeitig heim... Zu Testzwecken kannst Du Zeiten ändern:
Code: Alles auswählen
#define HOUSE_MIN_T 2 // Minimal time [s] to the next event (1..255)
#define HOUSE_MAX_T 5 // Maximal random time [s] "
In der „MobaLedLib.h“ muss nichts geändert werden(Kann aber, dann währe es gut wenn Du mir das mitteilst damit es in die nächste Version kommt).
Zur Anpassung an Deine Bedürfnisse veränderst Du zunächst das Konfigurationsarray. Am besten in kleinen Schritten damit Du evtl. auftretende Fehler schneller findest. Zunächst mal kannst Du weitere Zimmer hinzu fügen. Dann kannst Du mit den verschiedenen Beleuchtungstypen spielen (TV, Hell, Dunkel, Neon,...)
Vielleicht kombinierst Du dann mal zwei Beispiele. Zum Beispiel die Ampel und das Haus.
Taste dich einfach Stück für Stück an die Möglichkeiten heran. Immer in kleinen Schritten.
Und scheue Dich nicht zu Fragen wenn Du nicht weiter kommst. Ich freue mich darüber wenn sich jemand mit der Bibliothek beschäftigt.
@Thomas: Ich hab Deine Beitrag nicht übersehen, es wird aber eine ziemlich lange Antwort werden. Gib mir ein bißchen Zeit...
Hardi
Zuletzt geändert von Hardi am Di 22. Jan 2019, 18:24, insgesamt 1-mal geändert.
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.6
Hallo Thomas,
Nein, warum ich? Das könntest Du eigentlich machen. Ich würde es dann in die nächste Version aufnehmen. Was hältst Du davon.
Ich kann Dir natürlich auch dabei helfen…
Zeig doch mal was Du verändert hast.
Aber nur zu… Deine Fragen bringen allen was…
Das ist ein Thema welches ich unbedingt dokumentieren muss! Allerdings fürchte ich dass ich damit 40 Seiten füllen werde. Darum jetzt nur mal auf die Schnelle eine Erklärung:
Die mächtigste Funktion der Bibliothek ist die Pattern Funktion. Mit Ihr können die verschiedensten Effekte erzeugt werden. Fast alles außer den Häusern beruht auf dieser Funktion. Einige Beispiele tagen das „Pattern_Funktion“ im Namen: „08.Constr.Warn.Light_Pattern_Func“, „09.TrafficLight_Pattern_Func“, „10.RailwaySignal_Pattern_Func“.
Aber auch das Blitzen des Blaulichts wird über die Pattern Funktion erzeugt.
Die Pattern Funktion erzeugt LED Muster welche über Tabellen konfiguriert werden. In diesen Tabellen steht wann welche LED mit welcher Helligkeit an- und ausgeschaltet werden soll.
In dem Ampel Beispiel „09.TrafficLight_Pattern_Func“ habe ich versucht das zu erklären. Hier noch mal in Farbe:
Die Ampel soll zunächst Rot, dann Rot + Gelb und danach Grün zeigen. Das Grün bleibt einige Zeit an damit die Preiserleins über die Kreuzung fahren können. Dann wird die Ampel Gelb und anschließend wieder Rot. Jetzt beginnt das gleiche für die andere Richtung der Kreuzung.
Diese Abfolge sieht in der Tabelle (Pattern_Configurator.xlsm) so aus:

In der Tabelle unten ist immer dann ein „x“ gesetzt wenn die entsprechende Lampe leuchten soll.
Die „Dauer“ Zeile darüber bestimmt wie lange die einzelnen Phasen dauern sollen.
Das Excel Programm berechnet daraus eine „Pattern“ Zeile:
Diese Zeile kann man dann in das Konfigurationsarray des eigenen Programms einbauen:
Das Konfigurationsarray ist eigentlich ein Array aus verschiedenen Bytes. Das Array der obenstehenden Konfiguration sieht so aus:
Es enthält alle Informationen zur Darstellung der Ampel in möglichst kompakter Form. Für das Beispiel werden nur 27 Byte benötigt.
Doch jetzt zu Deinem Problem:
Wenn ich Dich richtig verstanden hab willst Du ein ähnliches Blitzen wie das Bluelight(). Dazu willst Du RGB LEDs verwenden bei denen die Farbe frei konfigurierbar sein soll.
Dazu verwenden wir wieder die Excel Tabelle:

Anstelle der „X“e werden jetzt die Helligkeitswerte eingetragen. Hier habe ich besondere Zahlen benutzt damit man diese später in der Konfigurationszeile besser findet. Damit das möglich ist wird der Parameter „Bits pro Wert“ im oberen Bereich auf 8 gesetzt. Damit kann man für die Helligkeit der LEDs 256 Werte angeben.
Für unser Programm verwenden wir dieses Mal die Grüne Makro Zeile:
Sie beschreibt ein Makro welches wir in der Konfiguration mit unterschiedlichen Parametern benutzen können. Dazu ersetzen wir die „besonderen Zahlen“ durch Parameter Namen und fügen diese in dem Makroaufruf ein. Bei der Gelegenheit ersetzen wir auch noch den Makronamen. Das hätte ich auch im Excel Sheet machen können, hab es aber erst gesehen nachdem ich das Bild hochgeladen hab:
Dieses Makro können wir jetzt in unser Programm kopieren und mehrfach mit verschiedenen Farben benutzen:
Bei dem Makro hätte man auch noch die Zeiten als Parameter vorgeben können.
Achtung: Ich habe das Beispiel nicht getestet damit Ihr die Chance habt meine Schreibfehler zu finden… Der erste Fehlerfinder bekommt eine Belohnung.
Ein interessantes Makro wäre ein sich scheinbar drehendes Blaulicht. Dazu könnte man ein Blaulicht mit drei LEDs (über Lichtleiter) beleuchten. Die LEDs würden dann so angesteuert, dass es aussieht als würde sich das Licht drehen. Dazu könnte man die „Analoges Überblenden“ Funktion nutzen auf die ich jetzt aber nicht weiter eingehen werde. Das gibt es vielleicht demnächst hier…
Auf diese Weise kann man sich die verschiedensten Makros erstellen und bei Bedarf einsetzen. Das Gute an einem Makro ist, das es erst dann Speicher belegt, wenn es eingesetzt wird.
@Stummiland: Es würde mich freuen, wenn Ihr eure Makros hier vorstellen würdet (Wenn möglich mit einem Video)
@Thomas: Ich hoffe ich habe dieses Mal nichts übersehen.
Hardi
Es tut mir Leid, wenn ich darauf nicht weiter eingegangen bin. Aber ich sehe schon, dass Du deutlich mehr verstehst als Du behauptest. Das mit der Palette ist eine sehr gute Idee. Ich nehme an, dass Du dazu die Bibliothek verändert hast. Soll ich eine Funktion einbauen mit der man eine eigene Palette verwenden kann?ThKaS hat geschrieben: ↑Mo 21. Jan 2019, 09:00 Ja, es kann sein, dass es das Feuer war. Zum Effekt hatte ich im Post #74 schon das geschrieben:Das war dann in der DCC-Entwicklung untergegangen, macht aber nichts.ThKaS hat geschrieben:...
Mit 6 RGB-Leds geht es schon ganz gut. Allerdings wäre mir der Weiss-Anteil zu groß und das ganze Feuer etwas zu hektisch.
Wie und wo kann man denn am Timing (auf-abblenden und der Farbe z.B. mehr orange-gelb) spielen?...
Habe dann im FastLED-Beispiel "Fire2012 with Palette" eine eigene Palette mit mehr Orange-anteilen erstellt. Hat funktioniert auf der Basis der in http://www.farb-tabelle.de/en/table-of-color.htm dargestellten RGB-Werte für die Farben und meiner MIschung.
Allerdings wirkt das in Deinem Video schon recht gut mit Deiner Einstellung.
Nein, warum ich? Das könntest Du eigentlich machen. Ich würde es dann in die nächste Version aufnehmen. Was hältst Du davon.
Ich kann Dir natürlich auch dabei helfen…
Zeig doch mal was Du verändert hast.
Deine „ergänzenden Fragen“ sind fatal. Wenn ich daran Denke was Du mit dieser Frage losgetreten hast:ThKaS hat geschrieben: ↑Mo 21. Jan 2019, 09:00 Jetzt aber wieder ´mal eine ergänzende Frage:
Über das Beispiel "FireTruck" hatten wir schon ´mal gesprochen. Was muss ich machen, um auch auf die Vorderlichter "weiss" den Stroboskop-Effekt zu bringen (wäre ein bisserl amerikanisch oder sehr modern). Die RGB-LED bringt mit C_ALL bei ein undefiniertes Licht, wenn ich eine BlueLight-Variable einsetze.
Wie kann ich ein Cx definieren, dass näherungsweise weiß wäre und den Stroboeffekt darstellen kann.
Sowas in der Art:
define C_W GhostWhite
??? uint32_t GhostWhite = strip.Color(248, 248, 255);
??? strip.setPixelColor(n, GhostWhite);
Wobei n dann aus dem FireTruck die LED ist.
Beispielidee kommt von dort: https://learn.adafruit.com/adafruit-neo ... ibrary-use
Aber nur zu… Deine Fragen bringen allen was…
Das ist ein Thema welches ich unbedingt dokumentieren muss! Allerdings fürchte ich dass ich damit 40 Seiten füllen werde. Darum jetzt nur mal auf die Schnelle eine Erklärung:
Die mächtigste Funktion der Bibliothek ist die Pattern Funktion. Mit Ihr können die verschiedensten Effekte erzeugt werden. Fast alles außer den Häusern beruht auf dieser Funktion. Einige Beispiele tagen das „Pattern_Funktion“ im Namen: „08.Constr.Warn.Light_Pattern_Func“, „09.TrafficLight_Pattern_Func“, „10.RailwaySignal_Pattern_Func“.
Aber auch das Blitzen des Blaulichts wird über die Pattern Funktion erzeugt.
Die Pattern Funktion erzeugt LED Muster welche über Tabellen konfiguriert werden. In diesen Tabellen steht wann welche LED mit welcher Helligkeit an- und ausgeschaltet werden soll.
In dem Ampel Beispiel „09.TrafficLight_Pattern_Func“ habe ich versucht das zu erklären. Hier noch mal in Farbe:
Die Ampel soll zunächst Rot, dann Rot + Gelb und danach Grün zeigen. Das Grün bleibt einige Zeit an damit die Preiserleins über die Kreuzung fahren können. Dann wird die Ampel Gelb und anschließend wieder Rot. Jetzt beginnt das gleiche für die andere Richtung der Kreuzung.
Diese Abfolge sieht in der Tabelle (Pattern_Configurator.xlsm) so aus:

In der Tabelle unten ist immer dann ein „x“ gesetzt wenn die entsprechende Lampe leuchten soll.
Die „Dauer“ Zeile darüber bestimmt wie lange die einzelnen Phasen dauern sollen.
Das Excel Programm berechnet daraus eine „Pattern“ Zeile:
Code: Alles auswählen
PatternT4(0,0,SI_1,6,0,255,0,PF_NO_SWITCH_OFF,2 Sec,1 Sec,10 Sec,3 Sec,73,163,48,73,26,133)
Code: Alles auswählen
//*******************************************************************
// *** Configuration array which defines the behavior of the sound module which is addressed like a LED ***
MobaLedLib_Configuration()
{
PatternT4(0,0,SI_1,6,0,255,0,PF_NO_SWITCH_OFF,2 Sec,1 Sec,10 Sec,3 Sec,73,163,48,73,26,133)
EndCfg // End of the configuration
};
//*******************************************************************
Code: Alles auswählen
const PROGMEM unsigned char Config[] = {
13, 0, 0, 255, 255, 6, 0, 255, 0, 16, 208, 7, 232, 3, 16, 39, 184, 11, 6, 0, 73, 163, 48, 73, 26, 133, 0
};
Doch jetzt zu Deinem Problem:
Wenn ich Dich richtig verstanden hab willst Du ein ähnliches Blitzen wie das Bluelight(). Dazu willst Du RGB LEDs verwenden bei denen die Farbe frei konfigurierbar sein soll.
Dazu verwenden wir wieder die Excel Tabelle:

Anstelle der „X“e werden jetzt die Helligkeitswerte eingetragen. Hier habe ich besondere Zahlen benutzt damit man diese später in der Konfigurationszeile besser findet. Damit das möglich ist wird der Parameter „Bits pro Wert“ im oberen Bereich auf 8 gesetzt. Damit kann man für die Helligkeit der LEDs 256 Werte angeben.
Für unser Programm verwenden wir dieses Mal die Grüne Makro Zeile:
Code: Alles auswählen
#define Wechselblinker(LED,InNr) PatternT4(LED,28,InNr,3,0,128,0,0,48 ms,74 ms,48 ms,496 ms,33,44,55,0,0,0,33,44,55,0,0,0)
Code: Alles auswählen
#define Color_Flash(LED,InNr, Red, Green, Blue) PatternT4(LED,28,InNr,3,0,128,0,0,48 ms,74 ms,48 ms,496 ms,Red,Green,Blue,0,0,0,Red,Green,Blue,0,0,0)
Code: Alles auswählen
#define Color_Flash(LED,InNr, Red, Green, Blue) PatternT4(LED,28,InNr,3,0,128,0,0,48 ms,74 ms,48 ms,496 ms,Red,Green,Blue,0,0,0,Red,Green,Blue,0,0,0)
//*******************************************************************
// *** Configuration array which defines the behavior of the sound module which is addressed like a LED ***
MobaLedLib_Configuration()
{
// LED,InNr, Red, Green, Blue
Color_Flash(0, SI_1, 248, 248, 255 )// GhostWhite
Color_Flash(1, SI_1, 148, 148, 155 )// Dark White
EndCfg // End of the configuration
};
//*******************************************************************
Achtung: Ich habe das Beispiel nicht getestet damit Ihr die Chance habt meine Schreibfehler zu finden… Der erste Fehlerfinder bekommt eine Belohnung.
Ein interessantes Makro wäre ein sich scheinbar drehendes Blaulicht. Dazu könnte man ein Blaulicht mit drei LEDs (über Lichtleiter) beleuchten. Die LEDs würden dann so angesteuert, dass es aussieht als würde sich das Licht drehen. Dazu könnte man die „Analoges Überblenden“ Funktion nutzen auf die ich jetzt aber nicht weiter eingehen werde. Das gibt es vielleicht demnächst hier…
Auf diese Weise kann man sich die verschiedensten Makros erstellen und bei Bedarf einsetzen. Das Gute an einem Makro ist, das es erst dann Speicher belegt, wenn es eingesetzt wird.
@Stummiland: Es würde mich freuen, wenn Ihr eure Makros hier vorstellen würdet (Wenn möglich mit einem Video)
@Thomas: Ich hoffe ich habe dieses Mal nichts übersehen.
Hardi
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.6
Erster!
Tut mir Leid, Ihr wart zu langsam. Ich habe schon einen Fehler gefunden. In dem Excel Sheet steht bei „Wert Max“ 128. Das führt dazu, dass der Maximalwert entsprechend begrenzt wird. Damit sind nur noch Helligkeitswerte bis 128 möglich.
Die 128 muss im Excel sheet und im Makro durch 255 ersetzt werden:
Hardi
Tut mir Leid, Ihr wart zu langsam. Ich habe schon einen Fehler gefunden. In dem Excel Sheet steht bei „Wert Max“ 128. Das führt dazu, dass der Maximalwert entsprechend begrenzt wird. Damit sind nur noch Helligkeitswerte bis 128 möglich.
Die 128 muss im Excel sheet und im Makro durch 255 ersetzt werden:
Code: Alles auswählen
#define Color_Flash(LED,InNr, Red, Green, Blue) PatternT4(LED,28,InNr,3,0,255,0,0,48 ms,74 ms,48 ms,496 ms,Red,Green,Blue,0,0,0,Red,Green,Blue,0,0,0)
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- InterRegioExpress (IRE)
- Beiträge: 261
- Registriert: So 30. Aug 2015, 10:15
- Nenngröße: H0
- Stromart: digital
- Steuerung: Z21
- Gleise: Piko A
- Wohnort: 39629 Bismark
- Alter: 65
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.6
Hallo Hardi,
Ich muß die Dinger wahrscheinlich einzeln testen....
Zumindest beim "House" ist der Groschen gefallen, sehr schöne Effekte. Zeiten hatte ich schon runtergesetzt, jetzt bin ich erst mal durch den
Syntax in der Zeile für "House" durchgestiegen. Fast.
D.h., wenn ich erweitern will, fange ich dann mit 10 an ?
Den Sinn von InCh habe ich auch noch nicht geschnallt, aber wenn es funktioniert, muß ich das ja auch nicht
Ich habe jetzt mal ausprobiert:
Soll erst mal reichen. Es fängt an, Spaß zu machen !!!
Grüße Ingo
es hat ein paar mal unkontrolliert geblinkt, dann gingen alle 10 LED´s nicht mehr....Was ist denn kaputt gegangen? Mechanisch? Meißtens betrifft es nur die vorderen LEDs...
Ich muß die Dinger wahrscheinlich einzeln testen....
Zumindest beim "House" ist der Groschen gefallen, sehr schöne Effekte. Zeiten hatte ich schon runtergesetzt, jetzt bin ich erst mal durch den
Syntax in der Zeile für "House" durchgestiegen. Fast.
Warum steht hier für LED eine 0 ? Wäre die letzte dann 9 ?House(0, SI_1, 2, 8, ROOM_DARK, ROOM_BRIGHT, ROOM_WARM_W, ROOM_TV0, NEON_LIGHT, ROOM_D_RED, ROOM_COL2, ROOM_WARM_W, ROOM_COL3, FIREB) // House with 10 rooms
D.h., wenn ich erweitern will, fange ich dann mit 10 an ?
Den Sinn von InCh habe ich auch noch nicht geschnallt, aber wenn es funktioniert, muß ich das ja auch nicht

Ich habe jetzt mal ausprobiert:
Funktioniert auch. Kann ich so in diesem Sinne weitere Zeilen anfügen mit z.B. Blinken, Sound usw. ??// *** Configuration array which defines the behavior of the LEDs ***
MobaLedLib_Configuration()
{// LED: First LED number in the stripe
// | InCh: Input channel. Here the special input 1 is used which is always on
// | | On_Min: Minimal number of active rooms. At least two rooms are illuminated.
// | | | On_Max: Number of maximal active lights.
// | | | | rooms: List of room types (see documentation for possible types).
// | | | | |
House(0, SI_1, 2, 3, ROOM_DARK, ROOM_BRIGHT, ROOM_WARM_W, ROOM_TV0) // House with 4 rooms
RandWelding(4,SI_1, 201, 1 Min, 3 Min, 50 Sec, 2 Min)
EndCfg // End of the configuration
};
//*******************************************************************
Soll erst mal reichen. Es fängt an, Spaß zu machen !!!
Grüße Ingo
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.6
Hallo Ingolf,
Die LED Nummern sind eine unschöne Geschichte bei dem Konzept. Wenn man ein Haus dazwischen schalten will, dann müssen die Nummern aller darauf folgenden angepasst werden. Darum verwende ich in dem Beispiel „03.Schwitches_Houses“ symbolische Namen. Dort wird mit
die Nummer der ersten LED des Hauses A definiert. Im Konfigurationsarray wird dann anstelle der 0 der Name „HOUSE_A“ verwendet. Die Definition des Hauses A enthält auch die anderen Zimmer eines Hauses. Die Zeilen sind aber nur Kommentar. Man könnte dort auch noch eine Beschreibung der Zimmer eintragen (z.B. „Erdgeschoss Zimmer links vorne“). Wichtig ist aber die Nummer. Hier muss man nur darauf achten dass alle Nummern in aufsteigender Reihenfolge sind. Diese Liste könnte man auch in Excel verwalten. Dann kann man die Nummerierung ganz schnell aktualisieren wenn sich etwas ändert.
In dem Beispiel „03.Schwitches_Houses“ wird auch der „InCh“ verwendet. Mit ihm kann man Steuern wann die Lichter in einem Haus An- oder Ausgehen sollen. Das kann man über einen Schalter, einen Helligkeitssensor oder was auch immer machen. Wenn man den Parameter „InCh“ nicht benutzen will und das Haus immer angeschaltet sein soll, dann trägt man hier „SI_1“ ein. Das ist eine besondere Eingangsvariable welche immer an ist. Später kann man diese noch durch eine andere Eingangsvariable ersetzen.
Ja, genau so werden die Effekte kombiniert. Es wird einfach alles in den Konfigurationsblock eingetragen. Dazwischen kann man beliebige Kommentare einfügen. Man muss nur darauf achten, dass die Nummerierung der LEDs stimmt so dass es nicht zu Überlappungen kommt. Aber keine Angst, bei einer Überlappung passiert nichts. Die entsprechenden LEDs werden dann von zwei verschiedenen Zeilen angesprochen was ziemlich verwirrend wird. Bei dem Schweißlicht könnte dann in den Pausen das TV Programm erscheinen. Darum ist es gut, wenn man bei einem „Richtigen“ Programm Symbolische Namen verwendet.
Es freut mich ganz besonders, dass es anfängt Spaß zu machen. Aber Vorsicht. Das kann schnell zur Sucht werden. Wenn das passiert können ja dann eine Selbsthilfegruppe gründen…
Hardi
Die 0 ist die Nummer der ersten LED des Hauses. Entsprechend hat die letzte LED die Nummer 9. Wenn Du ein weiteres Haus ansprechen willst dann beginnt dieses mit der Nummer 10. Das hast Du ganz richtig verstanden.Ingolf hat geschrieben: ↑Di 22. Jan 2019, 17:38Warum steht hier für LED eine 0 ? Wäre die letzte dann 9 ?House(0, SI_1, 2, 8, ROOM_DARK, ROOM_BRIGHT, ROOM_WARM_W, ROOM_TV0, NEON_LIGHT, ROOM_D_RED, ROOM_COL2, ROOM_WARM_W, ROOM_COL3, FIREB) // House with 10 rooms
D.h., wenn ich erweitern will, fange ich dann mit 10 an ?
Den Sinn von InCh habe ich auch noch nicht geschnallt, aber wenn es funktioniert, muß ich das ja auch nicht![]()
Die LED Nummern sind eine unschöne Geschichte bei dem Konzept. Wenn man ein Haus dazwischen schalten will, dann müssen die Nummern aller darauf folgenden angepasst werden. Darum verwende ich in dem Beispiel „03.Schwitches_Houses“ symbolische Namen. Dort wird mit
Code: Alles auswählen
#define HOUSE_A 0
In dem Beispiel „03.Schwitches_Houses“ wird auch der „InCh“ verwendet. Mit ihm kann man Steuern wann die Lichter in einem Haus An- oder Ausgehen sollen. Das kann man über einen Schalter, einen Helligkeitssensor oder was auch immer machen. Wenn man den Parameter „InCh“ nicht benutzen will und das Haus immer angeschaltet sein soll, dann trägt man hier „SI_1“ ein. Das ist eine besondere Eingangsvariable welche immer an ist. Später kann man diese noch durch eine andere Eingangsvariable ersetzen.
Das finde ich Super!
Ja, genau so werden die Effekte kombiniert. Es wird einfach alles in den Konfigurationsblock eingetragen. Dazwischen kann man beliebige Kommentare einfügen. Man muss nur darauf achten, dass die Nummerierung der LEDs stimmt so dass es nicht zu Überlappungen kommt. Aber keine Angst, bei einer Überlappung passiert nichts. Die entsprechenden LEDs werden dann von zwei verschiedenen Zeilen angesprochen was ziemlich verwirrend wird. Bei dem Schweißlicht könnte dann in den Pausen das TV Programm erscheinen. Darum ist es gut, wenn man bei einem „Richtigen“ Programm Symbolische Namen verwendet.
Es freut mich ganz besonders, dass es anfängt Spaß zu machen. Aber Vorsicht. Das kann schnell zur Sucht werden. Wenn das passiert können ja dann eine Selbsthilfegruppe gründen…
Hardi
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- InterRegioExpress (IRE)
- Beiträge: 261
- Registriert: So 30. Aug 2015, 10:15
- Nenngröße: H0
- Stromart: digital
- Steuerung: Z21
- Gleise: Piko A
- Wohnort: 39629 Bismark
- Alter: 65
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Ver 0.7.6
Moin, Moin,
"Selbsthilfegruppe" - selten so gelacht !
Grüße Ingo
"Selbsthilfegruppe" - selten so gelacht !



Grüße Ingo
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Verteilerplat
Hallo Kontraktfreudige,
die RGB LED Verteiler Platinen sind fertig und getestet!
Jetzt könnt Ihr loslegen!


Mit dieser Platine können 13 Häuser, Straßenlaterne, Soundmodule, Feuerwehrfahrzeuge, Ampeln, Lichtsignale, Motoren, Rauchgeneratoren, Andreaskreuze, Telefonzellen, Lagerfeuer, Dönerbuden und natürlich weitere Verteilerplatinen angeschlossen werden.
Diese Verteiler werden an verschiedenen Stellen unter der Anlage montiert so dass die Verbraucher mit kurzen Kabeln angeschlossen werden können. An die Ausgänge eines Verteilers können auch weitere Verteiler angeschlossen werden. Auf diese Weise kann man alle möglichen Verbraucher sehr einfach Anstecken. Ein Verbraucher kann aus einer oder aus vielen LEDs oder WS2811 Modulen bestehen.
Die Adresse einer LED ergibt sich automatisch aus der Position innerhalb der Kette.
Wenn man an einer Stelle weniger Konsumenten hat, dann kann man die Platine auch mit weniger Steckern bestücken. Der erste unbestückte Stecker muss dann auf der Unterseite der Platine über einen Lötjumper überbrückt werden damit die Daten richtig weitergeleitet werden. Das gilt auch für unbenutzte Anschlüsse. Jeder unbenutzte Anschluss muss mit einem Jumper überbrückt werden. Hier ein Bild der Jumper mit der ersten Verteilerplatine welche mit dem Soundmodul hergestellt wird:

Ein- und Ausgänge:
Die Platine hat auf der linken Seite eine Eingangsbuchse. Diese wird mit dem Arduino oder der vorangegangenen Verteilerplatine verbunden. Auf der Platine ist er mit „INP“ bezeichnet. Bei diesem Anschluss sind die ein und Ausgangspins vertauscht. Alle anderen Stecker sind Ausgänge. Anhand der Nummerierung kann man die Position innerhalb der Kette bestimmen. Hier nochmal das Bild mit den LED Nummern:

Man kann die Eingangsbuchse auch als RJ10 Stecker ausführen. Damit kann man beide Steckervarianten kombinieren. Auf dem RJ10 Verteiler ist ebenso ein Pfostenstecker vogesehen:
Stromverbrauch:
Die Stecker werden über Flachkabel miteinander verbunden. Diese haben einen sehr kleinen Querschnitt. Für 10-20 LEDs ist das noch kein Problem. Insbesondere weil die Leds nicht gleichzeitig und nicht mit voller Helligkeit leuchten. Aber man muss bedenken das 20 LEDs bis zu 1.1 A verbrauchen können! Das ist Brandgefährlich: viewtopic.php?f=21&t=165906
Darum ist es wichtig, dass man den Strom zwischen den Verteilerplatinen zusätzlich über dickere Leitungen führt. Das kann man über die gleichen Flachstecker machen:

Dazu löte ich einfach das dicke Kabel an die Schneid-Klemm Anschlüsse des Steckers an (+5V an Pin 1, GND an Pin 3). Achtung: Pin 2 und 4 müssen verbunden werden damit das Datensignal durchgeschleift wird.

Aus dem Befestigungsbügel habe ich etwas herausgefeilt so das man diesen wieder schließen kann:

Achtung: Darauf achten, dass sich die Versorgungsspannungskabel nicht die Datenanschlüsse berühren.
Generell solle man nicht ein zu starkes Netzteil verwenden. Theoretisch benötigen 256 RGB LEDs 14A. Das kann im Fehlerfall sehr schnell zu einem Brand führen! Ich denke, dass man mit 4A ziemlich weit kommt, wenn nicht alle LEDs gleichzeitig mit voller Helligkeit leuchten. In der Software kann man einstellen wieviel Strom die LEDs verbrauchen dürfen (Siehe Beispiel "20.Huge_Configuration"). Das Programm regelt dann die Helligkeit automatisch so ab, dass der Maximalstrom nicht überschritten wird. Auf diese Weise kann man ohne weiteres ein kleineres Netzteil einsetzen ohne dass man sich Gedanken über die gleichzeitig eingeschalteten LEDs machen muss.
Auf den Verteilerplatinen ist auch eine Möglichkeit zur Trennung der Stromkreise vorgesehen (J_POWER). Damit kann man verschiedene Stromkreise mit kleineren Spannungsquellen aufbauen. Allerdings gibt es „Berichte“ im Internet, dass es zu Ausfällen der LEDs kommen kann, wenn diese Daten aber keine Versorgungsspannung bekommen. Ich muss das mal untersuchen.
Kaufen:
Alf hat freundlicherweise 24 der roten Platinen für Euch bestellt und wird demnächst ausrechnen was die Platinen mit Verpackung und Versand kosten. Sagt Bescheid! Die ersten 4 Platinen sind schon weg.
Natürlich könnt Ihr Euch die Platinen auch selber bestellen. Alf, kannst Du den entsprechenden Link einstellen.
Stecker Bestellen:
Vielleicht kümmert sich auch jemand darum die Stecker und Buchsen zu bestellen. Dazu brauchen wir aber verbindliche Bestellungen. Für die 24 Platinen benötigt man bei Vollbestückung schon 336 Buchsen und mindestens so viele Stecker (ich würde 10% mehr bestellen, weil man schnell mal ein Kabel zu kurz gemacht hat oder es falsch gequetscht hat).
Habe ich noch was vergessen? Sicherlich, aber Ihr wisst ja wo Ihr mich findet…
Hardi
die RGB LED Verteiler Platinen sind fertig und getestet!
Jetzt könnt Ihr loslegen!


Mit dieser Platine können 13 Häuser, Straßenlaterne, Soundmodule, Feuerwehrfahrzeuge, Ampeln, Lichtsignale, Motoren, Rauchgeneratoren, Andreaskreuze, Telefonzellen, Lagerfeuer, Dönerbuden und natürlich weitere Verteilerplatinen angeschlossen werden.
Diese Verteiler werden an verschiedenen Stellen unter der Anlage montiert so dass die Verbraucher mit kurzen Kabeln angeschlossen werden können. An die Ausgänge eines Verteilers können auch weitere Verteiler angeschlossen werden. Auf diese Weise kann man alle möglichen Verbraucher sehr einfach Anstecken. Ein Verbraucher kann aus einer oder aus vielen LEDs oder WS2811 Modulen bestehen.
Die Adresse einer LED ergibt sich automatisch aus der Position innerhalb der Kette.
Wenn man an einer Stelle weniger Konsumenten hat, dann kann man die Platine auch mit weniger Steckern bestücken. Der erste unbestückte Stecker muss dann auf der Unterseite der Platine über einen Lötjumper überbrückt werden damit die Daten richtig weitergeleitet werden. Das gilt auch für unbenutzte Anschlüsse. Jeder unbenutzte Anschluss muss mit einem Jumper überbrückt werden. Hier ein Bild der Jumper mit der ersten Verteilerplatine welche mit dem Soundmodul hergestellt wird:

Ein- und Ausgänge:
Die Platine hat auf der linken Seite eine Eingangsbuchse. Diese wird mit dem Arduino oder der vorangegangenen Verteilerplatine verbunden. Auf der Platine ist er mit „INP“ bezeichnet. Bei diesem Anschluss sind die ein und Ausgangspins vertauscht. Alle anderen Stecker sind Ausgänge. Anhand der Nummerierung kann man die Position innerhalb der Kette bestimmen. Hier nochmal das Bild mit den LED Nummern:

Man kann die Eingangsbuchse auch als RJ10 Stecker ausführen. Damit kann man beide Steckervarianten kombinieren. Auf dem RJ10 Verteiler ist ebenso ein Pfostenstecker vogesehen:

Stromverbrauch:
Die Stecker werden über Flachkabel miteinander verbunden. Diese haben einen sehr kleinen Querschnitt. Für 10-20 LEDs ist das noch kein Problem. Insbesondere weil die Leds nicht gleichzeitig und nicht mit voller Helligkeit leuchten. Aber man muss bedenken das 20 LEDs bis zu 1.1 A verbrauchen können! Das ist Brandgefährlich: viewtopic.php?f=21&t=165906
Darum ist es wichtig, dass man den Strom zwischen den Verteilerplatinen zusätzlich über dickere Leitungen führt. Das kann man über die gleichen Flachstecker machen:

Dazu löte ich einfach das dicke Kabel an die Schneid-Klemm Anschlüsse des Steckers an (+5V an Pin 1, GND an Pin 3). Achtung: Pin 2 und 4 müssen verbunden werden damit das Datensignal durchgeschleift wird.

Aus dem Befestigungsbügel habe ich etwas herausgefeilt so das man diesen wieder schließen kann:

Achtung: Darauf achten, dass sich die Versorgungsspannungskabel nicht die Datenanschlüsse berühren.
Generell solle man nicht ein zu starkes Netzteil verwenden. Theoretisch benötigen 256 RGB LEDs 14A. Das kann im Fehlerfall sehr schnell zu einem Brand führen! Ich denke, dass man mit 4A ziemlich weit kommt, wenn nicht alle LEDs gleichzeitig mit voller Helligkeit leuchten. In der Software kann man einstellen wieviel Strom die LEDs verbrauchen dürfen (Siehe Beispiel "20.Huge_Configuration"). Das Programm regelt dann die Helligkeit automatisch so ab, dass der Maximalstrom nicht überschritten wird. Auf diese Weise kann man ohne weiteres ein kleineres Netzteil einsetzen ohne dass man sich Gedanken über die gleichzeitig eingeschalteten LEDs machen muss.
Code: Alles auswählen
FastLED.setMaxPowerInVoltsAndMilliamps(5, 1500); // limit the power used by the LEDs to 1.5A at 5V
Kaufen:
Alf hat freundlicherweise 24 der roten Platinen für Euch bestellt und wird demnächst ausrechnen was die Platinen mit Verpackung und Versand kosten. Sagt Bescheid! Die ersten 4 Platinen sind schon weg.
Natürlich könnt Ihr Euch die Platinen auch selber bestellen. Alf, kannst Du den entsprechenden Link einstellen.
Stecker Bestellen:
Vielleicht kümmert sich auch jemand darum die Stecker und Buchsen zu bestellen. Dazu brauchen wir aber verbindliche Bestellungen. Für die 24 Platinen benötigt man bei Vollbestückung schon 336 Buchsen und mindestens so viele Stecker (ich würde 10% mehr bestellen, weil man schnell mal ein Kabel zu kurz gemacht hat oder es falsch gequetscht hat).
Habe ich noch was vergessen? Sicherlich, aber Ihr wisst ja wo Ihr mich findet…
Hardi
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- InterRegioExpress (IRE)
- Beiträge: 261
- Registriert: So 30. Aug 2015, 10:15
- Nenngröße: H0
- Stromart: digital
- Steuerung: Z21
- Gleise: Piko A
- Wohnort: 39629 Bismark
- Alter: 65
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Platinen
Hallo Hardi,
Ich habe mir meine Häuschen, die noch nicht auf der Anlage installiert sind vorgesucht und mir Gedanken gemacht, wie befestige ich die LED´s.
Die Variante mit Pappe einkleben erschien mir zu aufwendig, warum nicht die LED´s hinter den Fenstern befestigen ?
Aber wie "abdichten" ?


Sollte für die meisten H0-Fenster passen, ansonsten gibt es ja auch breitere Tasten.
Die weiße Knete ist UHU patafix, um die LED etwas zu fixieren.
Vielleicht gefällt es ja jemandem so.
Hardi, eine große Bitte.
Ich sehe durch den Sketch 23b (Receiver) nicht durch.
Wie muss was wo eingetragen werden, wenn ich z.B. mit Adresse 30 Haus 1 mit 4 LED´s ein- ausschalten will, mit Adresse 31 Haus 2 mit 6 LED´s.
Mit Adresse 40 das Schweißlicht.
Könntest du mir das bitte erläutern ?
Schon mal Danke.
Grüße und schönes Wochenende
Ingo
Ich habe mir meine Häuschen, die noch nicht auf der Anlage installiert sind vorgesucht und mir Gedanken gemacht, wie befestige ich die LED´s.
Die Variante mit Pappe einkleben erschien mir zu aufwendig, warum nicht die LED´s hinter den Fenstern befestigen ?
Aber wie "abdichten" ?


Sollte für die meisten H0-Fenster passen, ansonsten gibt es ja auch breitere Tasten.
Die weiße Knete ist UHU patafix, um die LED etwas zu fixieren.
Vielleicht gefällt es ja jemandem so.
Hardi, eine große Bitte.
Ich sehe durch den Sketch 23b (Receiver) nicht durch.
Wie muss was wo eingetragen werden, wenn ich z.B. mit Adresse 30 Haus 1 mit 4 LED´s ein- ausschalten will, mit Adresse 31 Haus 2 mit 6 LED´s.
Mit Adresse 40 das Schweißlicht.
Könntest du mir das bitte erläutern ?
Schon mal Danke.
Grüße und schönes Wochenende
Ingo
-
- EuroCity (EC)
- Beiträge: 1054
- Registriert: Mo 28. Dez 2015, 13:07
- Nenngröße: H0
- Stromart: digital
- Steuerung: MS2 + IR, Eigenbau
- Gleise: Märklin C-Gleis
- Wohnort: Mainz
- Alter: 57
- Kontaktdaten:
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Platinen
Hallo Ingo,
Deine Fensterkästen gefallen mir außerordentlich gut. Dafür solltest Du den Goldenen Recycling Preis bekommen. Jetzt müsste man nur noch die Elektronik der Tastatur zum einlesen der Taster in einem Weichenstellpult verwenden.
Ich persönlich finde die Verkabelung mit Flachkabeln sehr praktisch. Das könnte man auch bei Deiner Lösung anwenden. Dazu könntest Du ein 7mm Loch in die Taste bohren und die LED von außen an die Taste kleben. Der Vorteil bei der Lösung ist, dass man die Kabel von einer LED zur nächsten führen kann. Man braucht keine Verbinder zwischen den LEDs.
Die RGB LEDs sind ziemlich Hell. Ich kann mir vorstellen, dass die momentan implementierten Zimmertypen zu hell sind, wenn die LES direkt nach außen zeigt. Aber dass kann man ja schnell ändern. Dazu gibt es den Befehl „Set_ColTab()“ mit dem man eigene Farben und Helligkeiten definieren kann. Im Beispiel „03.Switched_Houses“ wird das verwendet.
Wenn Dir die TV Simulation oder das Kammin Feuer zu hell ist, dann kann man das auch noch anpassen. Dazu ist Software ja da.
Der Kleber gefällt mir auch. Hab gleich mal eine Packung bestellt.
Doch jetzt zu Deiner RIESEN Bitte, aber sehr gut, dass Du fragst. Das ist noch nicht richtig (eigentlich gar nicht) erklärt und ziemlich kompliziert. Ich habe 4 Stunden gebraucht das nur halbwegs zu dokumentieren.
Generell gilt, dass die DCC Signale in die Eingangsvariablen der MobaLedLib eingelesen werden. Dort können sie von den verschiedensten Funktionen genutzt werden. Dazu haben fast alle Makros einen Parameter „InCh“ über den man die Eingangsvariable angibt.
Die DCC Kommandos können auf zwei verschiedene Arten ausgewertet werden. Vermutlich gibt es noch weitere Varianten, aber ich habe ja erst vor ein paar Tagen gelesen was die Abkürzung DCC überhaupt bedeutet (Muss aber schon wieder nachschauen „Digital Command Control“).
1. Momentan Funktion
Bei dieser Methode werden von einer DCC Adresse zwei Eingangsvariablen der Bibliothek gesteuert. Solange die Rote Taste gedrückt wird ist die erste Eingangsvariable aktiv. Wenn die Grüne Taste betätigt wird die zweite Variable. Beim Loslassen der Taste ist auch die Eingangsvariable wieder 0.
Diese Methode wird zur Ansteuerung der Licht Signale benutzt. Dazu wird zusätzlich die Funktion „InCh_to_TmpVar()“ benötigt welche mehrere Eingänge in eine Zahl umwandelt. Aber das ist eine Doktorarbeit für sich…
2. Umschalt Funktion
Hier steuert eine DCC Adresse nur eine Eingangsvariable der Bibliothek. Das ist die Funktion mit der man die Häuser ein und ausschalten kann. Hier wird die Grüne Taste zum Einschalten der Variable und die Rote Taste zum Ausschalten benutzt.
Das ist hoffentlich noch verständlich. Wenn nicht: Fragen …
Verwirrend wird es durch die verschiedenen Nummern. Bei DCC beginnt die Zählung mit 1. In einem C-Programm startet man üblicherweise mit der 0. Dann kommt noch dazu, dass eine DCC Adresse im ersten Fall zwei Eingangskanäle, im zweiten Fall nur einen Kanal belegt. Die Grenze zwischen den beiden Fällen kann man frei definieren. Außerdem könnte man noch Offsets verwenden. Dann wird nicht mit dem ersten DCC Kanal begonnen, sondern z.B. mit dem dreißigsten. So einen Offset gibt es auch noch für die Eingangsvariablen. Aber das habe ich zunächst einmal weggelassen.
Zum leichteren Verständnis habe ich eine ganze Menge Test LEDs in das Beispiel eingebaut. Sie Zeigen den Zustand der Eingangsvariablen. Für die „Momentan Funktion“ habe ich Rote und Grüne LEDs verwendet. Die „Umschalt Funktionen“ werden mit Blauer Farbe signalisiert. Die Test LEDs belegen die LED Nummer 24 bis 63.
Hier erst mal eine Zuordnungstabelle:
Die eigentlichen LEDs für Signale, Häuser und Schweißlicht liegen im Bereich 0 bis 23. So kann man das Beispiel auch mit einem kürzeren LED Stripe testen.
Hier die Zuordnung der DCC Adressen zu den Funktionen:
Mit dem DCC Kanal 11 schaltet man das erste Haus an. Hier wird sofort zufällig eine der drei Zimmer beleuchtet. Dann dauert es einige Zeit (Zwischen 50 und 150 Sekunden) bis das Licht ein einem Weiteren Zimmer an geht. Dieses Haus wird von zwei sparsamen Preisern bewohnt. Es sind nicht mehr als 2 Zimmer beleuchtet. Wenn sie zusammen vor der Flimmerkiste sitzen (Dritter Raum) dann sind die anderen Zimmer Dunkel. Natürlich kommt es auch vor das beide Bewohner in unterschiedlichen Zimmern sind.
Wenn das DCC Kommando „Rot“ kommt dann wird sofort ein Licht gelöscht damit man ein Feedback sieht. Falls eine zweite Lampe brennt, wird diese wieder nach 50 bis 150 Sekunden abgeschaltet. Die Zeiten kann man mit den Konstanten beeinflussen. Achtung sie müssen vor der #include "MobaLedLib.h" Zeile im Programm stehen.
Das zweite Haus wird entsprechend mit dem DCC Befehl 12 geschaltet. Dieses Gebäude beherbergt Büros mit mehreren Leuchtstofflampen welche nacheinander angehen. Es flackert einmal, wenn die ersten Röhren an gehen und dann ein weiteres Mal wen die „älteren“ Röhren zünden. Die Ersten Lampen erhellen den Raum nicht so sehr wie alle zusammen. Aber das ist ein Detail, das keinem auffällt.
Mit der DCC Adresse 13 kann das Schweißlicht aktiviert werden. Es Flackert aber nicht durchgängig, weil der Arbeiter ab und Zu das Werkstück wechselt oder die Schweißnaht überprüfen muss.
Das Beispiel habe ich mich nicht ganz an Deine Vorgaben gehalten (Damit Du zeigen kannst das Du verstanden hast wie es geht und das Programm entsprechend anpassen kannst.).
Nein, weil es mit meinen 64 LEDs einfacher zu Testen war… Ich wollte Lichtsignale und Häuser in Einem Beispiel zeigen. Wenn man nur eine der Funktionen nutzen will, dann kann man die Andere entsprechend auskommentieren oder löschen.
Die Konstante DCC_FIRST_TOGGLE_ID wird dann so gewählt, das der unbenutzte Bereich leer ist.
Ich hoffe ich konnte ein bisschen zeigen wie man DCC Signale in die Bibliothek einliest. Es ist zunächst einmal fürchterlich kompliziert, aber wenn man in kleinen Schritten vorgeht, dann klappt das schon. Und wenn nicht: Einfach fragen…
Gute N8…
Hardi
Deine Fensterkästen gefallen mir außerordentlich gut. Dafür solltest Du den Goldenen Recycling Preis bekommen. Jetzt müsste man nur noch die Elektronik der Tastatur zum einlesen der Taster in einem Weichenstellpult verwenden.
Ich persönlich finde die Verkabelung mit Flachkabeln sehr praktisch. Das könnte man auch bei Deiner Lösung anwenden. Dazu könntest Du ein 7mm Loch in die Taste bohren und die LED von außen an die Taste kleben. Der Vorteil bei der Lösung ist, dass man die Kabel von einer LED zur nächsten führen kann. Man braucht keine Verbinder zwischen den LEDs.
Die RGB LEDs sind ziemlich Hell. Ich kann mir vorstellen, dass die momentan implementierten Zimmertypen zu hell sind, wenn die LES direkt nach außen zeigt. Aber dass kann man ja schnell ändern. Dazu gibt es den Befehl „Set_ColTab()“ mit dem man eigene Farben und Helligkeiten definieren kann. Im Beispiel „03.Switched_Houses“ wird das verwendet.
Wenn Dir die TV Simulation oder das Kammin Feuer zu hell ist, dann kann man das auch noch anpassen. Dazu ist Software ja da.
Der Kleber gefällt mir auch. Hab gleich mal eine Packung bestellt.
Doch jetzt zu Deiner RIESEN Bitte, aber sehr gut, dass Du fragst. Das ist noch nicht richtig (eigentlich gar nicht) erklärt und ziemlich kompliziert. Ich habe 4 Stunden gebraucht das nur halbwegs zu dokumentieren.
Generell gilt, dass die DCC Signale in die Eingangsvariablen der MobaLedLib eingelesen werden. Dort können sie von den verschiedensten Funktionen genutzt werden. Dazu haben fast alle Makros einen Parameter „InCh“ über den man die Eingangsvariable angibt.
Die DCC Kommandos können auf zwei verschiedene Arten ausgewertet werden. Vermutlich gibt es noch weitere Varianten, aber ich habe ja erst vor ein paar Tagen gelesen was die Abkürzung DCC überhaupt bedeutet (Muss aber schon wieder nachschauen „Digital Command Control“).
1. Momentan Funktion
Bei dieser Methode werden von einer DCC Adresse zwei Eingangsvariablen der Bibliothek gesteuert. Solange die Rote Taste gedrückt wird ist die erste Eingangsvariable aktiv. Wenn die Grüne Taste betätigt wird die zweite Variable. Beim Loslassen der Taste ist auch die Eingangsvariable wieder 0.
Diese Methode wird zur Ansteuerung der Licht Signale benutzt. Dazu wird zusätzlich die Funktion „InCh_to_TmpVar()“ benötigt welche mehrere Eingänge in eine Zahl umwandelt. Aber das ist eine Doktorarbeit für sich…
2. Umschalt Funktion
Hier steuert eine DCC Adresse nur eine Eingangsvariable der Bibliothek. Das ist die Funktion mit der man die Häuser ein und ausschalten kann. Hier wird die Grüne Taste zum Einschalten der Variable und die Rote Taste zum Ausschalten benutzt.
Das ist hoffentlich noch verständlich. Wenn nicht: Fragen …
Verwirrend wird es durch die verschiedenen Nummern. Bei DCC beginnt die Zählung mit 1. In einem C-Programm startet man üblicherweise mit der 0. Dann kommt noch dazu, dass eine DCC Adresse im ersten Fall zwei Eingangskanäle, im zweiten Fall nur einen Kanal belegt. Die Grenze zwischen den beiden Fällen kann man frei definieren. Außerdem könnte man noch Offsets verwenden. Dann wird nicht mit dem ersten DCC Kanal begonnen, sondern z.B. mit dem dreißigsten. So einen Offset gibt es auch noch für die Eingangsvariablen. Aber das habe ich zunächst einmal weggelassen.
Zum leichteren Verständnis habe ich eine ganze Menge Test LEDs in das Beispiel eingebaut. Sie Zeigen den Zustand der Eingangsvariablen. Für die „Momentan Funktion“ habe ich Rote und Grüne LEDs verwendet. Die „Umschalt Funktionen“ werden mit Blauer Farbe signalisiert. Die Test LEDs belegen die LED Nummer 24 bis 63.
Hier erst mal eine Zuordnungstabelle:
Code: Alles auswählen
DCC Button InpCh Debug LED
~~~~ ~~~~~~~~~ ~~~~~ ~~~~~~~~~
1 Red 0 24 Red
1 Green 1 25 Green
2 Red 2 26 Red
2 Green 3 27 Green
: : : :
10 Red 18 42 Red
10 Green 19 43 Green
11 Red/Green 20 off/on 44 Blue
12 Red/Green 21 off/on 45 Blue
: : :
30 Red/Green 36 off/on 63 Blue
Hier die Zuordnung der DCC Adressen zu den Funktionen:
Code: Alles auswählen
DCC Output
~~~~~~~~ ~~~~~~~~~~~~~~~~
1 Red: Entry signal Hp0
1 Green: Entry signal Hp1
2 Red: Entry signal Hp2
2 Green: not used
3 Red: Departure signal Hp0
3 Green: Departure signal Hp1
4 Red: Departure signal Hp2
4 Green: Departure signal Hp0+Sh1
11 Red/Green: House with 3 rooms starting with LED 17. When it's turned on (Green) one random room is activated directly, the others are following later
12 Red/Green: Office building with 3 rooms with neon lights starting with LED 20.
13 Red/Green: Welding simulation LED 23
Wenn das DCC Kommando „Rot“ kommt dann wird sofort ein Licht gelöscht damit man ein Feedback sieht. Falls eine zweite Lampe brennt, wird diese wieder nach 50 bis 150 Sekunden abgeschaltet. Die Zeiten kann man mit den Konstanten
Code: Alles auswählen
#define HOUSE_MIN_T 50 // Minimal time [s] to the next event (1..255)
#define HOUSE_MAX_T 150 // Maximal random time [s] "
Das zweite Haus wird entsprechend mit dem DCC Befehl 12 geschaltet. Dieses Gebäude beherbergt Büros mit mehreren Leuchtstofflampen welche nacheinander angehen. Es flackert einmal, wenn die ersten Röhren an gehen und dann ein weiteres Mal wen die „älteren“ Röhren zünden. Die Ersten Lampen erhellen den Raum nicht so sehr wie alle zusammen. Aber das ist ein Detail, das keinem auffällt.
Mit der DCC Adresse 13 kann das Schweißlicht aktiviert werden. Es Flackert aber nicht durchgängig, weil der Arbeiter ab und Zu das Werkstück wechselt oder die Schweißnaht überprüfen muss.
Das Beispiel habe ich mich nicht ganz an Deine Vorgaben gehalten (Damit Du zeigen kannst das Du verstanden hast wie es geht und das Programm entsprechend anpassen kannst.).
Nein, weil es mit meinen 64 LEDs einfacher zu Testen war… Ich wollte Lichtsignale und Häuser in Einem Beispiel zeigen. Wenn man nur eine der Funktionen nutzen will, dann kann man die Andere entsprechend auskommentieren oder löschen.
Die Konstante DCC_FIRST_TOGGLE_ID wird dann so gewählt, das der unbenutzte Bereich leer ist.
Ich hoffe ich konnte ein bisschen zeigen wie man DCC Signale in die Bibliothek einliest. Es ist zunächst einmal fürchterlich kompliziert, aber wenn man in kleinen Schritten vorgeht, dann klappt das schon. Und wenn nicht: Einfach fragen…
Gute N8…
Hardi
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Haltet Euch unbedingt von diesen Seiten fern:
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
͏͏͏ viewtopic.php?f=7&t=165060
͏͏͏ https://wiki.mobaledlib.de/
sonst wird Eure Anlage niemals fertig…
Unsere Anlage findet Ihr unter meinem Profil bei „Webseite“
-
- InterRegioExpress (IRE)
- Beiträge: 261
- Registriert: So 30. Aug 2015, 10:15
- Nenngröße: H0
- Stromart: digital
- Steuerung: Z21
- Gleise: Piko A
- Wohnort: 39629 Bismark
- Alter: 65
Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: New Platinen
Hallo Hardy,
sorry, ich hatte aus gesundheitlichen Gründen eine "Schaffenspause".
Ich kann nur sagen "Uffff", da hast du dir aber viel Arbeit gemacht, Danke dafür.
Nach mehrmaligem Durchlesen glaube ich, den Faden gefunden zu haben...
Du verwendest, wenn ich es richtig verstanden habe, momentan nur die DCC-Adressen 1 bis 30 ?
Die nächsten Tage kommen weitere Nano´s, dann werde ich probieren.
Grüße Ingo
sorry, ich hatte aus gesundheitlichen Gründen eine "Schaffenspause".
Ich kann nur sagen "Uffff", da hast du dir aber viel Arbeit gemacht, Danke dafür.
Nach mehrmaligem Durchlesen glaube ich, den Faden gefunden zu haben...
Du verwendest, wenn ich es richtig verstanden habe, momentan nur die DCC-Adressen 1 bis 30 ?
Die nächsten Tage kommen weitere Nano´s, dann werde ich probieren.
Grüße Ingo