Eiwomisa 1 - v1.2 (RGBW Controller) Bausatz - aktuell mit 25% Rabatt!!!

  • Hab mein posting nochmal editiert, um darzulegen, warum ich das gerne so hätte. Aber wenn is nich dann is nich... :(


    Allerdings muss ich gestehen, daß ich jetzt beim schnellen Überlesen immer noch nicht verstanden habe, wie es momentan funktioniert. Da muss ich mir wohl die Anleitung neben die FB legen...

  • *Ich persönlich* könnte dafür auch durchaus damit leben, wenn eines der Programme dafür wegfallen müsste, für sowas wie die Sachen mit DMX fällt mir als "Otto-Normalanwender" jetzt keine Situation ein, wo ich das benötigen würde, ebensowenig wie für Aquarium. Da hätte ich lieber ein Programm "Katze" - ich hab nämlich keine Fische ;)

    Sag bloß das ich dafür jetzt den ganzen Abend dran rumgemacht habe? Wo wohnst Du eigentlich? :P :D


    Nee Spaß. Klar kann man es nicht jedem recht machen. Und deswegen geht es hier in diesem Beitrag erst mal um einen Standard, der die große Masse zufriedenstellt. Wenn Du für Dich etwas eigenes willst, kein Problem, kann ich Dir machen, aber erstmal muss der Standard fertig sein. Danach kommen Sonderwünsche, und die werde ich nicht umsonst machen.....


    Vielleicht mache ich mal noch verschiedene Firmware's, Home, DMX, Showlight oder so. Aber kommt Zeit kommen Anfragen......


    Gruß, Benny.

  • Ok, dann kurz und schmerzlos: is nicht. Ich habe das jetzt extra wegen Deinem Post auf % Werte geändert, und das funktioniert. Aber global, für alle Programme. Da musst dann in die Settings gehen wenn das ändern willst. Oder nenn mir die RC5 Codes mit denen das gerne direkt ändern würdest, dann bau ich Dir das ein. Musst dann aber selbst sehen wie das irgend einer FB beibringst. Aso, nur die Command Codes, die Adresse ist immer 00.


    Gruß, Benny.


    hi,


    die leute, die das dimmen mit universal fb machen können, werden die codes schon irgendwie auf die fb bekommen. wenn noch 2 rc5 codes frei sind, würde ich es sehr begrüßen, wenn man die beiden zum rauf und runter dimmen noch einbaut.
    wie von naturelle schon geschrieben, wird in der praxis schnell der wunsch aufkommen, die beleuchtung je nach wunsch heller oder dunkler zu stellen, und zwar nur per fb, ohne farben neu zu programmieren oder am controller sich durch menüs zu klicken.


    gruß,


    philipp

  • Da ich da mit einem Single wegen der Kommastelle rechnen muss, kostet das viel Platz und vor allem Rechenzeit! Ich muss den aktuellen Wert durch 100 teilen, mit der gewünschten Helligkeit wieder multiplizieren. Diesen Wert dann runden, dann den Integer aus dieser ziehen und dann erst kann ich den Wert in die PWM schreiben.
    Nur zur Erinnerung, der Mega644P ist nur ein 8bit µC, kann sich ja jeder selbst vorstellen das da einige Rechenzyklen für einen Single draufgehen.

    Keine Ahnung, was ein "Single" sein soll... ?(


    Aber warum machst Du's Dir denn so schwer...? - mach doch einfach die Gesamt-Helligkeit in 256 Stufen (1-256), ist doch egal, ob man da nun "Helligkeit 100%" sagt oder "Helligkeit 256" - das ist trotzdem eine "prozentuale Dimmung" - das was Du vorher hattest mit aboluten "Dimmwerten abziehen" ist jedenfalls totaler Quatsch.


    Wenn der Wert unbedingt von 0-100 gehen soll, dann kannst Du den ja so im Display einstellbar machen, anschließend wird er auf 1-256 umgerechnet (aber nur einmal!) und dann intern mit diesem Wert weitergerechnet - ist besser, als jedes Mal durch 100 zu teilen (was der µC ja in HW nicht kann)


    bei 1-256 kannst Du einfach den Kanal-Wert mit dem Dimmer-Wert multiplizieren, anschließend teilst Du durch 256, und das (das ist der Witz dran) ist gar keine "Belastung" für den µC, weil Du dazu nur das High-Byte des 16-Bit-Ergebnisses nehmen musst - also gar nicht wirklich groß dividieren... das Ergebnis (da kommt wieder 0-255 raus, ohne vergrößerte Abstufungen, ohne Kommastellen oder sowas, nahe an der Hardware) schreibst Du dann in die PWM-Register...


    Siehe hierzu auch diesen Beitrag...ganz unten, das sollte in Bascom auch so gehen...


    Ach, übrigens, das steht da auch drin: immer *zuerst multiplizieren* und *dann dividieren* - da freut sich die Auflösung drüber.... ;)

    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!

  • Naja, wir arbeiten nun mit 2,55 Schritten im % Bereich (255 : 100). Aber x,55 geht ja nicht und deshalb wird das zu 3 dann 5, 8, 10, 13, 15....usw. bis 255. Also da ist das dann schon ok, aber halt viel Rechenaufwand.

    Heißt das, dass die Farbwerte auch in % eingestellt werden? also rot=50% grün=10% .. oder doch im "RGB-Code" rot= 128 grün= 26 ...?


    Zitat

    Das mit den warmen und kalten Farben habe ich so umgangen das man ja z.B. beim Fading insgesamt 9 einstellbare Farben hat die man anfaden kann. Jede Farbe mit RGB für sich einstell- und aktivierbar. Jetzt muss halt jeder für seine Farben einstellen wie er will und die dann entsprechend aktivieren.


    Farbtabellen für jedes Programm? Das passt jetzt echt nimmer rein. Und es wäre dann auch gar kein Taster mehr frei auf der FB zum direkt umschalten.


    Gruß, Benny.

    Das mit der zweiten Farbtabelle hat sich ja durch die Implementierung der Dimmfunktion erledigt. War halt dafür gedacht, dass man zwei mal 9 farben einstellen kann und dann iergendwie zwischen den Tabellen wechseln kann, um um die Dimmfunktion rum zu kommen. aber hat sich ja schon erledigt.


    Pesi


    Soweit ich das zu so später Stunde noch nachvollziehen kann, klingt das sehr logisch.
    Wenn ich das richtig verstanden habe sollte das also so ablaufen:
    %-Wert eingeben
    mit 256 multiplizieren
    durch 100 dividieren
    den Wert runden
    anschließend abspeichern.


    Farbwert/Kanalwert mit dem Umgerechneten %-Wert multiplizieren
    Das höherwertige Byte an die PWM übergeben.

  • Keine Ahnung, was ein "Single" sein soll... ?(

    Siehe Wiki: Klick und hier ne Kurzerklärung: Klick

    Zitat

    Aber warum machst Du's Dir denn so schwer...? - mach doch einfach die Gesamt-Helligkeit in 256 Stufen (1-256), ist doch egal, ob man da nun "Helligkeit 100%" sagt oder "Helligkeit 256"

    Wenn das keinen stört, ok. Wäre mir natürlich lieber! Momentan habe ich es aber noch so gelöst das nur ab einem %-Wert zwischen 0 und 100 berechnet wird. Bei 100% und bei 0% brauche ich ja nichts berechnen, da reicht ja durchreichen.

    Zitat

    Wenn der Wert unbedingt von 0-100 gehen soll, dann kannst Du den ja so im Display einstellbar machen, anschließend wird er auf 1-256 umgerechnet (aber nur einmal!) und dann intern mit diesem Wert weitergerechnet - ist besser, als jedes Mal durch 100 zu teilen (was der µC ja in HW nicht kann)

    Das sieht dann halt blöd aus wenn man dann 3 mal +1 drücken muss damit sich der % Wert von 0 auf 1 ändert. Wenn der intern von 0-255 zählt und das dann umgerechnet von 0 - 100 ausgibt, wäre das der Fall.

    Zitat

    bei 1-256 kannst Du einfach den Kanal-Wert mit dem Dimmer-Wert multiplizieren, anschließend teilst Du durch 256, und das (das ist der Witz dran) ist gar keine "Belastung" für den µC, weil Du dazu nur das High-Byte des 16-Bit-Ergebnisses nehmen musst - also gar nicht wirklich groß dividieren... das Ergebnis (da kommt wieder 0-255 raus, ohne vergrößerte Abstufungen, ohne Kommastellen oder sowas, nahe an der Hardware) schreibst Du dann in die PWM-Register...

    Das musst mir nochmal genauer erklären. Also Kanalwert = 127, Dimmwert = 127 wären dann multipliziert 16129, das durch 256 wären dann 63,00390625......toll.



    Ich denke ich lasse es jetzt erst mal wie es ist und schaue das ich noch die RC5 Codes freimache für den Direktzugriff auf die Dimmwerte. Wenn die dann einer mal in ne Logitech Harmony gebracht hat, dann bitte sagen wie! :D


    Gruß, Benny.

  • Du darfst bei der division durch 256 nicht den Zahlenwert sehen, sondern die 2 Bytes, in denen der Steht. Dann liest du "einfach nur" (keine Ahnung wie einfach / schwehr das ist) das höherwertige Byte aus und schickst das an deine PWM.
    Das Byte hat ja dann an sich wieder einen Wert zwischen 0 und 255. Die Zahlen, die hinter dem Komma stehen (niederwertiges Byte) würden dann halt einfach weg fallen


  • Ich denke ich lasse es jetzt erst mal wie es ist und schaue das ich noch die RC5 Codes freimache für den Direktzugriff auf die Dimmwerte. Wenn die dann einer mal in ne Logitech Harmony gebracht hat, dann bitte sagen wie! :D


    Gruß, Benny.


    hi,


    ich habe im heimkino forum mal einen thread eröffnet, ob jemand eine möglichkeit sieht, RC5 Codes mittels PC zu senden, die die Harmony dann anlernen könnte.
    http://www.beisammen.de/thread.php?threadid=98040
    da ich mich mit der logitech software nicht auskenne: kann man gelernte codes am pc auslesen und an andere user weitergeben? dann könnte ich vielleicht meine pronto als sender verwenden und mir eine harmony vom freund ausleihen, die codes auf die harmony überspielen und dann hier veröffentlichen.


    gruß,


    philipp

  • Aber warum machst Du's Dir denn so schwer...? - mach doch einfach die Gesamt-Helligkeit in 256 Stufen (1-256), ist doch egal, ob man da nun "Helligkeit 100%" sagt oder "Helligkeit 256" - das ist trotzdem eine "prozentuale Dimmung" - ...



    bei 1-256 kannst Du einfach den Kanal-Wert mit dem Dimmer-Wert multiplizieren, anschließend teilst Du durch 256, und das (das ist der Witz dran) ist gar keine "Belastung" für den µC, weil Du dazu nur das High-Byte des 16-Bit-Ergebnisses nehmen musst - also gar nicht wirklich groß dividieren... das Ergebnis (da kommt wieder 0-255 raus, ohne vergrößerte Abstufungen, ohne Kommastellen oder sowas, nahe an der Hardware) schreibst Du dann in die PWM-Register...

    Dem kann ich nur zustimmen. Da man vor allen Dingen auch die Division und, wenn ich das richtig verstanden habe, die Fließkommaberechnungen spart, wird das sowohl schneller als auch wieder viel kleiner.

  • Hi,


    also ich verstehe das trotzdem noch nicht so ganz. Wenn ich 127 * 127 mache dann bruache ich auf jeden Fall für dieses Ergebnis schon ein WORD, und welche Kommastelle soll ich dann beim WORD weglassen können wenn ein WORD gar keine Kommastellen hat?


    Auf jeden Fall hat das ganze verkleinern des Codes nun die FB-Auswertung etwas gebremst und so zählen die Zahlen von alleine nicht mehr so schnell hoch wie vorher. Ich denke das liegt an den vielen Sprüngen in Subprogramme, aber anders bekomme ich momentan den Code nicht passend. Da man aber den Wert des Weiterzählens jederzeit erhöhen kann, sollte das kein Problem sein. Man kann die Wertigkeit des Zählschrittes in den Stufen 1, 10, 100, 1000, 10000 und 50000. Ja, die 50000 braucht man z.B. für die Einstellung der Schaltzeiten im AQ Programm da dort ein sehr hoher Zähler dahintersteckt. Als diese Wertigkeiten werden in den Menüs, in denen man einen Wert anhand dieser Wertigkeiten einstellen könnte, als ein Zeichen irgendwo angezeit, meist oben rechts. Die Wertigkeit wird dann in römischen Ziffern angezeigt.


    Das mit den RC5 Codes werde ich mal verfolgen.


    Aso, und die Fernbedienungen wurden an mich verschickt, also dann wäre dann auch kein Problem mehr. Jetzt wird es nur noch mit den µC knapp, ich hatte nur 30 Stück davon und ca. 8 Stück fallen durch die Entwicklung und Prototypen weg. Ich habe die zwar schon vor Wochen bestellt und die hätten letzte Woche kommen sollen, aber irgendwie gibt es da Lieferschwierigkeiten. Naja, ich arbeite dann die Bestellungen halt nach Zahlungseingang von oben nach unten ab. Aber ddas wird schon, wenn die diese Woche nicht kommen dann ruf ich dort mal nochmals an.


    Gruß, Benny.


  • Wo wohnst Du eigentlich? :P :D


    aber erstmal muss der Standard fertig sein. Danach kommen Sonderwünsche

    Wie Du weisst wohne ich momentan sozusagen im Nirgendwo... Das liegt allerdings in Dortmund ;)
    Zu Sonderwünschen: ich kann Dich verstehen und stimme Dir vollkommen zu, aber scheinbar bin ich nicht alleine mit dem Wunsch nach simpler Helligkeitsregulierung im Programm.

  • Du darfst bei der division durch 256 nicht den Zahlenwert sehen, sondern die 2 Bytes, in denen der Steht. Dann liest du "einfach nur" (keine Ahnung wie einfach / schwehr das ist) das höherwertige Byte aus und schickst das an deine PWM.
    Das Byte hat ja dann an sich wieder einen Wert zwischen 0 und 255. Die Zahlen, die hinter dem Komma stehen (niederwertiges Byte) würden dann halt einfach weg fallen

    Ja, trotzdem hätten wir dann noch das Problem das es im Display zwar von 0-100% anzeigt, ich im Hintergrund aber einen Zähler von 0-255 einstelle. Also das es dann im Display von 0 auf 1% geht muss ich den Zählerwert dann 3 mal erhöhen, das ist......naja.....schlecht.

    Zu Sonderwünschen: ich kann Dich verstehen und stimme Dir vollkommen zu, aber scheinbar bin ich nicht alleine mit dem Wunsch nach simpler Helligkeitsregulierung im Programm.

    Pesi zählt nicht :P :D Und eine globale Einstellmöglichkeit gibt es ja. Pesi, nicht böse sein. Du weiß wie das gemeint ist. ;)



    Aber mal ne andere Idee, fütter den Controller doch einfach per DMX! Dann kannst den Controller über nen Lichtpult steuern der gaaaanz viele tolle Funktionen hat. Dann musst nur noch nach der DMX-Fernbedienung schauen :D


    Gruß, Benny.

  • Also ich weis ja nicht genau wie das realisierbar ist, hatte mir das aber so gedacht, dass der Zähler von 0 - 100 geht und beim speichern des Wertes der Zählwert mit 2,56 multipliziert wird (oder mit 256 und dann durch 100 dividieren um nicht so mit kommerstellen zu arbeiten).
    Der errechnete Wert (0-256) müsste dann iergendwo gespeichert werden, damit er nicht für jeden Zyklus neu errechnet werden muss.


    Bei dem WORD sollst du keine Komastelle weglassen. (wie du schon angemerkt hast hat ein WORD auch keine Komastelle)
    In dem Word müsste dann nach der Multiplikation ein INT wert drin stehen.
    Um nun den Wert durch 256 zu teilen musst du einfach nur das höherwertige Byte des WORD auslese, dann hast du den gleichen wert, als wenn du das WORD per Befehl durch 256 teilen würdest (nur halt ohne Komastellen, mit denne man ja auch eh nichts anfangen kann)

  • Zur Berechnung: schaut doch einfach nochmal in den Thread bei meinem Controller. Pesi und Neni haben es doch dort sehr gut erklärt. Und die Division ist einfach eine Bit-Verschiebung. Das macht der Prozessor in wenigen Takten. Da entsehen keine Komma-Stellen beim Dividieren. Der große Vorteil: bei 8-Bit-PWM arbeitet man dann immer im Wertebereich der PWM selbst und braucht nichts umrechen. Statt 3x die FB zu drücken, um ein Prozent zu erhöhen, kann man doch einfach auch über Lookup-Tabellen arbeiten. Da werden dann z.B. nur 64 Stufen (Achtung, nur für Helligkeit sinnvoll) auf die Werte 0-255 abgebildet.

  • Also ich weis ja nicht genau wie das realisierbar ist, hatte mir das aber so gedacht, dass der Zähler von 0 - 100 geht und beim speichern des Wertes der Zählwert mit 2,56 multipliziert wird (oder mit 256 und dann durch 100 dividieren um nicht so mit kommerstellen zu arbeiten).
    Der errechnete Wert (0-256) müsste dann iergendwo gespeichert werden, damit er nicht für jeden Zyklus neu errechnet werden muss.

    Ok, das andere mit dem höherwertigen Byte habe ich verstanden. Aber wenn ich eine Variable ohne Kommastellen mit einem Kommawert multipliziere, dann schneidet mir der µC schon vor der Multiplikation den Kommawert ab. Also Word (127) * 2,56 würde 254 ergeben. Das gleiche Problem hatte ich nämlich auf mit dem Timer und der Zeitberechnung. Da muss ich auch einen Word-Wert mit 6,5536ms multiplizieren und es ging nur wenn ich ein Single dafür verwendet habe.


    Gruß, Benny.

  • Dafür hatte ich ja dabei geschrieben, dass man auch erst mit 256 multiplizieren könnte und anschließend durch 100 teilen, dann brauchst du nicht mit Kommastellen arbeiten. Was dann beim Teilen durch 100 hinterm kommer stehn würde fällt ja dann bestimmt auch weg? und somit hast du schöne glatte Werte zum weiterrechnen.


    EDIT: Ich kenne die ganzen sachen jedoch nur vom SPS proggen, gehe mal davon aus, dass die Unterschiede da nicht all zu groß sind.

  • Dafür hatte ich ja dabei geschrieben, dass man auch erst mit 256 multiplizieren könnte und anschließend durch 100 teilen, dann brauchst du nicht mit Kommastellen arbeiten. Was dann beim Teilen durch 100 hinterm kommer stehn würde fällt ja dann bestimmt auch weg? und somit hast du schöne glatte Werte zum weiterrechnen.


    EDIT: Ich kenne die ganzen sachen jedoch nur vom SPS proggen, gehe mal davon aus, dass die Unterschiede da nicht all zu groß sind.

    Hmm, ok, ich teste das mal was passiert wenn man den Werte aus einem WORD in ein Byte schreiben will. Ob Bascom da dann einfach den Rest abschneidet oder ob dann wieder ganz andere Sachen passieren.


    Dann ändere ich auch gleich das Farbrad ab. Da habe ich ja ausser den Werten RGB eigentlich auch noch einen für die Helligkeit. Den ändere ich auch gleich ab in %


    Gruß, Benny.

  • Hi nochmals,


    ich habe mir da was überlegt. Und zwar wegen dem dimmen als Grundeinstellung. Momentan zeige und werte ich das ja in % aus, also von 0 - 100. Leider gibt das aber dann eine schlechtere Auflösung der Dimmung -> 2,55 Schritte. Da der Controller aber kein x,55 umsetzen kann wechselt die Auflösung immer von 2er auf 3er Schritte.


    So, wenn es keinem was ausmacht keine prozentuale Einstellung sondern lieber eine probyteuale Einstellung verwenden. Sprich die Helligkeit wird im Verhältnis zum Wert 0-255 gedimmt. Das würde dann halt eine wesentlich höhere Auflösung ergeben!


    Also, stört sich jemand an einer Einstellung mit Werten von 0-255 anstatt von 0-100%?


    Ich werde nicht von 0-255 einstellen und von 0-100 anzeigen lassen! Denn das hätte dann den Effekt das man auf der FB 3x auf eine Taste drücken müsste damit sich der Wert ändert, das wäre ja doof. Also entweder ganz in 0-255 oder 0-100.


    Gruß, Benny.

  • Ich könnte mir dazu sogar vorstellen, dass 64 Stufen ausreichen. Es geht hier ja um die Grundhelligkeit.

    Nicht unbedingt. Wenn man eine entsprechend programmierbare FB hat kann man dann zur jeder Zeit die helligkeit Einstellen. Entweder für jeden Kanal einzeln oder für alle gesamt. Und dieser Dimmer ist ja auch dazu da eventuelle LED-Farb-Unterschiede auszubügeln, indem man dann einfach die zu starke Farbe herunterdimmt. Da wäre eine hohe Auflösung schon toll.


    Gruß, Benny.