MobaLedLib: 768 LEDs, Servos, Sound, …………… Tageszeitung (siehe #4936)

Bereich für alle Themen rund um Modellbahn-Software, sowie der nötigen Hardware (PCs, Bildschirme, etc.).
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Hausanschl

#58

Beitrag von Hardi »

Hallo Pyromanen,

Feuer hat für mich etwas Faszinierendes. Geht es Euch auch so. Darum muss es natürlich auch auf einer Modelleisenbahn vorkommen. Das kann ein Lagerfeuer oder auch ein richtiges Feuer.

Mit der MobaLedLib kann man beides simulieren. Bei einem Lagerfeuer wird eine RGB LED verwendet. Für ein größeres Feuer wie in dem Video hier werden mehrere Leuchtdioden von der Bibliothek angesteuert. Zum Glück habe ich noch nie erleben müssen wie ein echtes Haus brennt. Ich hoffe, dass die Simulation des Programms so ähnlich aussieht wie in der Realität.

Haus und Feuerwehrfahrzeug soll auf unserer Anlage als weitere „Knopfdruck“ Aktion installiert werden.
Mit dem ersten Druck auf den Taster wird das Feuer „entzündet“. Der zweite Knopfdruck aktiviert den Rauchgenerator. Und mit dem dritten Druck auf den Taster kommt die Feuerwehr. Weil Kinder gerade an den Geräuschen Spaß haben kann man mit jedem weiteren Tastendruck eine andere MP3 Datei abrufen.

Im Video sieht man im Vordergrund das S3PO Modul welches die Geräusche erzeugt. Es ist genauso wie die LEDs über ein 4-poliges Kabel an die Verteilerplatine angeschlossen.

Die Platine auf der linken Seite liest die Taster ein. Sie kann bis zu 10 Taster abfragen und die darin enthaltenen LEDs ansteuern. Mehre dieser Schaltungen können über ein 8-poliges Kabel miteinander verbunden werden, wenn weitere Taster benötigt werden.

In der Mitte ist der Arduino Nano mit einem hier nicht benutzten CAN Modul. Er steuert die Lichter, den Sound und den Rauchgenerator und fragt die Tasten ab. Damit ist er aber keineswegs ausgelastet. Er kann problemlos noch weitere 200 LEDs versorgen.

Das Feuerwehrauto ist mit zwei WS2811 Modulen Bestückt welche die verschiedenen LEDs ansteuern. Die dazu verwendete Konfiguration wird in dem Beispiel „Macro_Fire_truck“ der Bibliothek vorgestellt.
Bild
Auf dem Bild sieht man drei der vier LEDs für Rücklicht und Blinker. Die Gehäuse der Leuchtdioden sind geschwärzt damit das Licht nur an den Lichtleiter abgegeben wird welcher über eine Bohrung in die LED gesteckt ist. Die dünnen Lackisolierten Drähte führen zu den Blaulichtern und den Frontscheinwerfern.
Ja, ich weiß man könnte das noch schöner machen…
Ich würde mich über Bilder von Euch freuen, die zeigen wie Ihr das gelöst habt. Gegenüber meiner Vorlage müsst Ihr euch sicher nicht schämen…


Die „Flammen“ und den Rauch erzeugt diese Konstruktion:
Bild

Bild

Mit den folgenden Makros wird all das generiert:

Code: Alles auswählen

#define Fire_truck(LED,    InCh)                                                                                       \
  Blink2    (LED+1, C2,    InCh, 500 ms, 500 ms, 50,  255) /* Vorderlicht Blinken Dunkel/Hell                       */ \
  BlueLight1(LED+1, C1,    InCh)                           /* Blaulicht rechts                                      */ \
  BlueLight2(LED+1, C3,    InCh)                           /* Blaulicht Links (Andere Periode damit nicht synchron) */ \
  Blink2    (LED,   C3,    InCh, 500 ms, 500 ms,  0,  255) /* Blinker hinten                                        */ \
  Const     (LED,   C1,    InCh,                  0,   25) /* Ruecklicht                                            */

#define Burning_House(LED0, B_LED, B_LED_Cx, InNr, TmpNr, Timeout)                                                     \
            PushButton_w_LED_0_3(B_LED, B_LED_Cx, InNr, TmpNr, 0, Timeout)                                             \
            Logic      (TmpNr+4,    TmpNr+3 AND InNr)        /* Sound is active when TmpNr+3 and the input = 1 */      \
            Logic      (TmpNr+2,    TmpNr+2 OR TmpNr+3)      /* TmpNr+2 is also active if TmpNr+3 is active */         \
            Logic      (TmpNr+1,    TmpNr+1 OR TmpNr+2)      /* TmpNr+1 is also active if TmpNr+2 is active */         \
            Fire       (LED0+1,     TmpNr+1, 5, 50)                                                                    \
            Const      (LED0+7, C1, TmpNr+2, 0,255) /* Rauch */                                                        \
            Const      (LED0+7, C3, TmpNr+2, 0,63)  /* Status LED Rauch */                                             \
            Fire_truck (LED0+8,     TmpNr+3)                                                                           \
            Sound_PlayRandom(LED0+0,TmpNr+4, 5)     /* Sound zufällig */                                               \
            Sound_Seq8(      LED0+0,TmpNr+0)        /* Sound aus (Stille.mp3) */
Das Programm dazu wird erst in der nächsten Version der Bibliothek enthalten sein.

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“
Benutzeravatar

ThKaS
CityNightLine (CNL)
Beiträge: 1679
Registriert: Do 28. Apr 2005, 08:37
Wohnort: München
Kontaktdaten:
Jamaika

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#59

Beitrag von ThKaS »

Guten Morgen Hardi

:gfm:

Das Thema Push-Button finde ich toll, würde aber gerne dazu eine Erweiterung vorschlagen, sehen wollen.
Kann man in Deine Lösung irgendwie DCC integrieren. So dass die NANOs direkt über DCC ansteuerbar werden und ggfls parallel zu möglichen Push-Buttons auch in eine PC-Steuerung integriert werden können.
Bodo hatte den Nano als DCC-Decoder genutzt. http://moba.noethlich.info/?page_id=583

Ich bin leider ein Programmier-DAU, so dass ich das nicht selbst verküpfen kann und auch nicht weiss, ob die Speicher- und Rechenkapazität des Nano da ausreicht.
lieben Gruss von südlich des Weisswurst-Äquators
Thomas

guckst: www.thkas-moba.de ‹(•¿•)› www.mucis.de

Bild

Mä-K-Gleis, Tams MC, Multi-Kulti Decoder, WDP
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#60

Beitrag von Hardi »

Hallo Thomas,

vielen Dank…
Die Integration von DCC währe sicherlich eine sehr schöne Sache. Ich habe mir auch schon Gedanken dazu gemacht.

Problematisch daran ist die Ansteuerung der LEDs. Die Datenleitung zu den WS281x Bausteinen muss mit einem sehr exakten Timing angesteuert werden. Damit dabei nichts schief geht müssen die Interrupts des Prozessors für eine gewisse Zeit (12ms bei 256 RGB LEDs) abgeschaltet werden. Wenn in dieser Zeit DCC Signale ankommen gehen diese verloren.

Ich habe mich noch gar nicht mit dem DCC Protokoll und der Arduino Bibliothek beschäftigt. Wenn die DCC Signale periodisch widerholt werden, dann ist es vielleicht nicht so schlimm, wenn man mal eine Botschaft verpasst solange sie innerhalb von kurzer Zeit wiederholt wird.
Beim einlesen der Signale einer Infrarot Fernbedienung hat man das gleiche Problem. Hier prüft das Programm, bevor es die LEDs mit neuen Daten versorgt, ob gerade Daten per Infrarot ankommen. Wenn ja, dann wird gewartet bis die IR Daten vollständig empfangen wurden. Hier funktioniert das ganz gut.

Wenn der Empfang der DCC Signale auf diese weise nicht möglich ist, dann muss man in den sauren Apfel beißen und einen weiteren Arduino einsetzen (Was für eine Verschwendung).
Aber vielleicht ist das auch die bessere Lösung. So können einfacher zwei Leute an dem Problem arbeiten.

Ich frag mal bei Bodo nach.

Hardi
Zuletzt geändert von Hardi am Fr 18. Jan 2019, 00:02, 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“

TecnoWorld
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:
Spanien

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#61

Beitrag von TecnoWorld »

Hardi hat geschrieben: So 13. Jan 2019, 10:01 Problematisch daran ist die Ansteuerung der LEDs. Die Datenleitung zu den WS281x Bausteinen muss mit einem sehr exakten Timing angesteuert werden. Damit dabei nichts schief geht müssen die Interrupts des Prozessors für eine gewisse Zeit (12ms bei 256 RGB LEDs) abgeschaltet werden. Wenn in dieser Zeit DCC Signale ankommen gehen diese verloren.
Nun, dann programmiere es doch anders. Die LEDs macht man mit DMA und SPI, damit hat der Prozessor 0% Auslastung und steht zu 100% anderen Aufgaben zur Verfügung. Z.b. Protokollen.

Ich habe das ja in meinem System RailSolution so gemacht.

Damit kann man die Module ja mittels DCC, XpressNet, Lodi commander, iTrain oder RocRail ansteuern...

Also gehen tut das ;-)
__________________________
LG aus Andalusien.
RailSolution - das Lichtprojekt von Modellbahnern für die Modellbahn

Erich Müller
ICE-Sprinter
Beiträge: 6328
Registriert: Do 3. Dez 2015, 20:53
Nenngröße: H0
Stromart: digital
Gleise: Mittelleiter
Wohnort: jottweedee

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#62

Beitrag von Erich Müller »

Hallo,

vergebt einem Ahnungslosen, dass er sich einmischt, aber dazu hätte ich dann doch einen Gedanken:

- die Feuerszenerie wird im aktuellen Zustand durch einen Momentkontakt gesteuert.
- Weichendecoder für Doppelspulenantriebe (WeichEi beispielsweise) geben Momentkontakt für Sekundenbruchteile und können über Digitalprotokoll angesprochen werden.

Kann man die zwei nicht verbinden, nötigenfalls mittels Optokoppler?

Klar, DCC in die Lichtelektronik implementieren ist eleganter, aber ginge es so nicht auch? Man muss ja nicht immer das Rad neu erfinden.
Freundliche Grüße
Erich

„Es hat nie einen Mann gegeben, der für die Behandlung von Einzelheiten so begabt gewesen wäre. Wenn er sich mit den kleinsten Dingen abgab, so tat er das in der Überzeugung, daß ihre Vielheit die großen zuwege bringt.“
Friedrich II. über Fr. Wilhelm I.

Railcar
InterRegioExpress (IRE)
Beiträge: 341
Registriert: Do 15. Nov 2018, 09:41
Alter: 68

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#63

Beitrag von Railcar »

Hallo,
ich könnte mir gut vorstellen das Franz-Peters (Microbahner) Arduino Eigenbau Decoder dafür geeignet ist.
viewtopic.php?f=5&t=144916#p1635681

Da gibt es auch schon einige Platinenentwürfe für: https://www.stummiforum.de/viewtopic.ph ... 0#p1858079
Weichendecoder für Doppelspulenantriebe (WeichEi beispielsweise) geben Momentkontakt für Sekundenbruchteile und können über Digitalprotokoll angesprochen werden.
Das könnte doch jeder beliebige Ausgang sein der von High/Low, Low/High umschaltet. Wenn die Schaltzeit nicht reicht könnte man einen als Spulenantrieb definieren Ausgang nehmen, bei dem sich dann auch die Schaltzeit (im mSec Bereich) einstellen lässt.

Ein Eigenbaudecoder der auch noch Softwaremäßig angepasst werden kann erscheint mir günstiger als ein "Kaufdecoder".

Nur mal so angedacht.

Ulrich
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#64

Beitrag von Hardi »

Hallo Ingolf,
TecnoWorld hat geschrieben: So 13. Jan 2019, 11:41 Nun, dann programmiere es doch anders. Die LEDs macht man mit DMA und SPI, damit hat der Prozessor 0% Auslastung und steht zu 100% anderen Aufgaben zur Verfügung. Z.b. Protokollen.

Ich habe das ja in meinem System RailSolution so gemacht.

Damit kann man die Module ja mittels DCC, XpressNet, Lodi commander, iTrain oder RocRail ansteuern...

Also gehen tut das ;-)
Ich steure die LEDs nicht selber an. Dazu verwende ich die FastLED Bibliothek welche sehr schnell und umfangreich ist. Die Autoren haben unendlich viel Zeit und Herzblut in das Projekt gesteckt.

Aber Du hast Recht, es geht sicherlich noch besser. Aber ich traue mir das nicht zu.

Wenn Du Deine Lösung für den Arduino veröffentlichen willst, dann her damit. Es würde sicherlich vielen Projekten helfen.

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“
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#65

Beitrag von Hardi »

Hallo Erich,
Erich Müller hat geschrieben: So 13. Jan 2019, 12:59 Hallo,

vergebt einem Ahnungslosen, dass er sich einmischt, aber dazu hätte ich dann doch einen Gedanken:

- die Feuerszenerie wird im aktuellen Zustand durch einen Momentkontakt gesteuert.
- Weichendecoder für Doppelspulenantriebe (WeichEi beispielsweise) geben Momentkontakt für Sekundenbruchteile und können über Digitalprotokoll angesprochen werden.

Kann man die zwei nicht verbinden, nötigenfalls mittels Optokoppler?

Klar, DCC in die Lichtelektronik implementieren ist eleganter, aber ginge es so nicht auch? Man muss ja nicht immer das Rad neu erfinden.
Oftmals entstehen die besten Ideen, wenn man mal ganz anders an eine Sache herangeht.

Ja, es wäre möglich, einfach einen Optokoppler einzusetzen. Das währe kompatibel zu jeder beliebigen Steuerung und der entsprechenden Software. Wenn man nur wenige Funktionen steuern will ist das sicherlich die beste Lösung.

Bei den Sound Modulen mache ich das so ähnlich. Elegant währe es, wenn man das Protokoll der WS281x Module einlesen wurde und dann über einen Prozessor die Sound Module ansteuern würde. Das war mir aber zu aufwändig. Darum habe ich einfach ein WS2811 Modul, zwei Widerstände und Kondensatoren zur Filterung verwendet und rufe damit die Sounds ab. Ist nicht die Elegante Lösung, aber es geht…

EDIT: 29.03.20: Achtung das ist ein vorläufiger Schaltplan. Er stimmt nicht mit der später erstellten Sound Platine überein! Die richtigen Plan gibt es hier: https://github.com/Hardi-St/MobaLedLib_ ... TF-16P.zip
Bild

Trotzdem reizt es mich die DCC Signale einzulesen. Insbesondere weil es öffentlich verfügbare Bibliotheken dafür gibt.

Es ist wohl auch möglich die WS281x Signale mit einem Arduino zu lesen. „mcmobby“ schreibt das hier: https://forum.arduino.cc/index.php?PHPS ... msg3686756 (#4 und 7) aber solange das nicht öffentlich zugänglich ist bringt uns das nicht weiter.

Hardi
Zuletzt geändert von Hardi am So 29. Mär 2020, 14:55, 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“
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#66

Beitrag von Hardi »

Hallo Ulrich,
Railcar hat geschrieben: So 13. Jan 2019, 14:40 ich könnte mir gut vorstellen das Franz-Peters (Microbahner) Arduino Eigenbau Decoder dafür geeignet ist.
viewtopic.php?f=5&t=144916#p1635681
:
Ein Eigenbaudecoder der auch noch Softwaremäßig angepasst werden kann erscheint mir günstiger als ein "Kaufdecoder".
Da kann ich 100% zustimmen. Ich hab auch schon seit einiger Zeit den entsprechenden Optokoppler hier liegen. Aber die Zeit dazu Fehlt.

Gemeinsam kriegen wir das hin!!

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“

TecnoWorld
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:
Spanien

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#67

Beitrag von TecnoWorld »

Hardi hat geschrieben: So 13. Jan 2019, 15:16 Hallo Ingolf,
Wenn Du Deine Lösung für den Arduino veröffentlichen willst, dann her damit. Es würde sicherlich vielen Projekten helfen.
Nun, ich benutze keinerlei Frameworks. weder Arduino noch andere. Alles rein bare metal in Assembler und C++

Da ich arduino nicht kenne, kann ich nichts dazu sagen. Aber ich kann dir den Source geben. Ist für die ATSAMC21 Prozessoren.

LG,
Ingolf
__________________________
LG aus Andalusien.
RailSolution - das Lichtprojekt von Modellbahnern für die Modellbahn
Benutzeravatar

ThKaS
CityNightLine (CNL)
Beiträge: 1679
Registriert: Do 28. Apr 2005, 08:37
Wohnort: München
Kontaktdaten:
Jamaika

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Hausanschl

#68

Beitrag von ThKaS »

Hardi hat geschrieben: So 13. Jan 2019, 01:38 .......
Mit den folgenden Makros wird all das generiert:

Code: Alles auswählen

#define Fire_truck(LED,    InCh)                                                                                       \
  Blink2    (LED+1, C2,    InCh, 500 ms, 500 ms, 50,  255) /* Vorderlicht Blinken Dunkel/Hell                       */ \
  BlueLight1(LED+1, C1,    InCh)                           /* Blaulicht rechts                                      */ \
  BlueLight2(LED+1, C3,    InCh)                           /* Blaulicht Links (Andere Periode damit nicht synchron) */ \
  Blink2    (LED,   C3,    InCh, 500 ms, 500 ms,  0,  255) /* Blinker hinten                                        */ \
  Const     (LED,   C1,    InCh,                  0,   25) /* Ruecklicht                                            */

#define Burning_House(LED0, B_LED, B_LED_Cx, InNr, TmpNr, Timeout)                                                     \
            PushButton_w_LED_0_3(B_LED, B_LED_Cx, InNr, TmpNr, 0, Timeout)                                             \
            Logic      (TmpNr+4,    TmpNr+3 AND InNr)        /* Sound is active when TmpNr+3 and the input = 1 */      \
            Logic      (TmpNr+2,    TmpNr+2 OR TmpNr+3)      /* TmpNr+2 is also active if TmpNr+3 is active */         \
            Logic      (TmpNr+1,    TmpNr+1 OR TmpNr+2)      /* TmpNr+1 is also active if TmpNr+2 is active */         \
            Fire       (LED0+1,     TmpNr+1, 5, 50)                                                                    \
            Const      (LED0+7, C1, TmpNr+2, 0,255) /* Rauch */                                                        \
            Const      (LED0+7, C3, TmpNr+2, 0,63)  /* Status LED Rauch */                                             \
            Fire_truck (LED0+8,     TmpNr+3)                                                                           \
            Sound_PlayRandom(LED0+0,TmpNr+4, 5)     /* Sound zufällig */                                               \
            Sound_Seq8(      LED0+0,TmpNr+0)        /* Sound aus (Stille.mp3) */
.....
Moin Hardi,
jetzt dachte ich, ich kann einfach ´mal das Feuer (Fire) simulieren .... aber bei dem Regen hier bei uns geht das einfach nicht an.

Was muss ich denn machen, damit ich nur die 5 RGB-LEDs zum Feuerchen erwecken kann? Die TmpNr ist ja ein Auslesen aus der push-button-aktion, oder?
lieben Gruss von südlich des Weisswurst-Äquators
Thomas

guckst: www.thkas-moba.de ‹(•¿•)› www.mucis.de

Bild

Mä-K-Gleis, Tams MC, Multi-Kulti Decoder, WDP
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#69

Beitrag von Hardi »

Hallo Ingolf,
TecnoWorld hat geschrieben: So 13. Jan 2019, 16:39 Nun, ich benutze keinerlei Frameworks. weder Arduino noch andere. Alles rein bare metal in Assembler und C++

Da ich arduino nicht kenne, kann ich nichts dazu sagen. Aber ich kann dir den Source geben. Ist für die ATSAMC21 Prozessoren.
Ich habe es befürchte. Die Assembler Sourcen helfen uns nicht weiter. Schade, trotzdem Danke für das Angebot.
Die ATSAMC21 Prozessoren spielen aber auch in einer ganz anderen Liga (Hab gerade mal Googeln müssen was das für Teile sind). Ich vermute das sie trotzdem nicht Teurer sind als ein Arduino.

Mir gefällt an der Arduino Programmierung, dass sie so unendlich wenig Ressourcen haben. 32 KByte FLASH und nur 2 KByte RAM. Das zweite Tolle ist die aktive Community.

Schaue Dir mal den Arduino an. Mir macht es richtig Spaß damit zu basteln. Anfangs Dachte ich die IDE ist schrecklich primitiv, aber auch das ist gut durchdacht und auf das absolut nötige reduziert. Die Arduino Programmierung ist so einfach, dass wirklich jeder der einen Texteditor bedienen kann und sich im Internet zurecht findet damit schnell zum Ziel kommt. Dazu kommen die einfach zu benutzenden Beispiele.
Ich denke das der Arduino gerade für die Stummis genau das richtige ist.

Die Programmierung ist auch für Fortgeschrittene interessant. Das Arduino Projekt verwendet den gcc Compiler. Damit kann man auch Anspruchsvolle Dinge machen und diese anderen zur Verfügung stellen.

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“
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Hausanschl

#70

Beitrag von Hardi »

Hallo Thomas,

ich hoffe Du bist inzwischen nicht erfroren…
ThKaS hat geschrieben: So 13. Jan 2019, 16:53 jetzt dachte ich, ich kann einfach ´mal das Feuer (Fire) simulieren .... aber bei dem Regen hier bei uns geht das einfach nicht an.

Was muss ich denn machen, damit ich nur die 5 RGB-LEDs zum Feuerchen erwecken kann? Die TmpNr ist ja ein Auslesen aus der push-button-aktion, oder?
Du hast Recht. Die TmpNr beschreibt eine Temporäre Variable welche von der „Push Button“ Aktion eingeschaltet wird. Aber Du kannst anstelle der Temporären Variable die eine Spezial Variable „SI_1“ benutzen. Diese Variable ist immer 1.
Das sieht dann so aus:

Code: Alles auswählen

 
MobaLedLib_Configuration()
  {
  Fire(0, SI_1, 9, 100)
  EndCfg // End of the configuration
  };
Gerade habe ich festgestellt, das die Fire() Funktion mit mehr als 7 LEDs ein Problem hat. Das schaue ich mir gleich mal an.

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“

speedy200
EuroCity (EC)
Beiträge: 1368
Registriert: Fr 3. Feb 2006, 11:19
Wohnort: Ulm

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#71

Beitrag von speedy200 »

Hallo Hardi,

kann man nicht die Ausgänge des Arduino DCC auf die Tasteingänge Deiner MobaLed setzen?

Würde man zwei Arduinos benötigen, ist ja aber kein Kostenfaktor mehr.

Die Taster parallel zum DCC Arduino, dann kann man von beiden Seiten steuern. Tasten und DCC

Grüße
speedy
Märklin, C-Gleis, Intellibox, Bastler...
Benutzeravatar

Bodo
InterCityExpress (ICE)
Beiträge: 2368
Registriert: Do 28. Apr 2005, 08:59
Nenngröße: H0
Stromart: digital
Steuerung: IB1 & CS2
Gleise: C-Gleis
Kontaktdaten:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#72

Beitrag von Bodo »

Hallo zusammen,

habe den Eintrag jetzt erst nach Hardis PN gesehen ...
Hardi hat geschrieben: So 13. Jan 2019, 10:01 Hallo Thomas,

vielen Dank…
Die Integration von DCC währe sicherlich eine sehr schöne Sache. Ich habe mir auch schon Gedanken dazu gemacht.

Problematisch daran ist die Ansteuerung der LEDs. Die Datenleitung zu den WS281x Bausteinen muss mit einem sehr exakten Timing angesteuert werden. Damit dabei nichts schief geht müssen die Interrupts des Prozessors für eine gewisse Zeit (12ms bei 256 RGB LEDs) abgeschaltet werden. Wenn in dieser Zeit DCC Signale ankommen gehen diese verloren.
jetzt habe ich noch mal etwas gegoogelt und rumprobiert und bin mir nicht mehr sicher, ob die Wiederholungen wirklich genormt sind. Als Zentrale habe ich eine Märklin MS2 (Weichenformat auf DCC) benutzt und auf Grundlage der Beispiel-Sketches mal einen "bösen" Weichen-Dekoder gebaut.

Code: Alles auswählen

if (  wAddr == weichenAdr[0] ) {
    if ( OutputAddr & 0x1 ) {
      digitalWrite(13, HIGH);
      delay(100);                      // Blockiert den Prozessor !        
      digitalWrite(13, LOW);
    }
    else {
      digitalWrite(13, LOW);
    }
  }
Wenn ich delay(>200) setze, blinkt die LED beim Schaltbefehl einmal, setze ich delay(100), blinkt sie zuverlässig zweimal - irgendwo dazwischen ist der Bereich, wo der wiederholte Schaltbefehl verloren geht. Vielleicht sind es ja auch mehr Wiederholungen - aber wenn man den delay noch viel kleiner macht, sieht man ja irgendwann auch nix mehr blinken.

In die Diskussion werfe ich neben der Frage nach dem Timing auch noch mal die Frage nach den Timern des Prozessors - Franz-Peter (microbahner) hatte ja mit seinen MoBaTools anfangs genau das Problem, dass sie den gleichen Timer wie die NMRADCC-Library verwendeten.

Wenn ich noch irgendwas unabhängig von den LED-Modulen testen kann, tue ich das gerne …

Viele Grüße, Bodo

PS: Die Ausgänge eines zweiten (DCC-)Arduinos über Optokoppler auf die Tastereingänge des ersten (LED-)Arduinos zu legen, wäre natürlich eine triviale Lösung und dürfte problemlos funktionieren … wäre dann ein "DDC-Eingabe-Modul" für das MoBaLED-System.
Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#73

Beitrag von Hardi »

Hallo Speedy,
speedy200 hat geschrieben: So 13. Jan 2019, 18:55 kann man nicht die Ausgänge des Arduino DCC auf die Tasteingänge Deiner MobaLed setzen?

Würde man zwei Arduinos benötigen, ist ja aber kein Kostenfaktor mehr.
Ja, das ginge sicherlich. Aber es geht noch viel einfacher. Die beiden Arduinos können z.B. über eine serielle Verbindung miteinander reden. Dazu benötigt man nur zwei Leitungen zwischen den Arduinos und ein paar Zeilen Programmkode. Auf diese Weise können dann beliebig viele verschiedene Signale ausgetauscht werden.

Im Internet findet man dazu viele Beispiele. Das gefällt mir so an dem Arduino. Für alles gibt es eine Lösung…
Hier einfach mal eine Möglichkeit:
https://robotic-controls.com/learn/ardu ... munication

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“
Benutzeravatar

ThKaS
CityNightLine (CNL)
Beiträge: 1679
Registriert: Do 28. Apr 2005, 08:37
Wohnort: München
Kontaktdaten:
Jamaika

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Hausanschl

#74

Beitrag von ThKaS »

Hardi hat geschrieben: So 13. Jan 2019, 18:50 Hallo Thomas,

ich hoffe Du bist inzwischen nicht erfroren…
...... Das sieht dann so aus:

Code: Alles auswählen

 
MobaLedLib_Configuration()
  {
  Fire(0, SI_1, 9, 100)
  EndCfg // End of the configuration
  };
Gerade habe ich festgestellt, das die Fire() Funktion mit mehr als 7 LEDs ein Problem hat....
MoinHardi
hat geklappt. Mir ist jetzt warm :)

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?
lieben Gruss von südlich des Weisswurst-Äquators
Thomas

guckst: www.thkas-moba.de ‹(•¿•)› www.mucis.de

Bild

Mä-K-Gleis, Tams MC, Multi-Kulti Decoder, WDP
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#75

Beitrag von Hardi »

Hallo Bodo,

vielen Dank für den Test. Ich denke, dass die Lösung mit zwei Arduinos am schnellsten zum Ziel führt, auch wenn es mich ärgert, wenn dadurch zusätzliche Kosten von 1.77€ für den zweiten Nano entstehen.

Wenn Du Zeit hast, dann könntest Du ja mal ein Programm schreiben welches erkannte DCC Zubehörbefehle auf der seriellen Schnittstelle Ausgibt. Das könnte man zunächst am PC auswerten und dann direkt mit dem LED Arduino verbinden.

Wenn Du zusätzlich noch den Empfangszeitpunkt ausgibst „millis()“, dann sieht man auch gleich ob und mit welcher Periode die Befehle wiederholt werden.

Ich schau gleich mal wo meine Optokoppler sind. Der Tag hat noch drei Stunden…

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“
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#76

Beitrag von Hardi »

Hallo Zusammen,

ich habe den Fehler im Feuer Algorithmus gefunden. Da hab ich mal ohne zu denken eine kleine Verbesserung einbauen wollen…
Bei 7 LEDs (wie im Märchen) hat das gut funktioniert. Aber nicht bei mehr als 7 LEDs.

In der nächsten Version der Bibliothek werde ich das verbessern. Wer jetzt schon ein größeres Feuer entfachen dem schicke ich gerne eine Zwischenversion der Bibliothek zum Testen.

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“
Benutzeravatar

Threadersteller
Hardi
EuroCity (EC)
Beiträge: 1185
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:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#77

Beitrag von Hardi »

Hallo Bodo,
Hardi hat geschrieben: So 13. Jan 2019, 21:03 Hallo Bodo,

:
:
Ich schau gleich mal wo meine Optokoppler sind. Der Tag hat noch drei Stunden…

Hardi
Ich habe versagt. Der erste Test des DCC Empfangs funktioniert erst jetzt. 1.5 Stunden zu spät ;-( Aber zu meiner Entschuldigung: Ich hab erst um 23 Uhr angefangen. Mit Hilfe Deiner und der Dokumentation von Franz-Peter ist es mir gelungen DCC Zubehörbefehle zu empfangen und auf dem Bildschirm auszugeben. Dazu habe ich einfach das NmraDccAccessoryDecoder_1.ino Beispiel benutzt.

Meine MS2 wiederholt den DCC Einschaltbefehl drei Mal, den Ausschaltbefehl ein Mal mit einer Periode von 8-9ms. Aber das sind nur die allerersten Beobachtungen. Die Zahl vor dem "notifyDccAccTurnoutOutput" ist die millis() Ausgabe welche ich hinzugefügt hab.

Code: Alles auswählen

notifyDccAccState: 20,5,6,8
notifyDccAccTurnoutBoard: 5,3,0,1
63128  notifyDccAccTurnoutOutput: 20,0,1
notifyDccAccState: 20,5,6,8
notifyDccAccTurnoutBoard: 5,3,0,1
63136  notifyDccAccTurnoutOutput: 20,0,1
notifyDccAccState: 20,5,6,8
notifyDccAccTurnoutBoard: 5,3,0,1
63145  notifyDccAccTurnoutOutput: 20,0,1
notifyDccAccState: 20,5,6,8
notifyDccAccTurnoutBoard: 5,3,0,1
63154  notifyDccAccTurnoutOutput: 20,0,1
notifyDccAccState: 20,5,6,0
notifyDccAccTurnoutBoard: 5,3,0,0
63414  notifyDccAccTurnoutOutput: 20,0,0
notifyDccAccState: 20,5,6,0
notifyDccAccTurnoutBoard: 5,3,0,0
63422  notifyDccAccTurnoutOutput: 20,0,0 
Das muss ich mir „Heute Abend“ noch mal in ruhe anschauen…

Vielen Dank Euch allen, dass es mit Eurer Hilfe so einfach ist mal schnell ein paar DCC Signale zu lesen!

Damit sollte die Integration von DCC in die MobaLedLib kein Problem mehr sein.

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“
Benutzeravatar

Bodo
InterCityExpress (ICE)
Beiträge: 2368
Registriert: Do 28. Apr 2005, 08:59
Nenngröße: H0
Stromart: digital
Steuerung: IB1 & CS2
Gleise: C-Gleis
Kontaktdaten:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#78

Beitrag von Bodo »

Hallo Hardy,
Hardi hat geschrieben: So 13. Jan 2019, 20:48 Hallo Speedy,
speedy200 hat geschrieben: So 13. Jan 2019, 18:55 kann man nicht die Ausgänge des Arduino DCC auf die Tasteingänge Deiner MobaLed setzen?

Würde man zwei Arduinos benötigen, ist ja aber kein Kostenfaktor mehr.
Ja, das ginge sicherlich. Aber es geht noch viel einfacher. Die beiden Arduinos können z.B. über eine serielle Verbindung miteinander reden. Dazu benötigt man nur zwei Leitungen zwischen den Arduinos und ein paar Zeilen Programmkode. Auf diese Weise können dann beliebig viele verschiedene Signale ausgetauscht werden.
spontan hätte ich da jetzt Zweifel, dass das bei abgeschalteten Interrupts funktioniert ;-). Wenn das Timing bei den LEDs so kritisch ist, dass die Interrupts abgeschaltet werden müssen, dann kommt m.E. nur eine aktive Abfrage von externen Zuständen in Frage, aber keine Empfangstechnik, die in Echtzeit reagieren muss.

Die Idee mit der Protokollierung auf dem Seriellen Monitor ist gut und auch für andere Zwecke hilfreich ... das werde ich auch mal testen.

Viele Grüße, Bodo
Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen

Railcar
InterRegioExpress (IRE)
Beiträge: 341
Registriert: Do 15. Nov 2018, 09:41
Alter: 68

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#79

Beitrag von Railcar »

Hi,
also ich weiß nicht ob es ratsam ist auch noch das MobaLeds Ein-Aus-Knöpfchen-Drück-Signal :wink: über die DCC Leitungen zu schalten. Von der Definition her ist DCC als reines Fahrsignal gedacht und wird sowieso schon von vielen für Signale und Weichen zweckentfremdet. Meiner Meinung nach bringt das nur zusätzlichen, überflüssigen Trafic auf die Leitung. Dann doch lieber an das MobaLed Modul einen Eingang (über Opto-Koppler) an den dann jeder das anschliessen möchte was er will.
Davon den DCC Encoder Teil mit auf die MobaLed latine zu setzen würde ich absehen. Wenn jemand nun Loconet zum schalten (zur Signalverteilung) nutzen möchte, was dann?
Lieber einen Optokopler isolierten Eingang am MobaLed Modul an den ich dann anschliessen kann was ich möchte.

@Bodo
Du hast doch so etwas ähnliches auf der Decoderplatine, der DCC Teil ist bei dir doch steckbar, so eine ähnliche Lösung für MobaLed?

Und warum keinen zweiten Arduino (Nano), wer 70 oder 80 Euro für einen popeligen DCC Weichendecoder ausgibt, wird doch auch 3 Euro für nen Nano erübrigen können?!
Die Platine gibts für n Appel und n Ei beim freundlichen Chinesen (ich weiss, Bodo, du bestellst bei Aisler :wink: ) und die Bauteile sind Pfennigbeträge.

Ulrich
Benutzeravatar

MicroBahner
Metropolitan (MET)
Beiträge: 2636
Registriert: Mi 28. Nov 2012, 14:24
Nenngröße: H0
Stromart: analog DC
Steuerung: Microprozessor-Eigenbau
Gleise: Tillig
Wohnort: Mittelfranken
Alter: 70

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#80

Beitrag von MicroBahner »

Hallo,
Railcar hat geschrieben: Mo 14. Jan 2019, 10:24 Von der Definition her ist DCC als reines Fahrsignal gedacht und wird sowieso schon von vielen für Signale und Weichen zweckentfremdet. Meiner Meinung nach bringt das nur zusätzlichen, überflüssigen Trafic auf die Leitung.
Das ist so nicht ganz richtig. Die Ansteuerung von Signalen und Weichen ist integraler Bestandteil der DCC-Definitionen (Zubehör-Telegramme). Das bringt auch nicht großartig mehr traffic auf die Leitungen, da diese Telegramme nicht ständig wiederholt werden.
Kritischer ist es, wenn ein Funktionsdecoder für solche Zwecke benutzt wird. Dafür werden Fahr-Telegramme genutzt, die ständig wiederholt werden, und dann wirklich den traffic auf der Leitung erhöhen.

Hardi hatte mich per Mail angesprochen, und da habe ich ihm schon geschrieben, dass ich den Empfang von DCC-Signalen ( oder ganz allgemein Interruptbasierten Datenaustausch ) kritisch sehe, wenn die Interrupts so lange gesperrt werden müssen. Wobei seriell sicher nicht so kritisch ist, wie DCC, aber dann nur mit sehr niedrigen Baudraten ( 9600 Baud erzeugt schon ca. alle 1ms einen Interrupt ). Man muss sich auch klar sein, das selbst micros() und millis() in diesem Fall nicht mehr axakt arbeiten, und sehr ungenau werden.

Edit: Wäre es nicht vielleicht auch eine Überlegung wert, statt der WS2812 die APA102C zu nehmen? Ok, man braucht einen Draht mehr, aber die Ansteuerung ist dafür vom Timing vollkommen unkritisch und lässt sich z.B. über die SPI-Schnittstelle machen. Da kann dann der Nano locker noch andere Aufgaben übernehmen.
Benutzeravatar

Bodo
InterCityExpress (ICE)
Beiträge: 2368
Registriert: Do 28. Apr 2005, 08:59
Nenngröße: H0
Stromart: digital
Steuerung: IB1 & CS2
Gleise: C-Gleis
Kontaktdaten:
Deutschland

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#81

Beitrag von Bodo »

Hallo zusammen,

lustig - meine MS2 scheint die Befehle immer 6x zu senden - 4 mal in kurzem Abstand und dann noch zwei "Nachzügler". Deckt sich aber mit meiner obigen Beobachtung mit delay(100) - dann sieht man die ersten vier und die beiden anderen als jeweils ein Blinken. Ist aber jetzt auch nur "auf die Schnelle". Den Code habe ich mal angehängt, falls jemand selber testen oder auf Fehlersuche gehen will.

Beispielausgabe bei mir:

Code: Alles auswählen

DCC-Zubehördekoder - Befehlsmonitor
38975 ms 	 Adresse 2	grün
38982 ms 	 Adresse 2	grün
38988 ms 	 Adresse 2	grün
38995 ms 	 Adresse 2	grün
39249 ms 	 Adresse 2	grün
39257 ms 	 Adresse 2	grün
43804 ms 	 Adresse 1	rot
43811 ms 	 Adresse 1	rot
43819 ms 	 Adresse 1	rot
43825 ms 	 Adresse 1	rot
44055 ms 	 Adresse 1	rot
44062 ms 	 Adresse 1	rot
Würde andererseits bedeuten, dass man die Interrupts durchaus "mal" für 12ms abschalten kann … ist jetzt eben die Frage, in welchen Zyklen das für die LEDs nötig ist ;-).

Viele Grüße, Bodo
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)

Meine Anlage - Meine Dauerbaustelle
Platinen für Modellbahn- und Arduino-Anwendungen

TecnoWorld
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:
Spanien

Re: MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung New:Feuer u. S

#82

Beitrag von TecnoWorld »

Bodo hat geschrieben: Mo 14. Jan 2019, 16:21 Würde andererseits bedeuten, dass man die Interrupts durchaus "mal" für 12ms abschalten kann … ist jetzt eben die Frage, in welchen Zyklen das für die LEDs nötig ist ;-).
Die LEDs brauchen nicht immer "geupdated" zu werden. Die behalten den letzten Stand.

Bastel dir ein "dirty" Flag, und setze dieses in jedem Effekt/Ausgabe, die am Zustand der Leds was ändern sollen.
Nur wenn der Zustand der Leds "dirty" ist, machst Du ein "Update".
So hast Du genug Zeit, auch dein DCC zu empfangen :-)

LG,
Ingolf
__________________________
LG aus Andalusien.
RailSolution - das Lichtprojekt von Modellbahnern für die Modellbahn
Antworten

Zurück zu „Software und Hardware“