MobaLedLib: Beginn einer neuen Ära mit Windows Konfigurationstool. Programmieren war Gestern ... Stammtisch 27.11.

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

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#113

Beitrag von Hardi » Mo 21. Jan 2019, 01:09

Hallo Thomas,
ThKaS hat geschrieben:
So 20. Jan 2019, 20:10
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.
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
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:
Bild
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).

ThKaS hat geschrieben:
So 20. Jan 2019, 20:10
Ergänzung: Während des Essens hat das Teilchen gelegen, jetzt flimmert es :shock: . GND war mit A0 verbunden ....
Gibt es da noch irgendeinen Timer, der nur ab und zu ein Einschalten zulässt?
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.

Benutzeravatar

ThKaS
EuroCity (EC)
Beiträge: 1382
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 Ver 0.7.6

#114

Beitrag von ThKaS » Mo 21. Jan 2019, 09:00

Moin moin Hardi,
Hardi hat geschrieben:
Mo 21. Jan 2019, 01:09
....Falls Dir die Erklärung zu ausführlich war, dann bitte ich das zu entschuldigen, aber vielleicht hilft sie einem anderen Stummi weiter....
Danke für die Erklärung. Das war super hilfreich fürs Verständnis.
Hardi hat geschrieben:
Mo 21. Jan 2019, 01:09
....sonst driften sie undefiniert zwischen 5V und GND was komische Effekte ....
Vllt. war es ja eine Zufallseinschaltung auf Grund des Drifts. Hat ja ne Stunde rumgelegen.
Hardi hat geschrieben:
Mo 21. Jan 2019, 01:09
....Ich habe das Beispiel so angepasst, dass man es ohne die Schalterplatine verwenden kann. ........Wenn Du Pech hast, dann liegt das an einer kaputten RGB LED......
Danke! Schaun wir mal.
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......
Ja, es kann sein, dass es das Feuer war. Zum Effekt hatte ich im Post #74 schon das geschrieben:
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?...
Das war dann in der DCC-Entwicklung untergegangen, macht aber nichts.

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.
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


Ingolf
InterRegio (IR)
Beiträge: 249
Registriert: So 30. Aug 2015, 10:15
Nenngröße: H0
Stromart: digital
Steuerung: Z21
Gleise: Piko A
Wohnort: 39629 Bismark
Alter: 64
Deutschland

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

#115

Beitrag von Ingolf » Mo 21. Jan 2019, 11:15

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.
Man könnte noch Pausen einfügen, LED´s ein- und ausschalten, man müßte sich weiter mit dem Syntax des Plugins beschäftigen.

Bild

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

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#116

Beitrag von Hardi » Mo 21. Jan 2019, 21:29

Hallo Ingolf,
Ingolf hat geschrieben:
Mo 21. Jan 2019, 11:15
Lange gesucht..., der LED-Streifen hatte irgendwo den Geist aufgegeben. Man, sind die Dinger sensibel !
Aber ich habe ja vorgesorgt...
Was ist denn kaputt gegangen? Mechanisch? Meißtens betrifft es nur die vorderen LEDs...

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" ???
Nein, das CAN Modul wird nur dann benötigt, wenn Du was vom CAN lesen willst.
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.

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#117

Beitrag von Hardi » Mo 21. Jan 2019, 23:34

Hallo Thomas,
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:
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?...
Das war dann in der DCC-Entwicklung untergegangen, macht aber nichts.

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.
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?
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.



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
Deine „ergänzenden Fragen“ sind fatal. Wenn ich daran Denke was Du mit dieser Frage losgetreten hast:
ThKaS hat geschrieben:
So 13. Jan 2019, 08:21
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.


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:

Bild

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)
Diese Zeile kann man dann in das Konfigurationsarray des eigenen Programms einbauen:

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
  };
//*******************************************************************
Das Konfigurationsarray ist eigentlich ein Array aus verschiedenen Bytes. Das Array der obenstehenden Konfiguration sieht so aus:

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
};
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:
Bild
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)
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:

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)
Dieses Makro können wir jetzt in unser Programm kopieren und mehrfach mit verschiedenen Farben benutzen:

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
  };
//*******************************************************************
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

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#118

Beitrag von Hardi » Di 22. Jan 2019, 13:23

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:

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)
Hardi


Ingolf
InterRegio (IR)
Beiträge: 249
Registriert: So 30. Aug 2015, 10:15
Nenngröße: H0
Stromart: digital
Steuerung: Z21
Gleise: Piko A
Wohnort: 39629 Bismark
Alter: 64
Deutschland

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

#119

Beitrag von Ingolf » Di 22. Jan 2019, 17:38

Hallo Hardi,
Was ist denn kaputt gegangen? Mechanisch? Meißtens betrifft es nur die vorderen LEDs...
es hat ein paar mal unkontrolliert geblinkt, dann gingen alle 10 LED´s nicht mehr....
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.
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
Warum steht hier für LED eine 0 ? Wäre die letzte dann 9 ?
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 :P

Ich habe jetzt mal ausprobiert:
// *** 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
};
//*******************************************************************
Funktioniert auch. Kann ich so in diesem Sinne weitere Zeilen anfügen mit z.B. Blinken, Sound usw. ??

Soll erst mal reichen. Es fängt an, Spaß zu machen !!!

Grüße Ingo

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#120

Beitrag von Hardi » Di 22. Jan 2019, 22:34

Hallo Ingolf,
Ingolf hat geschrieben:
Di 22. Jan 2019, 17:38
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
Warum steht hier für LED eine 0 ? Wäre die letzte dann 9 ?
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 :P
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.
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
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.

Ingolf hat geschrieben:
Di 22. Jan 2019, 17:38
:
Funktioniert auch. Kann ich so in diesem Sinne weitere Zeilen anfügen mit z.B. Blinken, Sound usw. ??

Soll erst mal reichen. Es fängt an, Spaß zu machen !!!
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


Ingolf
InterRegio (IR)
Beiträge: 249
Registriert: So 30. Aug 2015, 10:15
Nenngröße: H0
Stromart: digital
Steuerung: Z21
Gleise: Piko A
Wohnort: 39629 Bismark
Alter: 64
Deutschland

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

#121

Beitrag von Ingolf » Mi 23. Jan 2019, 07:15

Moin, Moin,

"Selbsthilfegruppe" - selten so gelacht ! :D :D :D

Grüße Ingo

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#122

Beitrag von Hardi » Mi 23. Jan 2019, 23:22

Hallo Kontraktfreudige,

die RGB LED Verteiler Platinen sind fertig und getestet!


Jetzt könnt Ihr loslegen!

Bild

Bild

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:
Bild

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:
Bild
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:
Bild

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:
Bild
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.
Bild
Aus dem Befestigungsbügel habe ich etwas herausgefeilt so das man diesen wieder schließen kann:
Bild
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
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


Ingolf
InterRegio (IR)
Beiträge: 249
Registriert: So 30. Aug 2015, 10:15
Nenngröße: H0
Stromart: digital
Steuerung: Z21
Gleise: Piko A
Wohnort: 39629 Bismark
Alter: 64
Deutschland

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

#123

Beitrag von Ingolf » Fr 25. Jan 2019, 18:04

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" ?

Bild

Bild

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

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#124

Beitrag von Hardi » Sa 26. Jan 2019, 02:45

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:

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

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

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]              "
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…

DCC_Rail_Decoder_Example.zip

Gute N8…

Hardi
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Ingolf
InterRegio (IR)
Beiträge: 249
Registriert: So 30. Aug 2015, 10:15
Nenngröße: H0
Stromart: digital
Steuerung: Z21
Gleise: Piko A
Wohnort: 39629 Bismark
Alter: 64
Deutschland

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

#125

Beitrag von Ingolf » Mi 30. Jan 2019, 08:52

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

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#126

Beitrag von Hardi » Mi 30. Jan 2019, 20:50

Hallo Ingo,

ich hoffe, dass Deine „Schaffenspause“ beendet ist und wünsche Dir, dass Du Gesund bleibst.
Die ganze Bibliothek hat viel Arbeit gemacht, aber ich habe mir vorgenommen Euch allen mal was zurückzugeben… Und Ehrlich gesagt, das macht sogar Spaß.
In dem Beispiel kann man über drei Konstanten angeben welchen Bereich der DCC Adressen man in die Eingangsvariablen der MobaLedLib kopieren will.

Code: Alles auswählen

// Define which accessoires CAN messages should be used.
#define DCC_FIRST_LOC_ID      1   // First local ID which should be copied to the InpStructArray[] of the MobaLedLib
#define DCC_FIRST_TOGGLE_ID   11  // DCC adresses greater equal this number are used to toggle an entry in the InpStructArray[]
                                  // The DCC adresses smaller than this number are treated as momentarry events.
#define DCC_LAST_LOC_ID       30  // Last local ID which should be copied to the InpStructArray[] of the MobaLedLib
 
Diese Definition kann frei gewählt werden. Man könnte das Beispiel auch so abändern, dass mehrere Bereiche verwendet werden.

Ja, Probiere es einfach mal aus. Oft hilft es zum Verständnis, wenn man Debug Ausgaben mit „Serial.println(…)“ einbaut. Wenn Du nicht weiter kommst Frage einfach nach. Alle Fragen die Du stellst muss kein anderer mehr stellen…

Viel Spaß damit.

Hardi

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung: Platinen bestelle

#127

Beitrag von Hardi » Mo 4. Feb 2019, 00:12

Hallo Bestellfreudige,

Mir macht das bestellen im Internet viel Spaß. Dabei finde ich es sogar spannend, wenn die bestellten Artikel nicht sofort kommen. Wenn die Post dann 6 Wochen später kommt weiß ich oft gar nicht mehr was in dem Paket ist.

Aber den Spaß gönnt euch Alf nicht. Er wird die Platinen schneller schicken denn

Ab sofort könnt Ihr die Verteilerplatinen für die LEDs und andere WS281x Verbraucher bestellen:

Bild

Die Platinen kosten Inklusive Versand und Verpackung (unbestückt und ohne Bauteile):
Anz.
Platinen
Preis
1 3,00
2 4,10
3 5,20
4 6,30
5 7,40
6 8,50


Wenn Ihr bestellen wollt, dann schreibt eine PN an Alf (Benutzername aftpriv):
https://www.stummiforum.de/ucp.php?i=pm ... se&u=14669

und wenn ihr sicher sein wollt, dass Ihr noch welche bekommt zusätzlich eine kurze Notiz hier im Thread (Es gibt momentan nur 20 Platinen). Das animiert dann auch die Anderen schnell zu bestellen.


Alf: Vielen Dank, dass Du die Bestellung organisierst…

Hardi


hlinke
S-Bahn (S)
Beiträge: 15
Registriert: Di 31. Okt 2006, 22:02
Wohnort: Trier

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

#128

Beitrag von hlinke » Mo 4. Feb 2019, 07:07

Hallo Hardi, hallo Alf,

danke für Eure tole Initiative.

Ich habe gerade 3 Platinen bestellt.

Viele Grüsse
Harold


Ingolf
InterRegio (IR)
Beiträge: 249
Registriert: So 30. Aug 2015, 10:15
Nenngröße: H0
Stromart: digital
Steuerung: Z21
Gleise: Piko A
Wohnort: 39629 Bismark
Alter: 64
Deutschland

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

#129

Beitrag von Ingolf » Mo 4. Feb 2019, 11:31

Hallo Hardi, großer Meister,

Erfolgsmeldung, es funktioniert !!

Bild

Bild

Der obere Nano ist für DCC (mit HB-LED), der Sketch wurde unverändert geflasht.
Der Sketch für den unteren Nano für die LED´s wurde etwas angepasst.
LED 0 ist zwischen Nano und Klemmen als HB.
Dann LED 1,2 und 3 ein House, 4, 5 und 6 das Office, LED 7 ist das Schweißlicht.
Läßt sich hervorragend über die DCC-Adressen 11, 12 und 13 steuern. Nee, ist das geil !

Nun möchte ich die Adressen an meinen Adressraum auf meiner Anlage anpassen und bin auf eine (für mich) Ungereimtheit gestoßen.
Folgende Tabelle in dem Sketch 23b :
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
Wenn ich von DCC 12 weiterzähle, müßte ich dann bei DCC 30 nicht bei InpCh 39 landen ???
Oder wo ist mein Denkfehler ?

Angenommen, ich will bei Adresse 30 anfangen, müßte das dann so aussehen ?
#define SEND_DISABLE_PIN A1
#define ERROR_LED_PIN 13

#define LED_HEARTBEAT_PIN 13

#define NUM_LEDS xx // Number of LEDs with some spare channels (Maximal 256 RGB LEDs could be used)
#define LED_DO_PIN 6 // Pin D6 is connected to the LED stripe

// Define which accessoires CAN messages should be used.
#define DCC_FIRST_LOC_ID 30 // First local ID which should be copied to the InpStructArray[] of the MobaLedLib
#define DCC_FIRST_TOGGLE_ID xx // DCC adresses greater equal this number are used to toggle an entry in the InpStructArray[]

// The DCC adresses smaller than this number are treated as momentarry events.
#define DCC_LAST_LOC_ID 60 // Last local ID which should be copied to the InpStructArray[] of the MobaLedLib
#define DCC_INPSTRUCT_START 0 // Start number in the InpStructArray[]
Ich vermute, das Adresse 30 dann InpCh wieder 0 ist ?

Eine letzte Frage, eignet sich das Soundmodul JQ6500 auch ?

https://de.banggood.com/JQ6500-Voice-So ... rehouse=CN

Viele Grüße Ingo
Zuletzt geändert von Ingolf am Mo 4. Feb 2019, 17:53, insgesamt 1-mal geändert.


peter01
S-Bahn (S)
Beiträge: 12
Registriert: Fr 19. Apr 2013, 20:51

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

#130

Beitrag von peter01 » Mo 4. Feb 2019, 14:27

Hallo Alf,

ich melde bedarf an 2 Verteilerplatinen an.

Gruß Peter


aftpriv
InterCity (IC)
Beiträge: 795
Registriert: Di 3. Apr 2012, 10:01
Nenngröße: H0
Stromart: digital
Steuerung: Gleisbox+RocRail-RN-Node
Gleise: K-Gleis|:|(3-Leiter)
Wohnort: 636xx Hessen/Main-Kinzig-Kreis
Alter: 68

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

#131

Beitrag von aftpriv » Mo 4. Feb 2019, 19:28

Danke Euch Beiden für die Bestellung.

Es sind noch 15 Stück verfügbar, weitere erst wieder Mitte März.

Verbindliche Vorbestellungen werden gerne entgegen genommen. Vorauszahlung von 50% der Endsumme.

Bitte bestellen/vorbestellen per PM und Erwähnung im Forumsbeitrag

Gruß
Alf

PS: Dank an Entwicklungspartner Hardi für Seine Arbeit, weiter so!
Pickel-Bahner seit 1958 / K-Gleis + ZIMO-Decoder (MX633P22/MX645P22)
RocRail & RocNetNode
Email bezüglich MobaLedLib-Belange: LedLib@yahoo.com

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#132

Beitrag von Hardi » Di 5. Feb 2019, 13:08

Hallo Ingo,
Ingolf hat geschrieben:
Mo 4. Feb 2019, 11:31
... Nee, ist das geil !
Das werte ich als ganz großes Lob. Vielen Dank!

Ingolf hat geschrieben:
Mo 4. Feb 2019, 11:31

Wenn ich von DCC 12 weiterzähle, müßte ich dann bei DCC 30 nicht bei InpCh 39 landen ???
Oder wo ist mein Denkfehler ?
Der Denkfehler sitzt in Mainz ;-( Ich könnte mich ja damit herausreden, dass ich das absichtlich falsch gemacht habe um Euch zu testen…
Du hast vollkommen Recht der letzte InpCh ist die 39. Ich werde es im Kommentar des Beispiels verbessern. Solche Fehler sind besonders ärgerlich, darum ist es wichtig, dass ich so etwas gemeldet bekomme. Danke.

Ingolf hat geschrieben:
Mo 4. Feb 2019, 11:31

Angenommen, ich will bei Adresse 30 anfangen, müßte das dann so aussehen ?
#define SEND_DISABLE_PIN A1
#define ERROR_LED_PIN 13

#define LED_HEARTBEAT_PIN 13

#define NUM_LEDS xx // Number of LEDs with some spare channels (Maximal 256 RGB LEDs could be used)
#define LED_DO_PIN 6 // Pin D6 is connected to the LED stripe

// Define which accessoires CAN messages should be used.
#define DCC_FIRST_LOC_ID 30 // First local ID which should be copied to the InpStructArray[] of the MobaLedLib
#define DCC_FIRST_TOGGLE_ID xx // DCC adresses greater equal this number are used to toggle an entry in the InpStructArray[]

// The DCC adresses smaller than this number are treated as momentarry events.
#define DCC_LAST_LOC_ID 60 // Last local ID which should be copied to the InpStructArray[] of the MobaLedLib
#define DCC_INPSTRUCT_START 0 // Start number in the InpStructArray[]
Ich vermute, das Adresse 30 dann InpCh wieder 0 ist ?
Ja, aber die Konstante DCC_FIRST_TOGGLE_ID muss auch einen Wert enthalten. Sie bestimmt die Erste ID für die LEDs welche mit zwei Tasten (Rot/Grün) Aus- und Eingeschaltet werden. Die IDs davor werden als Momentkontakt ausgewertet und werden in dem Beispiel für die Signale benutzt. Wenn Du die Signale aus der Konfiguration entfernt hast, dann kannst Du „DCC_FIRST_TOGGLE_ID“ auf 30 setzen. Damit werden nur Umschaltfunktionen benutzt und dann ist die DCC Adresse mit dem InpCh 0 verknüpft (Nicht getestet, hoffentlich habe ich auf die Schnelle nichts übersehen).
Ich versuche alles so universell wie möglich zu gestalten. Das macht die Sache dann zu Komplex ;-(
Ingolf hat geschrieben:
Mo 4. Feb 2019, 11:31
Eine letzte Frage, eignet sich das Soundmodul JQ6500 auch ?

https://de.banggood.com/JQ6500-Voice-So ... rehouse=CN

Ja, ich vermute, dass man das Modul auch verwenden könnte. Es hat den Vorteil dass man keine zusätzliche SD Karte benötigt. Dadurch wird es unter dem Strich etwas billiger. Es besitzt aber nur einen analogen Eingang für Taster. Damit lassen sich dann weniger (5 statt 14) Sounds direkt abrufen. Aber in jedem Fall muss man die Tabelle anpassen:

Code: Alles auswählen

                                //  ADKey1  ADKey2
#define SOUND_ADKEY10   11      //  Play Mode   14
#define SOUND_ADKEY9    17      //  U/SD/SPI    13
#define SOUND_ADKEY8    22      //  Loop All    12
#define SOUND_ADKEY7    25      //  Pause/Play  11
#define SOUND_ADKEY6    29      //  Prev/Vol-   10
#define SOUND_ADKEY5    37      //  Next/Vol+   9
#define SOUND_ADKEY4    49      //  4           8
#define SOUND_ADKEY3    70      //  3           7
#define SOUND_ADKEY2    134     //  2           6
#define SOUND_ADKEY1    255     //  1           5
Wenn Du bereits viele dieser Module bestellt hast, dann kannst Du mir eins davon schicken, dann schau ich mir mal an wie die Tabelle geändert werden muss (Das Modul bleibt aber als „Dauerleigabe“ bei mir für nachfragen…).


Hardi

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#133

Beitrag von Hardi » Di 5. Feb 2019, 21:38

Hallo Zusammen,

ich habe mal eine Tabelle mit verschiedenen Bezugsquellen für die 4-poligen Stecker für die Verteilerplatinen erstellt:
Preis [€]
Stückzahl
10-99
Preis[€]
Stückzahl
>99
Verfügbar Mindest-
abnahme
  Wannenstecker 4-polig 75869-130LF  
0,49 0,41 189 1   https://www.conrad.de/de/fci-pfosten-st ... 01800.html  
0,56 0,52 60082 1   https://www.arrow.com/en/products/75869 ... phenol-fci  
0,52 0,52 485 5   https://de.rs-online.com/web/p/leiterpl ... r/6737578/  
0,39 1700 100   https://www.avnet.com/shop/emea/product ... ryfeed_VSE  
0,60 0,56 583 1   https://www.mouser.de/ProductDetail/Amp ... f+Amphenol  
0,40 0,40 460 100   https://uk.farnell.com/amphenol-icc-fci ... HB-NETCOMP  
   
  Anschluss für Kabel 4-polig: 71600-104LF  
0,43 0,37 - 1   https://www.conrad.de/de/fci-pfosten-st ... 01764.html  
0,47 400 50   https://de.rs-online.com/web/p/products ... lsrc=aw.ds  
0,39 0,37 830 1   https://de.farnell.com/amphenol-icc-fci ... (FCI)-0418  
0,50 0,44 1576 1   https://www.mouser.de/ProductDetail/Amp ... uecg%3D%3D  
0,62 0,48 2463 1   https://www.digikey.de/product-detail/d ... ND/1523943  
0,31 0,20 389 1   https://www.compona.com/product/2468595 ... 71600104lf  
0,40 1250 50   https://www.avnet.com/shop/emea/product ... E?aka_re=1  
Edit: 21.02.19: Link zum Conrad Stecker korrigiert. Leider ist der Stecker immer noch nicht verfügbar

Ich weiß nicht ob man bei allen genannten Lieferanten als Privatmensch bestellen kann. Bitte prüft auch noch mal genau bevor Ihr bestellt ob es auch die richtigen Teile sind. Nicht dass Ihr versehentlich 40-polige Stecker bestellt.

Das schwierigste an der Tabelle war das Einfügen in das Forum. Dazu habe ich mir ein kleies Excel Makro gebastelt. Vielleicht braucht Ihr so was auch mal.
Gen_StummiTable.zip
Gibt es einen allgemeinen Platz hier im Forum wo man dieses Tool ablegen kann?

Demnächst werde ich eine Platine für den Arduino entwickeln. Habt Ihr dazu noch Wünsche?

Hardi
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Hardi am Do 21. Feb 2019, 13:31, insgesamt 1-mal geändert.


Ingolf
InterRegio (IR)
Beiträge: 249
Registriert: So 30. Aug 2015, 10:15
Nenngröße: H0
Stromart: digital
Steuerung: Z21
Gleise: Piko A
Wohnort: 39629 Bismark
Alter: 64
Deutschland

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

#134

Beitrag von Ingolf » Mi 6. Feb 2019, 10:47

Hallo Hardi,

mir ist eine Sache aufgefallen. Kann sein, das mein Sketch fehlerhaft ist, bitte mal drüberschauen.

Folgender Effekt. Habe den Adressraum angepaßt, begonnen mit DCC-Adr 25.
Also:
#define DCC_FIRST_LOC_ID 25
und
#define DCC_FIRST_TOGGLE_ID 25
usw.
Jetzt passiert folgendes. Nach Einschalten der Spannung ist eine (zufällige) LED im House (LED 1-3) aktiv. Bei der TV_LED flackert diese auch fleißig.
Weiter passiert erst mal nix. Ich kann dann über die DCC-Befehle auch alles schalten.
Die LED im Haus leuchtet auch, wenn keine Zentrale angeschlossen ist.

Lösung:
Ich habe dann den Sketch geändert, und mit Adr 26 (InpCh 1) begonnen. Jetzt ist alles wieder schick.

Dies scheint aufzutreten, wenn #define DCC_FIRST_LOC_ID und #define DCC_FIRST_TOGGLE_ID den gleichen Wert haben und man InpCh 0
auch benutzt.

Oder habe ich im Sketch doch Mist gebaut ?

Grüße Ingo

PS: schicke Tabelle !
23_B.DCC_Rail_Decoder_Receiver.zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

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

#135

Beitrag von Hardi » Mi 6. Feb 2019, 12:58

Hallo Ingo,

das habe ich mal wieder verbockt. Sorry…
Die beiden folgenden Zeilen sorgen dafür, dass in dem Beispiel die Lichtsignale beim Einschalten Hp0 zeigen:

Code: Alles auswählen

  MobaLedLib.Set_Input(0, 1); // Set the default value for the entry light signal at power on
  MobaLedLib.Set_Input(4, 1); // Set the default value for the departure light signal at power on
Wenn Du die Signale weglässt ohne die Zeilen zu Deaktivieren, dann wird das Haus eingeschaltet sobald der Arduino Strom kriegt…

Hardi


Ingolf
InterRegio (IR)
Beiträge: 249
Registriert: So 30. Aug 2015, 10:15
Nenngröße: H0
Stromart: digital
Steuerung: Z21
Gleise: Piko A
Wohnort: 39629 Bismark
Alter: 64
Deutschland

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

#136

Beitrag von Ingolf » So 10. Feb 2019, 10:54

23_B.DCC_Rail_Decoder_Receiver.zip
Hallo zusammen,

ich möchte euch einige Erfahrungen nicht vorenthalten.
Da Software nicht meine Stärke ist, habe ich Hilfe bei Hardi gesucht und auch erhalten. Danke Hardi !
Dies ist jedoch über PN gelaufen, daher heute dieser Beitrag.
Als Anhang meine momentane Testversion von Sketch 23b.

Da ich alles über DCC-Befehle über mein Tab steuern will, habe ich mir die Hardware für die Sketche 23a und 23b
zusammengebaut. Zu sehen in Beitrag 129 Seite 6.
LED 0 ist dabei als Heartbeat mit auf der Platine.
Nachdem dies mit den Original_Sketchen prima funktionierte, habe ich den Sketch 23b verändert. Sketch 23a bleibt
unverändert.

Die Zeilen für die Signale habe ich entfernt, brauche ich noch nicht.
Der Adressraum sollte bei DCC 25 beginnen, alle Adressen davor belegen 2 DR4018.

Also geändert:
#define DCC_FIRST_LOC_ID 25 // First local ID which should be copied to the InpStructArray[] of the MobaLedLib
#define DCC_FIRST_TOGGLE_ID 25 // DCC adresses greater equal this number are used to toggle an entry in the InpStructArray[]
// The DCC adresses smaller than this number are treated as momentarry events.
#define DCC_LAST_LOC_ID 35 // Last local ID which should be copied to the InpStructArray[] of the MobaLedLib
#define DCC_INPSTRUCT_START 0 // Start number in the InpStructArray[]
Dabei wird dann:
DCC Button InpCh
~~~~ ~~~~~~~~~ ~~~~~

25 Red/Green 0 off/on
26 Red/Green 1 off/on
27 2
: :
35 Red/Green 10 off/on
Noch die InCh-Werte in der Konfiguration der HOUSE angepaßt und auf den Nano für die LED´s geflasht.
Nun kann ich sehr schön mit der DCC-Adresse 25 das HOUSE mit den LED´s 1,2 und 3 schalten. (LED 0 sitzt ja mit auf der Nano-Platine)
DCC 26 schaltet das HOUSE mit den LED´s 4, 5 und 6, Adresse 27 schaltet das Schweißlicht. Nee, war das schön, als es funktionierte !

Nun kam ich ja auf die Idee, Tastaturkappen von einer alten Tastatur vor die Fenster zu kleben, um mir die Basteleien mit der Pappe
zu ersparen. (Bilder Beitrag 123 Seite 5)
Dazu kam von Hardi der Kommentar, dazu ist die voreingestellte Konfiguration zu hell. Ich sollte mit dem Makro Set_ColTab() arbeiten.
Also dieses mit in den Sketch 23b eingebaut, jedoch kam ich damit überhaupt nicht klar.

Einige PN´s später...

Mit Set_ColTab() definiert man 15 neue Farb- und Helligkeitswerte für den jeweiligen Raum, der im Kommentar zu der Zeile steht.
Diesen trägt man dann in der HOUSE-Konfig ein - fertig.

Jetzt denke ich, das ich alles im Griff habe und kann mir den Sketch so erstellen, wie ich es brauche.

Hardi, sollte ich etwas unrichtig oder unvollständig erläutert haben, bitte berichtige mich.

Ich hoffe, es hilft jemandem weiter.

Schönen Sonntag noch

Grüße Ingo
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar

Threadersteller
Hardi
InterRegioExpress (IRE)
Beiträge: 353
Registriert: Mo 28. Dez 2015, 13:07
Nenngröße: H0
Stromart: digital
Steuerung: MS2 + IR, Eigenbau
Gleise: Märklin C-Gleis
Wohnort: Mainz
Alter: 56
Deutschland

MobaLedLib: Arduino Bibliothek zum Ansteuern von LEDs und anderen Komponenten über eine Signalleitung:RJ10 Stecker

#137

Beitrag von Hardi » Di 12. Feb 2019, 10:18

Hallo Zusammen,

Ingolf („der Spanier“) verwendet für die LEDs in seinem Thread (Licht auf der Modellbahn) RJ10 Stecker. Diese sind um Welten billiger als die Pfostenstecker welche ich verwende.
TecnoWorld hat geschrieben:
Mi 10. Okt 2018, 14:34
...
Die Kabel dazu kann man auch fertig kaufen. Das sind RJ10 Kabel, 1:1. Die gibt es billig fertig konfektioniert überall zu kaufen, in allen Längen.
Die RJ10 Stecker (4p4c) und die Zangen dazu gibt es auch billig. Also das ist notfalls auch kein Problem. Ist ja kein Löten :-)
Ich persönlich finde die Verkabelung mit Flachkabel in den Häusern viel eleganter als die Verwendung von RJ10 Kabeln bei denen eine zusätzliche dicke Isolierung entfernt werden muss.
Hardi hat geschrieben:
Mi 9. Jan 2019, 23:21
Bild
Jetzt ist mir die Idee gekommen, dass man ja beide Welten miteinander verheiraten könnte.
Vielleicht kann man auch „normale“ Flachkabel mit RJ10 Steckern krimpen?
Hat das schon mal jemand gemacht?
RJ10 Kabel haben einen etwas kleineren Querschnitt (AWG30) als Flachkabel (AWG28). Aber dafür haben die RJ10 Kabel mehr Isolierung.

Probiert das doch Bitte mal aus, wenn Ihr RJ10 Stecker da habt.

Hardi

Antworten

Zurück zu „Software und Hardware“