MobaLedLib: DMX zur Raumlichtsteuerung - update

#1 von Holger28 , 31.01.2024 19:38

Hallo zusammen,

gestartet im Hauptthread folge ich nun Jürgens Empfehlung ein eigenes Thema für DMX - RF24 - Raumlichtsteuerung aufzumachen.
Aufgabenstellung: Meine Lampen an der Decke, die mit RGBW-LED ausgerüstet sind, kann ich nicht mit der MLL verkabeln. Die LED werden über einen Nano angesteuert. Anfangs habe ich eine Übertragung mittels IR eingebaut, das ist aber fehleranfällig wenn jemand oder etwas im Weg steht. Die nRF24L01-Module sollten den Job besser erledigen. Dazu muss ich das Signal der MLL von der Hauptplatine zu einem Nano bekommen, der dann über ein nRF24L01 die Daten an die beiden Lampen schickt. Jürgens Vorschlag war die DMX-Schnittstelle zu verwenden, um die Zahlenwerte in digitlaer Form von der Hauptplatine zu bekommen.

Umsetzung: Ich hatte MAX485-IC hier und habe die RS485-Module fast 1:1 nachgebaut. Änderungen beim DMX-Sender R3 durch Brücke ersetzt, um RS485 in den Sendemodus zu versetzen, ist elektrisch wie auf der [URL=https://wiki.mobaledlib.de/anleitungen/spezial/dmx512/dmx_adapter_herstellen?s[]=dmx]MLL-Wiki DMX512 Adapter[/URL] umgesetzt. Die LED für die Spannungsanzeige habe ich weggelassen.
DMX-Empfänger: RE und DE werden auf Masse gezogen für den Empfangsmodus. Leitung zwischen den beiden DMX-Modulen ist eine 8 m Chinch-Audioleitung. Daten werden an den Arduino auf den serielle RX geführt. Ich habe das mal versucht darzustellen.
Aufbau

Die Verbindung zwischen Hauptplatine und RS485-Sendemodul per 10 cm Flachbandleitung, zwischen RS485-Empfängermodul und DMX-RF24-Brücke 10 cm Kabel. Ich brauche in meinem Fall eine lange Leitung, da ich an den Nano noch für was anderes anschließen will, dazu später mehr. Wer nur das DMX-Signal an einen Arduino übergeben will und mit 10 cm auskommt kann beide DMX-Modul weglassen und DI mit dem RX-Pin des Arduino verbinden.

Das zwischenzeitlich geplante I2C-Display ist wieder entfernt, da Störungen zwischen Display- und DMX-Library auftraten.

Schaltun der Lampen:


Firmware
Von der MLL werden drei Werte übergeben:
R: 1=Nacht, 2=Sonnenaufgang, 3=Tag, 4=Sonnenuntergang
G: 0 oder 1 für Gewitterblitze bei Nacht
B: 0-255 für die Geschwindigkeit der Farbänderungen

Die DMX-Brücke liest permanent die Werte von der MLL ein, sendet selbst aber nur per RF24 an die Lampen wenn die Werte sich geändert haben. Das 2,4 GHz-Netz, welches auch für WLAN in Gebrauch ist muss ja nicht unötig geflutet werden.


#include <DMXSerial.h>

byte aktuellModus = 0; /*
0 = undefined
1 = Nacht
2 = Sonnenaufgang
3 = Tag
4 = Sonnenuntergang */
byte aktuellBlitze = 0;
byte aktuellSpeed = 50;

// RF24-Definition
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8); // CE, CSN

const byte address[6] = "00001";

void setup() {
DMXSerial.init(DMXReceiver);

pinMode(LED_BUILTIN, OUTPUT);

radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_LOW); // RF24_PA_MIN / LOW / HIGH / MAX
radio.stopListening();
}

void loop() {
struct Data_Package {
byte Modus = DMXSerial.read(1);
byte Blitze = DMXSerial.read(2);
byte Speed = DMXSerial.read(3);
};
Data_Package data; // Create a variable with the above structure
if (aktuellModus != data.Modus || aktuellBlitze != data.Blitze || aktuellSpeed != data.Speed){ // wenn ein Parameter geändert ist sende Daten an Lampe
digitalWrite(LED_BUILTIN, HIGH); //signalisiere das Senden via RF24
radio.write(&data, sizeof(Data_Package));
aktuellModus = data.Modus;
aktuellBlitze = data.Blitze;
aktuellSpeed = data.Speed;
delay(500);
digitalWrite(LED_BUILTIN, LOW);
}
}


In der Lampe sind die Zielfarben hinterlegt und die Berechnung der Übergänge läuft dort ab.
Die Nanos der beiden Lampen haben keinen Bootloader, dadurch leuchten sie nach Einschalten fast sofort.

/* Lampensteuerung Dachgeschoss Version 2.0
* 2 separate Lampen mit weissen und RGB-LED-Streifen werden beim Einschalten des Stromes voll weiss leuchten (Standardmodus)
* Beim Betrieb der Modellbahn werden die Beleuchtungsszenarien über 2,4 GHz Funkmodul empfangen und die Lampen geschaltet
* Code zur LED-Ansteuerung basiert auf Beispiel von Philipp Gahtow https://pgahtow.de
*/

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8); // CE, CSN

const byte address[6] = "00001";

//Beleuchtungssteuerung:
int mode = 0;
/*
0 = undefined
1 = Nacht
2 = Sonnenaufgang
3 = Tag
4 = Sonnenuntergang
5 = Gewitter, nur bei Nacht
*/

unsigned long time = 0;

//Pins:
int BluePin = 5;
int RedPin = 6;
int GreenPin = 9;
int WhitePin = 10;

struct Data_Package {
byte Modus = 0;
byte Blitze = 0;
byte Tempo = 4000;
};
Data_Package data;

int lightsoll = 255; //Helligkeit
int temposoll = 4000; //Geschwindigkeit der Änderungen - Maximalbereich 50000
int blauist = 0;
int blausoll = 0;
int rotist = 200;
int rotsoll = 200;
int gruenist = 0;
int gruensoll = 0;
int weissist = 150;
int weisssoll = 150;
boolean modechange = false; // im Falle von Änderungen langsam an den Zielwert angleichen

boolean gewitter = false; //nur in der Nacht
int gcount = 0;

void setup()
{
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_LOW); // RF24_PA_MIN / LOW / HIGH / MAX
radio.startListening();

pinMode(RedPin, OUTPUT);
pinMode(GreenPin, OUTPUT);
pinMode(BluePin, OUTPUT);
pinMode(WhitePin, OUTPUT);

analogWrite(WhitePin,weissist);
}

void loop()
{
time++;
if (modechange == true) { // Tageszeiten direkt anspringen
switch (mode) {
case 1: blausoll = 255; // Nacht
rotsoll = 0;
gruensoll = 0;
weisssoll = 0;
modechange = false;
break;
case 2: blausoll = 0; // Sonnenaufgang
rotsoll = 255;
gruensoll = 95;
weisssoll = 0;
modechange = false;
break;
case 3: blausoll = 0; // Tag
rotsoll = 200;
gruensoll = 0;
weisssoll = 255;
modechange = false;
break;
case 4: blausoll = 0; // Sonnenuntergang
rotsoll = 255;
gruensoll = 40;
weisssoll = 0;
modechange = false;
break;
}
}

if (radio.available()) { // Änderungen via nRF24L01 empfangen
radio.read(&data, sizeof(Data_Package));

if (data.Modus == 1) { // 1 = Nacht
mode = 1;
modechange = true;
}
if (data.Modus == 2) { // 2 = Sonnenuntergang
mode = 2;
modechange = true;
}
if (data.Modus == 3) { // 3 = Tag
mode = 3;
modechange = true;
}
if (data.Modus == 4) { // 4 = Sonnenaufgang
mode = 4;
modechange = true;
}
if (data.Blitze == 1 && mode == 1 ) { // Blitze = Gewitterblitze, nur bei Nacht
gewitter = true;
}
temposoll = map(data.Tempo, 0, 255, 50000, 1000);
}

if (time >= temposoll) {
time = 0;
setRGB(weisssoll, blausoll, rotsoll, gruensoll);

if (gewitter == true) { // Nacht, Gewitter berechnen
gcount++;
if ((gcount % 2 == 1 && gcount > 20 && gcount < 24)) //doppelt
blitz(true, 0);
if ((gcount % 2 == 1 && gcount > 35 && gcount < 40)) //doppelt
blitz(true, 0);
if ((gcount % 2 == 1 && gcount > 55 && gcount < 58)) //einfach
blitz(true, 0);
if ((gcount % 2 == 1 && gcount > 76 && gcount < 82) || gcount == 89) //doppelt, einfach
blitz(true, 1);
if ((gcount % 2 == 1 && gcount > 126 && gcount < 130)) //doppelt
blitz(true, 0);
if ((gcount % 2 == 1 && gcount > 172 && gcount < 174)) //einzel
blitz(true, 1);
if (gcount % 2 == 0)
blitz(false, 0);
if (gcount > 180) { //deaktivieren
gewitter = false;
gcount = 0;
}
}
}
} // Ende Loop

void setRGB(int weisss, int blaus, int rots, int gruens) { // Schreiben der PWM-Werte auf die Pins
if (weisss > weissist)
weissist++;
if (weisss < weissist)
weissist--;
if (map(blaus,0,255,0,lightsoll) > blauist)
blauist++;
if (map(blaus,0,255,0,lightsoll) < blauist)
blauist--;
if (map(rots,0,255,0,lightsoll) > rotist)
rotist++;
if (map(rots,0,255,0,lightsoll) < rotist)
rotist--;
if (map(gruens,0,255,0,lightsoll) > gruenist)
gruenist++;
if (map(gruens,0,255,0,lightsoll) < gruenist)
gruenist--;

analogWrite(BluePin,blauist); //blau
analogWrite(RedPin,rotist); //rot
analogWrite(GreenPin,gruenist); //grün
analogWrite(WhitePin,weissist); //warm-weiß
}

void blitz(boolean aktiv, int farbe) { // Blitz
if (aktiv == true) {
if (farbe == 1)
analogWrite(BluePin,255); //blau
else
analogWrite(RedPin,255); //rot
analogWrite(GreenPin,255); //grün
analogWrite(WhitePin,255); //warm-weiß
}
else {
analogWrite(RedPin,0); //rot
analogWrite(GreenPin,0); //grün
analogWrite(WhitePin,0); //warm-weiß
}
}

Jetzt muss ich mich mit der Logik in der MLL beschäftigen aber dafür gibt es ja Hardis-PDF zur Pushbuttonplatine

Viele Grüße,
Holger


raily74, 4fangnix, TMaa, ortwing und fpps haben sich bedankt!
Holger28  
Holger28
InterRegioExpress (IRE)
Beiträge: 280
Registriert am: 31.01.2018
Ort: Bayern
Gleise Märklin M
Spurweite H0
Steuerung DCC z21PG, z21-App, Rocrail
Stromart Digital

zuletzt bearbeitet 17.02.2024 | Top

RE: MobaLedLib: DMX zur Raumlichtsteuerung

#2 von Holger28 , 03.02.2024 11:24

Hallo zusammen,

folgendes habe ich zur Fehlersuche gemacht:
- Hauptplatine direkt mit 10 cm kabeln mit dem Empfangs-Nano verbunden, um Fehler in dem RS485-Teil auszuschließen --> Ergebnis unverändert
- Ausgabe neben dem Display auch die auf dem Nano verbaute LED an D13 geleitet, dazu einen Blinker mit 1 s-Takt im Prog-Gen angelegt --> LED geht nicht an
- Hauptplatine durch Nano als Sender ersetzt und dazu die Lib SimpleDMX.h verwendet --> auf dem Display kam nicht einmal mehr die 0, ansonsten unverändert
- nochmal mit DMXSerial.h das Gleiche --> Ergebnis wie mit Hauptplatine
- Ausgabe des Kanales 8 an D17 des ESP32 geprüft indem ich eine Heartbeat-Funktion darauf gelegt habe und direkt eine WS2812 --> Heartbeat funktioniertr, Pin also in Ordnung
- Hauptplatine wieder als DMX-Sender wie im ersten Post + anderen Nano direkt ohne RS485 an Hauptplatine angeschlossen, Anzeige über onboard D13 LED --> LED geht nicht an

Stromversorgungen: Nano mit einem USB-Netzteil mit 700 mA, Hauptplatine über USB-Netzteil mit 2 A - an dieser Hauptplatine hängt nur der DMX-Ausgang und die Onboard-Heartbeat an Kanal 0 läuft.

Langsam gehen mir die Ideen aus, was ich noch prüfen soll.

So wie ich das Stammtischvideo vom Dezember 2021 verstanden habe haben manche von euch DMX durchaus im EInsatz. Verwendet das auch schon jemand mit einem selbstgebauten EMpfänger oder nur mit kommerziellen Geräten?

Viele Grüße,
Holger


Holger28  
Holger28
InterRegioExpress (IRE)
Beiträge: 280
Registriert am: 31.01.2018
Ort: Bayern
Gleise Märklin M
Spurweite H0
Steuerung DCC z21PG, z21-App, Rocrail
Stromart Digital


RE: MobaLedLib: DMX zur Raumlichtsteuerung

#3 von Holger28 , 03.02.2024 17:51

Hallo,

ich hoffe das liest hier überhaupt wer.
Ich habe jetzt das ganze Konstrukt nochmal neu aufgebaut, ohne Hauptplatine, zwei frische Nanos mit nur den Beispielsketchen der DMXSerial.h, Anzeige über LED und siehe da, das funktionierte so wie es soll. Lange Rede kurzer Sinn, Das Problem war mein Versuch der Kontrolle -> die Lib für das OLED-Display kommt sich offensichtlich mit der DMX-Bibliothek in die Quere.

Der Aufbau wie im ersten Beitrag gepostet funktioniert wenn man das OLED wegläßt!

Inzwischen habe ich auch die RF24 ans Laufen gebracht und kann drei separate RGB-LED aus der MLL heraus ansteuern. Jetzt hänge ich aber am weißen Kanal. Die ersten drei Werte habe ich über LED einstellbar erzeugt, theoretisch wird dafür eine WS2812 LED = 8-0, C1-1, C2-2, C3-3 angesprochen. Für die nächste LED = 8-1, C1-1 wird der Wert nicht korrekt übergeben. Leider kann ich die von der MLL erzeugten Werte nicht einsehen, I2C-OLED war ja eine blöde Idee und serieller Monitor geht nicht.

Wie erzeuge ich 4 aufeinanderfolgende Werte in der MLL?


Nachtrag: Hatte für weiß D4 der aber kein PWM kann genutzt, mit D10 funktioniert auch das. Dann kann ich mich jetzt endlich daran machen, die Platinen für die Lampen umzubauen.

Gruß,
Holger


musi4070, Hardi und Jueff haben sich bedankt!
Holger28  
Holger28
InterRegioExpress (IRE)
Beiträge: 280
Registriert am: 31.01.2018
Ort: Bayern
Gleise Märklin M
Spurweite H0
Steuerung DCC z21PG, z21-App, Rocrail
Stromart Digital

zuletzt bearbeitet 03.02.2024 | Top

RE: MobaLedLib: DMX zur Raumlichtsteuerung

#4 von Holger28 , 04.02.2024 08:34

Hallo,

jetzt habe ich eine Frage zur sinnvollen Programmierung. Für die Steuerung mittels IR-Empfänger hatte ich den Sender so ausgelegt, dass dieser nur Startbefehle sendet (Sonnenauf-, -untergang, Tag, Nacht oder Gewitter) und der Nano der Lampe hat dann fest vorgegebene Abläufe dargestellt.
Die Alternative gerade jetzt mit MLL ist ständig die aktuellen RGBW-Werte zu senden bzw. zumindest immer dann, wenn Änderungen ggü. vorigem Wert vorliegen. Das gibt maximale Flexibilität aber auch eine Menge Datentransfer auf der 2,4 GHz-Frequenz.
Also, wie würdet ihr das umsetzen?
1. MLL macht Sprünge auf die vier Tageszeiten + Geschwindigkeit der Änderung, sendet diese Endwerte und der Nano der Lampe macht die Übergänge vom aktuellen auf die Zielwerte selbst fließend.
2. MLL gibt die aktuellen RGBW-Werte quasi in Echtzeit aus und der Nano der Lampe schreibt diese direkt in die LED-Streifen.

In Szenario 1 müsste die Brücke DMX-RF24 einen steigen Vergleich der letzten und aktuelen Werte machen und nur bei Änderungen den Datensatz an die Lampen weiterleiten.

Ich habe noch beim Empfänger in der Schleife einen Delay von 0,5 s nach dem Auslesen und Setzen der RGBW-Werte. Das stammt einfach vom Beispielsketch. Habt ihr hier schon Erfahrung was Sinn macht? Ganz ohne Delay oder welcher Wert reduziert den Funkverkehr bei noch akzeptabel geschmeidigen Übergängen. Ich nehme mal an, dass das nur bei Szenario 2 relevant ist und bei Szenario 1 muss der Empfänger permanent auf Daten warten ohne Delay, richtg?

Grüße,
Holger


Holger28  
Holger28
InterRegioExpress (IRE)
Beiträge: 280
Registriert am: 31.01.2018
Ort: Bayern
Gleise Märklin M
Spurweite H0
Steuerung DCC z21PG, z21-App, Rocrail
Stromart Digital


RE: MobaLedLib: DMX zur Raumlichtsteuerung

#5 von Matthias01 , 04.02.2024 17:29

Hallo, Für DMX Steuerungen bist du hier glaube ich im falschen Forum.
Ich kenne mich allerdings mit Professionellen DMX Bühnen Steuerungen aus, und da werden Start Adressen vergeben, und die kann ich hier nirgends sehen .
Sender und Empfänger müssten hier die DMX Adresse 1 haben.
Gruß
Matthias


Matthias01  
Matthias01
S-Bahn (S)
Beiträge: 13
Registriert am: 25.01.2022
Gleise M Gleis
Spurweite H0
Stromart Analog


RE: MobaLedLib: DMX zur Raumlichtsteuerung

#6 von Holger28 , 04.02.2024 22:06

Hallo Matthias,

danke für die Antwort. Ich denke bei der MLL bin ich durchaus richtig, da DMX hier nur dazu dient digitale Werte von der Hauptplatine zu den Lampen zu bekommen. Ich will keine nativen DMX-Geräte ansteuern.

Ich bin jetzt damit angefangen von der Hauptplatine nur Werte für die Tageszeit (Nacht, Sonnenauf-, -untergang, Tag) und die Geschwindigkeit der Farbwechsel zu senden und die Übergänge komplett von der Lampensteuerung übernehmen zu lassen. Der Nano hat eh sonst nichts zu tun 😉

Es hat sich gezeigt, dass man beim Senden von freien RGB-Werten beim linearen Überblenden auch mal durch Farben läuft die unrealistisch sind wegen zu viel Grünanteil.

Gruß,
Holger


Holger28  
Holger28
InterRegioExpress (IRE)
Beiträge: 280
Registriert am: 31.01.2018
Ort: Bayern
Gleise Märklin M
Spurweite H0
Steuerung DCC z21PG, z21-App, Rocrail
Stromart Digital


RE: MobaLedLib: DMX zur Raumlichtsteuerung

#7 von raily74 , 04.02.2024 23:17

Zitat von Holger28 im Beitrag #3
ich hoffe das liest hier überhaupt wer.


Hallo Holger,

ich bin zumindest mit einem Abo des Themas dabei, weil es mich sehr interessiert. Aber aktuell habe ich den Kopf mit anderen Dingen voll und kann mangels Erfahrung nichts beitragen (außer Zuspruch).

Ich hab auch schon ein DMX Gerät für die MLL gekauft. Aber aktuell bin ich mit Zugzielanzeigern völlig ausgelastet.


Viele Grüße, Michael

Das 3-Generationen-Projekt | H0-Epoche V Anlage im Bau
YouTube MLL | Erwecke deine Modellbahn zum Leben
MobaLedLib Wiki | Alle Lösungen zentral an einem Ort


Holger28 hat sich bedankt!
 
raily74
EuroCity (EC)
Beiträge: 1.461
Registriert am: 05.12.2006
Ort: Kassel (LK)
Gleise Roco Line
Spurweite H0
Steuerung Z21, iTrain, MobaLedLib
Stromart DC, Digital


RE: MobaLedLib: DMX zur Raumlichtsteuerung

#8 von Holger28 , 05.02.2024 06:33

Sorry Michael, sollte kein Vorwurf sein, mich hat nur zwischenzeitlich runter gezogen, dass ich mich bei der Fehlersuche im Kreis gedreht und keine Ansätze mehr gesehen habe. Ich nahm an, ich hätte einen für die MLL-Gemeinde offensichtlichen Fehler eingebaut der doch irgendwem auffallen wird. Aber die OLED Lib war doch sehr speziell. Jetzt geht es ja weiter. 😉

Viele Grüße,
Holger


raily74 und 4fangnix haben sich bedankt!
Holger28  
Holger28
InterRegioExpress (IRE)
Beiträge: 280
Registriert am: 31.01.2018
Ort: Bayern
Gleise Märklin M
Spurweite H0
Steuerung DCC z21PG, z21-App, Rocrail
Stromart Digital


RE: MobaLedLib: DMX zur Raumlichtsteuerung

#9 von fbstr , 05.02.2024 08:16

Zitat von Holger28 im Beitrag #3
ich hoffe das liest hier überhaupt wer.


Doch doch Holger,

z.B. ich habe ein Auge darauf. Aber ich fürchte Jürgen war bisher der einzige der DMX nutzte. Ich habe zwar auch schon viele Zutaten in meiner Kiste, die seit Jahren mal darauf warten getestet zu werden, aber es kommt immer etwas anderes dazwischen...


Gruss
Frank
---------------------------------------------------------------------------------------------------------------------
MobaLedLib Wiki
Projekt "Bahnpark Augsburg"
Stummitreff BB: jeden 3. Freitag im Monat im Haus Sommerhof in Sindelfingen


raily74, Holger28 und TMaa haben sich bedankt!
 
fbstr
Metropolitan (MET)
Beiträge: 2.523
Registriert am: 28.08.2016
Ort: Stuttgart
Gleise Peco Code 75, Trix C
Spurweite H0, H0e
Steuerung YD7001, MobaLedLib, MirZ21, Lenz LZV100
Stromart DC, Digital


RE: MobaLedLib: DMX zur Raumlichtsteuerung

#10 von Holger28 , 17.02.2024 15:01

Hallo zusammen,

ich habe endlich meine Lampen so am Laufen wie ich mir das vorgestellt habe. Den ersten Beitrag hier im Thread habe ich aktualisiert. Aber natürlich ist das nur ein Schritt auf der langen MLL-Reise. Meine Moba steht auf dem Dachboden im Gang, der ganze Raum ist 7 m lang aber in der Mitte kann ich über knapp 2 m nur zwei Gleise zwischen den beiden Abschnitten legen. Optisch habe ich sozusagen zwei Platten. Für die MLL-Installation interessant ist, dass ich nicht zentral eine Hauptplatine platzieren kann. Nachdem ich meine Zweifel hatte das Signal der Pushbuttonplatine >5 m weit zu übertragen habe ich eine zweite MLL-Hauptplatine unter die andere Platte gehängt. Jetzt habe ich nur das Problem, dass wenn eine der beiden Hauptplatinen eine Aktion auslöst, dann bekommt die andere oder gar die DCC-Zentrale davon nichts mit. Eigentlich ist eine Hauptplatine ein reiner Empfänger, bitte um Korrektur falls ich da was übersehen habe.

Eingänge
- DCC / Selectrix / LocoNet
- Taster
Ausgänge
- LED-Datensignal für die WS2812 bzw. WS2811
- DMX
alles unidirektional

Wenn die Taster nur einzelne, lokale Aktionen auslösen ist das ja ok. Wenn ich die Raumlichtsteuerung per Rocrail oder Handregler also über die Zentrale und somit DCC schalte können beide Hauptplatinen auf die selbe DCC-Adresse reagieren, auch ok.

Jetzt habe ich aber über beiden Moba-Platten zusätzliche LED-Streifen, um auch die hinteren Bereiche auszuleuchten. Die hängen jeweils an einer Hauptplatine. Wie kann ich nun beim Tastendruck per Pushbutton der zweiten HP das mitteilen?

Diese Fragestellung hat mich dazu bewogen die Raumlichtsteuerung per RF24 nicht unter die rechte Moba-Platte zu hängen sondern per DMX-Kabel den Nano für das RF24-Sendemodul nahe an die HP der linken Moba-Platte zu bringen. Mein Hintergedanke ist, das ich per DMX-Ausgang die Info zum Tastendruck dann am Nano verfügbar habe und eine Verbindung zur 2. Hauptplatine herstelle.

Frage: Wie stelle ich die Verbindung zwischen Nano und HP am sinnvollsten her und wie lese ich das Signal dann am besten aus? Wenn schon dann würde ich gerne nicht nur ein einzelnes 0/1-Signal haben sondern gerne mehrere Bits setzen können.

Ist es ratsam ein PWM-Signal über Optokoppler an Pin A6 zu übergeben quasi als "Analoges Einlesen von 10 Tastern" und die Widerstände zu emulieren? Ist von hinten durch die Brust, ich weiß

Viele Grüße,
Holger


Holger28  
Holger28
InterRegioExpress (IRE)
Beiträge: 280
Registriert am: 31.01.2018
Ort: Bayern
Gleise Märklin M
Spurweite H0
Steuerung DCC z21PG, z21-App, Rocrail
Stromart Digital

zuletzt bearbeitet 17.02.2024 | Top

RE: MobaLedLib: DMX zur Raumlichtsteuerung

#11 von Holger28 , 17.02.2024 20:35

Hallo nochmal,

also PWM am Arduino einlesen ginge nur mit einem Tiefpassfilter der sich aber langsam einstellt. Das würde bedeuten, dass die geglättete Spannung auf den Zielwert steigt oder fällt. Liest man dann aber die Taster analog aus würde der Wert bei den tieferen vorbeikommen und mehrere Taster würdennacheinander als ausglöst gewertet werden. --> Kein gangbarer Weg

Gruß,
Holger


Holger28  
Holger28
InterRegioExpress (IRE)
Beiträge: 280
Registriert am: 31.01.2018
Ort: Bayern
Gleise Märklin M
Spurweite H0
Steuerung DCC z21PG, z21-App, Rocrail
Stromart Digital


   

Linux und Modellbahn
Z21 wlan mit I Pad

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz