RGBW-Controller mit ATMega88/168 und DMX-Empfang

  • Ich hab an der RC5-Datei nichts geändert. Das ist auch eine fertige Bibliothek. Hast Du den Mega168 auch auf 8MHz laufen? Da gibt es ein Fuse-Bit Divide clock by 8. Das darf dann nicht aktiv sein. (ist im Standard aber aktiv). Mit RC5 hatte ich noch nie Probleme, seit ich diese Bib. verwende.

  • Danke für den Code. Ich wed mir alles nochmal im Detail ansehen. Trozdem noch ein paar Fragen: In der Fernbedienungs-Routine ist im Case-Zweig die default-Anweisung mit iProg=8 versehen. Was willst Du damit erreichen? Theoretisch kommt der Code da nie vorbei, da nur bei einem Tastendruck in den Zweig gesprungen wird.


    Dann ist da aus meiner Sicht eine Tod-Sünde drin: "goto" Ich wusste gar nicht, dass das in C auch funktioniert. Du springst aus dem case-Zweig raus in einen anderen rein. Ist das nur aus Kompatibilität zur alten Bedienung gedacht? Das könntest Du auch elegante lösen, indem das break in den else-Zweig wandert und der Wert von code auf 47 gesetzt wird. Oder man lagert das Schreiben gleich in eine Funktion aus und ruft diese da auf, wo benötigt.


    VG
    Nino

  • Moin,
    ich habe ja Deine Platinen mit RGB + W hier liegen.
    Die sollen für meine Zwecke ja in erster Linie ein weiß nach eigenem Empfinden bieten.
    Also weiß und die RGBs so zusammendimmen/mischen bis es schön ist :D .(Terrassenbeleuchtung je nach Stimmung/Bedarf).
    Wie würdet Ihr das machen? Ich dachte an 4 Potis oder was noch besser wäre, über IR.
    Wobei der 1736 beim R leider nicht mehr zu bekommen ist.


    Geht das? Was bräuchte ich zusätzlich?

  • Moin Moin,


    Turi,


    mit dem Default-Wert hast Du recht, da kommt man nie hin, hatte ich nur aus Sicherheitsgründen eingebaut, da am Anfang - wegen der Fuses - nichts bei mir lief.
    Den Goto kann man eliminieren, ich persönlich bevorzuge das Abspeichern mit der Store/Ok - Taste (links oben auf FB) ohne key==0, aber das ist Geschmackssache.
    Auch die Vorgabewerte nach Lesen des EEProms sind nur für den erstmaligen/einmaligen Vorgang da, wenn das EEPROM noch nicht beschrieben wurde.


    Die Ausgabe über die long Zwischenwerte zwi,zwip verhindert einen Überlauf (32768) bei der Multiplkation von bri (maximal 255?) mit xxx_val (maximal 255) , kann man aber sicher auch eleganter machen. Ich weiss nicht, wie/ob sich die -1-Werte am PWM-Eingang auswirken,und wie das Verschieben >>7 dann funktioniert, müsste man eigentlich mal separat untersuchen.


    PS: Die FETs und die TC247 gibt's günstig bei buerklin.de (unter 1€ (ohne MWST) bei Stückzahl 1, Rabatt ab 10/100) , die versenden wohl aber nur
    an Kunden mit Gewerbeschein.


    Gruss mausi_mick

  • hi turi,


    der hue - Wertebereich von 0-764 hatte mich etwas gestört.
    hab das dann mal auf den normierten (0-360°) umgesetzt (oder genauer: die Eingabe/Anzeige erfolgt zwischen 0 und 360° in 1° Schritten, die Umsetzung in RGB erfolgt wie bisher von 0 ... 764).
    Hab zusätzlich zu RGB in Zeile 1 die H S B - Werte in Zeile 2 ausgegeben ( hab dann auch hue bei Key==1 und sat bei Key=2 bei code 16/17
    erhöht bzw erniedrigt).


    Gruss mausi_mick

  • Eigentlich macht man das ja nicht, aber ich zitiere mich mal selber:

    Kann mir jemand helfen? Wollte meine Bestellung abschicken.
    Welche Spezifikationen sollten die Potis haben?

  • Nur kurz zu Deinen Fragen: die Potis sind relativ unkritisch so im Bereich 22k - 100k optimal. Ich habe es aber auch schon mit 1M erfolgreich getestet. Als Empfehlung 100k.


    Das mit dem TSOP ist wirklich problematisch. Ich hatte auch noch in verschiedenen anderen deutschen Shops geschaut. Die hat offensichtlich derzeit keiner. Ich habe noch einige da von den TSOP1236. Falls nichts zu bekommen ist, einfach Bescheid geben.


    Das Mischen der Farbe kann man schon mit den Potis machen (hier wären es übrigens 5, da die Helligkeit extrag geregelt werden kann). Allerdings wäre es sicher besser, sich einzelne Farbstimmungen zu generieren und dann per FB o.ä. als fest gespeicherte Werte zu laden. Das wird auch eine der nächsten Erweiterungen in der Firmware sein. Nur muss ich dazu das Bedienkonzept der FB nochmal komplett umstellen.


    Für DMX hab ich inzwischen meinen USB-DMX-Adapter da. Die Implementierung wird wohl noch ein paar Tage dauern ...

  • Ich habe inzwischen eine neue Programmversion erstellt. Diese ist hier zu finden: RGBW-Controller mit ATMega88/168


    Mit dabei ist jetzt auch das Display zur Anzeige der Werte analog zum RGB-Universal-Controller. Leider ist es kaum möglich, auf 16x2 mehr Informationen unter zu bringen. Ich werde wohl auf 20x2 ausweichen, später mit einer komplett neuen Bedienung auf 20x4. Die Anschlüsse für das Display sind:


    D4-7: PD5, PB5, PD6, PD7
    EN: PB4
    RS: PD4


    Achtung: das Display muss über PB7 gegen Masse aktiviert werden. Hier kann man anstelle von C2 einen Jumper vorsehen.


    Der Taster zur manuellen Programm-Umschaltung ist weiterhin an PB0 verfügbar. Zusätzlich habe ich ein Strobo-Programm implementiert, das über die Taste 4 der Fernbedienung aufrufbar ist.

  • Moini,
    dazu ist hier im Thread noch nichts aufgetaucht, deshalb Frage ich als Laie mal :D


    Poti an ADC, bedeutet je einen Pin des ADC an einen Poti und dann gegen GND setzen?
    Was muss ich noch beachten?
    Mit dem Wust an Dateien die in dem Softwarepakte sind, beschäftige ich mich dann nach den Potis :D

  • Neues vom Controller: ich habe endlich eine neue Firmware erstellt. Die v32 enthält jetzt die DMX-Routine für den Empfang der Daten. :rolleyes: Den Download gibt es hier: RGBW-Controller mit ATMega88/168


    Ich habe es folgendermaßen eingestellt: der DMX-Empfang wird über das Programm 5 eingestellt (Taste auf Fernbedienung oder auch mit Taster). Dei DMX-Startadresse steht derzeit fest auf 1 im Quellcode. Das ist sicher nicht optimal. In einer folgenden Version wird die dann noch änderbar. Jetzt muss halt der Quellcode angepasst werden. Dann belege ich die folgenden Kanäle:


    1: Helligkeit gesamt
    2: RGBW-Modus rot
    3: RGBW-Modus grün
    4: RGBW-Modus blau
    5: RGBW-Modus weiß
    6: HSB Farbton
    7: HSB Sättigung
    8: Strobo Einschaltdauer
    9: Strobo Pause
    10: Umschaltung der Modi: 1-99=RGB; 100-199=HSB; 200-255=STROBO


    Das ist gleich eine ganze Menge geworden. Ich hoffe, man kann das so machen bzw. es ist üblich und sinnvoll. Über Anregungen/Kritik wäre ich dankbar.

  • Hm, also 10 Kanäle sind schon ne ganze Menge....


    "üblich" wäre beim Strobo eigentlich 1 Kanal: bei z.B. 0-5 ist das Strobo aus, bei 6-255 blitzt es immer schneller - aber eben immer kurze Blitze, wie bei nem Röhren-Strobo... wenn man das länger an will, also eher so ein Blinken, das macht man dann in der Lichtsteuer-SW


    und auch mit dem Modus: da muss dann das Strobo noch mal extra aktiviert werden... ?( - und welche Farbe wird dann dabei genommen (also wenn das Strobo an ist), die HSB oder die RGBW...?


    da man ja die Farbe anscheinend *entweder* per RGBW *oder* per HSB einstellt (ist da weiß mit dabei...? oder nur die RGB-LEDs..?) wäre es üblicher, dann die Kanäle doppelt zu belegen - also z.B. dann so in der Art:


    1 = Helligkeit gesamt
    2 = R oder Hue (je nach Modus)
    3 = G oder Sat (je nach Modus)
    4 = B (inaktiv im HSB-Modus)
    5 = Weiß
    6 = Strobo
    7 = Modus (z.B. 1-10 = RGB, 11-20 = HSB, 21-30 = Standalone-Programm 1, 31 - 40 = Standalone-Programm 2, usw.)

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Ja, 10 Kanäle sind schon heftig. Hatte ich auch überlegt, als ich es programmiert hatte. Also HSB mit RGB zusammen zu legen ist schon mal eine gute Idee. Das lässt sich leicht ändern.


    Beim Strobo gehe ich vielleicht nicht den Standard-Weg. Ich habe halt 2 Parameter, die ich beeinflussen kann: Dauer und Pause. Pause entspricht ja der Frequenz, also das was Du meinst. Kann man sicher darauf reduzieren. Bei mir blitzen derzeit die Farben einzeln auf (R,G,B,W). Ich find das gar nicht so schlecht. Man sollte dann mal noch einen Modus für weiße Blitze einbauen, richtig.


    Würdest Du die Modus-Wahl wirklich in so kleine Bereiche teilen? Ich dachte mir, dass man am einfachsten den gesamten Reglerbereich nutzt. Was meinst Du mit den Standalone-Programmen? Programme, die der Controller "abspielt" wie Strobo oder später mal einer Feuer-Simulation?

  • Wo hast Du das schon gesehen..? ?(


    Ich meinte das eben genau so: den Strobo-Kanal Standardmäßig, dass einfach die aktuell eingestellte Farbe blitzt - wie gesagt, kann man dann *in jeder Farbe* blitzen, nicht nur weiß oder ein vorgefertigtes Programm...


    dieses (alle Farben der Reihe nach blitzen) könnte dann eben eines der Standalone-Programme sein - da Du dort wiederum die RGB/HSB-Regler nicht brauchst, kannst Du die in diesem Modus wieder anders belegen, also z.B. eben für Dauer, Pause, faden ein oder aus...


    und den Bereich natürlich nach Zahl der Standalone-Programme (Ja, z.B. sowas wie Feuer, Rainbow, etc.) aufteilen - wenn's nur 2 Standalone-Programme sind, dann z.B. 0-63 = RGB-Modus, 64-127 = HSB-Modus, 128-191 = SA 1, 192-255 = SA 2 - je mehr Programme, umso kleiner diese Bereiche...


    oder eben, damit nachträgliche Erweiterungen ohne Änderung in der LS-SW möglich sind, eben pro Bereich 10 Schritte, dann hast Du max. 23 SA-Programme, musst ja nicht von Anfang an alle voll machen...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!