Neue KSQ dimmbar 0-10V

Wuestenrose

Well-Known Member
Hallo Markus,

für die Sonnenelevation aus dem Diagramm existieren einige Webseiten, auf denen man sich die Werte berechnen lassen kann. Die Durchlässigkeit der Wasseroberfläche stammt daraus, die Werte wiederum habe ich mir aus den Fresnelschen Formeln hergeleitet. Das ist nicht mehr so ganz einfach und die Lösung der Formeln ist ein unschöner Haufen trigonometrischer Funktionen. Ich war mir daher zunächst auch nicht sicher, ob meine Berechnungen richtig sind, aber zumindest liefert meine Rechnung konsistente Werte auch bei Totalreflektion. Im Kirk habe ich dann ein wert-gleiches Diagramm gefunden, also entweder haben wir uns beide verrechnet, oder wir liegen beide richtig :wink:.

Das menschliche Helligkeitsempfinden folgt einer Logarithmus-Funktion, und zwar zur Basis 3. Hat der Herr Stanley Smith Stevens festgestellt. Deshalb sieht man aus dem Dunkeln heraus Änderungen schneller als wenn es bereits hell ist. Um dem entgegenzuwirken und die Dimmung für das menschliche Auge gleichmäßig erscheinen zu lassen, muß die Dimmkurve exponentiellen Verlauf haben.

Grüße
Robert
 

omega

Well-Known Member
Hallo Robert,

Wuestenrose":24twj2au schrieb:
die Werte wiederum habe ich mir aus den Fresnelschen Formeln hergeleitet. Das ist nicht mehr so ganz einfach und die Lösung der Formeln ist ein unschöner Haufen trigonometrischer Funktionen. Ich war mir daher zunächst auch nicht sicher, ob meine Berechnungen richtig sind, aber zumindest liefert meine Rechnung konsistente Werte auch bei Totalreflektion. Im Kirk habe ich dann ein wert-gleiches Diagramm gefunden, also entweder haben wir uns beide verrechnet, oder wir liegen beide richtig :wink:.
Respekt. :thumbs:

Um dem entgegenzuwirken und die Dimmung für das menschliche Auge gleichmäßig erscheinen zu lassen, muß die Dimmkurve exponentiellen Verlauf haben.
Ja, bei schnellem Dimmen. Aber bei einem z.B. 30 minütigen simulierten Sonnenaufgang sitzt niemand jeden Tag 30 Minuten vor dem Aq. Den Unterschied zwischen linear, quadratisch, exponentiell oder sinusförmig nimmt niemand in dieser Zeitdauer wirklich wahr, oder?

Edit: Für meinen Prototypen nehme sich den Sinus. Der rechnet sich auf einem Atmel Mega2560 sogar schneller als linear, wohl weil für trig. Funktionen Lookuptables genutzt werden, linear aber muß die CPU rechnen?

Grüße, Markus
 

MajorMadness

Active Member
Bei so ner Dikobeleuchtung ( :lol: ) von über 30 Minuten sieht man es ganz besonders. Vor allem weil Optisch eine 60 Minuten Dimmung Linear nur 30 Minuten Dauert, Dann denkst du es ist hell. ;)

Das Problem vor dem Du stehst habe Ich aber schon vor über einem Jahr gelöst und in der Steuerung des Minicontrollers integriert. Darfst dir gerne eine Inspiration hohlen, ist ja Open Soure damit das Nachbauen auf für ungeübte in dem Bereich möglich ist. :bier:
 

Wuestenrose

Well-Known Member
Hallo zusammen...

@omega
omega":b92sqm8i schrieb:
Ja, bei schnellem Dimmen. Aber bei einem z.B. 30 minütigen simulierten Sonnenaufgang sitzt niemand jeden Tag 30 Minuten vor dem Aq.
Also, mir wäre das ebenfalls zu doof. Aber wenn ich hier lese, wieviel Geld, Zeit und Gehirnschmalz manche Leute in die Sonnenauf- bzw. -Untergangssimuation stecken, dann komme ich zu dem Eindruck, diese Leute betreiben ein Aquarium allein dafür. Wahrscheinlich dimmen die ihr Aquarium ständig auf und ab, nur um zu zeigen, was man hat und wie toll man ist.

Den Fischen (vor allem denen) und den Pflanzen (denen eher weniger) und mir persönlich reicht eine lineare Dimmung. Andere Lichtfarben brauchen die Fische, die Pflanzen und ich auch nicht dafür. Praktisch, einfach, gut.

Den Unterschied zwischen linear, quadratisch, exponentiell oder sinusförmig nimmt niemand in dieser Zeitdauer wirklich wahr, oder?
Da wäre ich mir jetzt nicht ganz so sicher. Wie schon geschrieben, bei linearer Dimmung hat man nicht den Eindruck, daß sich überhaupt etwas tut.

Edit: Für meinen Prototypen nehme sich den Sinus. Der rechnet sich auf einem Atmel Mega2560 sogar schneller als linear, wohl weil für trig. Funktionen Lookuptables genutzt werden, linear aber muß die CPU rechnen?
Da hab' ich zuwenig Ahnung. Die letzten Microcontroller (8051 und 6502-Derivate) habe ich vor zwanzig Jahren programmiert - in Assembler mit einem selbstgeschrieben Macro-Interpreter. Das waren noch Zeiten... Jetzt verwende ich der Einfachheit halber die Siemens LOGO!. Ich bin nicht mehr der Jüngste und irgendwie fehlen mir der Elan und der Ansporn, mich noch in aktuelle Microcontroller hineinzufinden.

@MajorMadness
MajorMadness":b92sqm8i schrieb:
Bei so ner Dikobeleuchtung ( :lol: ) von über 30 Minuten sieht man es ganz besonders. Vor allem weil Optisch eine 60 Minuten Dimmung Linear nur 30 Minuten Dauert, Dann denkst du es ist hell. ;)

Das Problem vor dem Du stehst habe Ich aber schon vor über einem Jahr gelöst und in der Steuerung des Minicontrollers integriert. Darfst dir gerne eine Inspiration hohlen, ist ja Open Soure damit das Nachbauen auf für ungeübte in dem Bereich möglich ist. :bier:
Laß mich raten: > 1,5 Promille :bier: ? Willst du nicht endlich mal vor dem Abschicken deiner Beiträge 'ne Rechtschreibprüfung über dein dahingerotztes Geschreibsel drüberlaufen lassen? Achso, und wenn wir schon mal dabei sind: Meine Signatur gilt auch dir :lol: .

In diesem Sinne,
Robert
 
Ach Robert...

Gruß
Karl
 

omega

Well-Known Member
Hi Moritz,

MajorMadness":3rywf36d schrieb:
Bei so ner Dikobeleuchtung ( :lol: ) von über 30 Minuten sieht man es ganz besonders. Vor allem weil Optisch eine 60 Minuten Dimmung Linear nur 30 Minuten Dauert, Dann denkst du es ist hell. ;)
das seh ich hier bei meinem Prototyp. Aber dem Aq. ist es ja wurst.

Das Problem vor dem Du stehst habe Ich aber schon vor über einem Jahr gelöst und in der Steuerung des Minicontrollers integriert.
Ich hab kein Problem. Linear, exponentiell, sinusförmig hab ich mittlerweile alles durchprobiert. Für's Aq ist im Endeffekt alles gleich: smooth und nicht abrupt.

Darfst dir gerne eine Inspiration hohlen, ist ja Open Soure damit das Nachbauen auf für ungeübte in dem Bereich möglich ist. :bier:
So hohl bin ich dann doch nicht. SCNR
Nee, ist mir zu unflexibel und sind mir viel zu viele globale Variablen. Sieht mir zu sehr nach Cobol/Lochkarte aus (Anfängerstil, 70er Code).
Ich krieg die Funktionen auch selber hin und verzichte auf hart codierte Tabellen, Beleuchtungszeiten und Uhrzeit. Die meisten Parameter (>20) sind hier interaktiv konfigurierbar (ich mag nicht für jeden Versuch den µC neu brennen). Ich lese auch nicht in jeder Iteration (300x pro Sekunde?) die Echtzeituhr aus, viel zu teuer. Das mach ich alle 30 Minuten. In der Zwischenzeit zählt eine Timersteuerung alle 20ms hoch, ist genau genug (nach ~7h eine Sekunde falsch).
Ich brauch auch kein 12MB Zip-File, damit meine IDE funktioniert. Ist Eclipse ohne diesen Arduino-Sketch-Krampf.
Und ein 16MHz Mega2560 langweilt sich ja, 50x pro Sekunde den PWM-Level zu errechnen, egal ob linear, sin oder pow. Es braucht keine hart codierte Tabellen, sofern man keine CPU-Zeit mit sinnfreien Tätigkeiten verbrät.

Grüße, Markus
 

MajorMadness

Active Member
Nö, seit 6 Jahren nicht mal ein tropfen Alkohol, aber keine sorge, ich verzeih dir deine Unwissenheit und auch das du die Hilfe von anderen bei der Körperhygiene brauchst, mein Freund.
Danke auch das du dir um meine Rechtschreibung sorgen machst, das liegt jedoch leider dran das ich meist mit dem Handy schreibe und die Worterkennung nicht einwandfrei meine vertipper korrigiert. Hin rotzen hat aber was mit Flüssigkeit zu tun und das liegt mir fern. Ich wollte nur höflichst meine Hilfe und Kompetenz in Bereichen anbieten die du nicht hast.

Zu den Beweggründen einer 60minuten dimmung kann ich aber sagen das es nicht darum geht das man den ganzen Tag davor sitzt sondern den langsamen und farblich untermalten Sonnenuntergang als nettes ambiente bei abendlicher Gesellschaft zu genießen. Selbst wenn ich nur ab und an ins Becken schaue während ich fern sehe oder programmiere, so ist dies doch angenehmer als das "plötzliche" dimmen in 10 Minuten. Ich möchte sogar behaupten es macht das flair welches wir uns durch die japanisch angelehnten scaping Becken und Philosophie des harmonischen Flusses von Gestaltung und Licht erst perfekt.
Am Ende bleibt es jedoch Geschmack und da müssen wir jeden akzeptieren, auch wenn er nicht dem unseren entspricht.
 

MajorMadness

Active Member
Markus,
Ich meine nicht du solltst kopieren, doch die dimmung, mit der Tabelle, ist das was das Auge genau aus gleicht. Ist aber nicht auf meinen mist gewachsen sondern der gängige weg eine PWM dimmung fürs menschliche Auge linear erscheinen zu lassen. Die Zeiten hingegen, globale vars und auch das keine pointer in die functions über geben werden sind daher das ich dies nicht für mich sondern für andere leicht verständlich als open source anbiete.
Aus dem Grund ist der download auch so groß, sogar weit über 100mb, für Arduino. Der eclipse download ist noch größer und den hast du ja auch gemacht. Der reine hex file hat keine 30kb, damit kann aber keiner was anfangen.

Optimierter code ist natürlich besser, keine festen variablen, keine SRAM tables... Sehr schön. Gefällt mir weit besser doch hat man dann wieder andere Probleme. Ich habe dies finalisiert nach etlichen Tests mit verschiedensten Varianten, unter anderem auch dynamisches errechnen des späteren PWM values durch Funktion, doch dies ist leserlich, reproduzierbar und für den Hobbyisten die günstigste Methode. Alleine darum geht es mir ja und das, für diesen Zweck, musst auch du anerkennen ist sinnvoll gelöst.
 

omega

Well-Known Member
Hallo Robert,

Wuestenrose":1jt9wgoi schrieb:
Den Unterschied zwischen linear, quadratisch, exponentiell oder sinusförmig nimmt niemand in dieser Zeitdauer wirklich wahr, oder?
Da wäre ich mir jetzt nicht ganz so sicher. Wie schon geschrieben, bei linearer Dimmung hat man nicht den Eindruck, daß sich überhaupt etwas tut.
ich hab hier als Gimmick optional eine Wolkensimulation drin, linear, 3s runter, 3s wieder hoch gedimmt, variable Dauer. Zum Sinus erkennt das Auge kaum einen Unterschied: zu schnell.
Ich denke, einen Unterschied sieht man erst im direkten Vergleich. Niemand wird merken, daß ein objektiver 60min. Linearverlauf subjektiv nur 30min. dauert, 1., weil er nicht die ganze Zeit davor sitzt und auf die Uhr schaut, und 2., weil er es glaubt, wenn man ihm den 60min. Verlauf als 30min. Verlauf verkauft. Dito Sinus.
Exponentiell gerechnet verläuft der Helligkeitsanstieg bei 30min. Sonnenaufgang anfangs derart zögernd , daß wohl einige User vermuten werden, daß die Steuerung defekt sei.

Da hab' ich zuwenig Ahnung. Die letzten Microcontroller (8051 und 6502-Derivate) habe ich vor zwanzig Jahren programmiert - in Assembler mit einem selbstgeschrieben Macro-Interpreter. Das waren noch Zeiten...
Ha, ich mit dem C-64 und ein Terminalprogram in Assembler programmiert. Das war 1984. Ja, die Zeiten ...

Jetzt verwende ich der Einfachheit halber die Siemens LOGO!. Ich bin nicht mehr der Jüngste und irgendwie fehlen mir der Elan und der Ansporn, mich noch in aktuelle Microcontroller hineinzufinden.
Mich reizt das Gefrickel wieder. Ich wollte schon immer mal so ein kleines Teil programmieren. Und ich muß sagen, es macht mir Spaß, und es ist einfacher, als gedacht. Probleme? Klar, aber keine unüberwindlichen. Aber man muß es mögen.

Grüße, Markus
 

omega

Well-Known Member
Hallo Moritz,

MajorMadness":179iapt3 schrieb:
Ich meine nicht du solltst kopieren, doch die dimmung, mit der Tabelle, ist das was das Auge genau aus gleicht. Ist aber nicht auf meinen mist gewachsen sondern der gängige weg eine PWM dimmung fürs menschliche Auge linear erscheinen zu lassen.
ok, das Ding dimmt morgens hoch und abends runter. Ich bin jetzt zu dem Schluß gekommen, daß jede Art der Dimmung ok ist, halt nur nicht abrupt an oder aus.

Die Zeiten hingegen, globale vars und auch das keine pointer in die functions über geben werden sind daher das ich dies nicht für mich sondern für andere leicht verständlich als open source anbiete.
Für mich ist das alles andere als leicht verständlich. Du magst vielleicht von einem DAU ausgehen, der keine Ahnung von Software hat. Solche Leute sollten aber lieber die Finger von sowas lassen. Genauso wie von hochelektrolytischen Lösungen und 230V. Die verbrennen sich dabei nur die Finger oder Du mußt sie supporten. Lieber State of the Art. DAUs kapierens dann halt nicht - what shall's, dafür gibt's dann auch keine Supportanfragen, aber vielleicht kluge Verbesserungsvorschläge.

Aus dem Grund ist der download auch so groß, sogar weit über 100mb, für Arduino. Der eclipse download ist noch größer und den hast du ja auch gemacht.
Dafür ist der Eclipse-Download standard, nach dem ich googlen kann und nicht Dich fragen muß.

Optimierter code ist natürlich besser, keine festen variablen, keine SRAM tables... Sehr schön. Gefällt mir weit besser doch hat man dann wieder andere Probleme. Ich habe dies finalisiert nach etlichen Tests mit verschiedensten Varianten, unter anderem auch dynamisches errechnen des späteren PWM values durch Funktion, doch dies ist leserlich, reproduzierbar und für den Hobbyisten die günstigste Methode. Alleine darum geht es mir ja und das, für diesen Zweck, musst auch du anerkennen ist sinnvoll gelöst.
Code-Optimierung != Softwarekonzept, Programmierparadigmen, Design Pattern, Anti-Pattern, Kohärenz, Single responsibility principle, Cyclic dependency, Dependency matters ... alles Stichworte, nach denen sich googlen läßt und die Sinn machen, mehr, als es einem DAU recht machen zu können.

Um wieviele User/Hobbyisten geht es dabei? 5? 10? 20? Da limitiere ich doch nicht das gesamte System und mich selbst deswegen. Ich hätte den User eher völlig von der Software entkoppelt, alle Parameter konfigurierbar, ein g'scheites User Interface, Firmware upgradable. Dann mach ich es mir selbst nicht schwerer als notwendig.

Grüße, Markus
 

MajorMadness

Active Member
omega":3eb6ksnv schrieb:
ok, das Ding dimmt morgens hoch und abends runter. Ich bin jetzt zu dem Schluß gekommen, daß jede Art der Dimmung ok ist, halt nur nicht abrupt an oder aus.
Jede Art ist ok, wenn der Anspruch niedrig ist. Möchte man 2 Verschiedene LEDs mischen bei der Dimmung kann man linear dimmen und ausprobieren wann die gewünschte Kombi zufällig eintritt (z.b. gewünscht 20%weiß, 5%rot => 8% weiß, 3%Rot) oder man interpretiert von Anfang an sein Augenlicht. Andererseits kann man (wenn man 2 Dimmstufen einbaut (oder 10 wie bei mir) ) auch sagen das es von 8-10 70%Hell ist und ab 13-15 100% Hell. Dimmst du linear ist es ab ca 9 immer gleich hell für das Auge.
Es hat also sehr große Vorteile keine Lineare Dimmung im AQ zu verwenden.

Zu der Programmierung: Jedem steht es frei es so zu machen wie er will. Ich halte mich mehr an das was in der Arduino Welt gang und gebe ist um eben "Den Einstieg in die Mikrokontroller Welt und Programmierung" zu ermöglichen. Ob man diese User jetzt als dumm/dümmste Bezeichnet oder Neueinsteiger ist auch jedem überlassen.
Deswegen muss man nicht das eine oder andere Abwerten. Ich weiß ja das du gerne über andere und die Arbeit derer her ziehst und auch das Robert lieber beleidigend als Sachlich ist, doch ich dachte mir einer von uns dreien kann ja mal über seinen Schatten springen und neutral und ohne ausfallend zu werden etwas schreiben um zu zeigen das man trotz Beleidigungen und Drohungen mit einander, des Forenfriedens willen, umgehen kann. Ich beschäftige mich nun mal schon länger mit PWM Dimmung, Fading und bin weit über den Prototypen Status hinaus. Meine Lösung funktioniert und Ich weiß von über 50 Leuten, mittlerweile Weltweit, die meinen Code ganz oder in teilen verwenden und erhalte auch das Feetback das sie froh sind wie es geschrieben ist das es (und das war schon so ein Zitat) "Eine super Basis für den aufbau einer eigenen LED Steuerung" ist.
Grade die nicht limitierung und möglichkeit das System weiter zu entwickeln war daher zuerst der Anreits. Mittlerweile (und das merkt man am DIY Controller) ist der Code so das die eingabe und benutzung VOR der erweiterbarkeit liegt.

So, und nu: Wenn du ne möglichkeit hast die Dimmung ohne Arrays zu gestalten und Zeitliche Sinus ect zu berechnen würde mich das sehr interssieren. Spart evt viel Platz und gibt wieder die möglichkeit das System zu erweitern.
 

omega

Well-Known Member
Hi Moritz,

MajorMadness":2moih9f5 schrieb:
omega":2moih9f5 schrieb:
So, und nu: Wenn du ne möglichkeit hast die Dimmung ohne Arrays zu gestalten und Zeitliche Sinus ect zu berechnen würde mich das sehr interssieren. Spart evt viel Platz und gibt wieder die möglichkeit das System zu erweitern.
f(x) für die PWM-Rampen habe ich folgende:
exponentiell: 1.0384*(3^(3*x-3) - 0.037)
sinus: 0.5 + sin(x*pi-pi/2)/2
linear: x

Den Berechnungszeitpunkt, der in der Zeitspanne für eine Rampe (hoch oder runter) liegt, skaliere ich auf den Wertebereich 0.0 - 1.0 (Rampenstart, Rampenende), bevor f(x) ausgeführt wird. In diesem Wertebereich muß f(x) ein Ergebnis zwischen 0.0 und 1.0 liefern. Dieses Ergebnis wird dann skaliert auf den parameterisierten PWM-Bereich.

Ob das Platz spart, weiß ich nicht. Die bis dato evtl. nicht genutzte Math-Library setzt wohl einen großen Happen oben drauf. Das ganze geht aber auch mit Integer-Arithmetik, nutze ich wegen genug Platz und CPU-Power aber nicht.

Grüße, Markus
 

omega

Well-Known Member
Hi,

MajorMadness":21dk7zip schrieb:
Möchte man 2 Verschiedene LEDs mischen bei der Dimmung kann man linear dimmen und ausprobieren wann die gewünschte Kombi zufällig eintritt (z.b. gewünscht 20%weiß, 5%rot => 8% weiß, 3%Rot)
bei den Prozentangaben meinst Du PWM-Level oder die vom Auge wahrgenommene Helligkeit? Oder mischst Du gerade beide?

Andererseits kann man (wenn man 2 Dimmstufen einbaut (oder 10 wie bei mir) ) auch sagen das es von 8-10 70%Hell ist und ab 13-15 100% Hell. Dimmst du linear ist es ab ca 9 immer gleich hell für das Auge.
Ach so, ich will gar nicht für's Auge dimmen, sitze ja nicht jeden Tag ständig vor'm Aq. Ich will einen Sonnentag unter Wasser simulieren. Der verläuft nicht exponentiell. Derartige Lichteffekte brauch ich gar nicht.

Grüße, Markus
 

Wuestenrose

Well-Known Member
Hallo Markus...

omega":pa2ah66w schrieb:
Exponentiell gerechnet verläuft der Helligkeitsanstieg bei 30min. Sonnenaufgang anfangs derart zögernd , daß wohl einige User vermuten werden, daß die Steuerung defekt sei.
Ich will nicht an Deiner Programmiererehre kratzen, nein, wirklich nicht :wink: , aber tut sich bei Deinem Controller anfangs wirklich ausgangsseitig was, oder sind die Änderungen zunächst kleiner als der Quantisierungsabstand?

Ich will einen Sonnentag unter Wasser simulieren.
Man müsste für eine wirklichkeitsnahe Simulation mal den Beleuchtungsstärkeverlauf bei einem Sonnenauf- und/oder -Untergang mit der Transmission der Wasseroberfläche verrechnen.

Wenn ich mal Zeit hab'...

Grüße
Robert
 
Ähnliche Themen
Themenersteller Titel Forum Antworten Datum
AquaNewbe Moin, ich betrete eine neue Welt Mitgliedervorstellungen 7
Heiko Muth (Sumpfheini) Neue Gattungen aus Schismatoglottis ausgegliedert Pflanzen Allgemein 2
P neue(!) Blätter von Anubias haben Löcher Nährstoffe 2
mich2525 Aquael Magic Balls - neue Alternative zu Fibalon / Sera Crystal Clear? Technik 26
E bildet Efeutute jemals neue Blätter an kahlen Armen? Emers 9
P Besatzfrage für zwei neue Becken (80 + 120 cm) Fische 1
teddy Neue Beleuchtung für neues Becken Beleuchtung 10
F Innenfilter neue Filtermedien. Technik 238
moskal Das neue Oberteil Beleuchtung 0
J Neue Beleuchtung für Fluval Venezia 180l Eckaquarium mit Abdeckung Beleuchtung 11
A Juwel Rio180 neue Beleuchtung. Beleuchtung 23
P Neue Lampe und die Algen kommen,Hilfe! Beleuchtung 13
Andrej Neue Bewohner an der Oberfläche Kein Thema - wenig Regeln 2
R neue Beleuchtung LED Beleuchtung 7
ullala Video-Update "neue Fische" Aquarienvorstellungen 4
Tanja-tpunkt Hallo zusammen, ich bin dann mal die Neue..... Mitgliedervorstellungen 1
Tobias Coring Ludwigia inclinata var. verticillata 'Meta' - Neue Lieblingspflanze Neue und besondere Wasserpflanzen 50
Tobias Coring Nährstoffrechner - Neue Dünger Ankündigungen 18
W Neue TC420 und TC421 Software mit grafischer Oberfläche Beleuchtung 9
moskal Neue Chemikalienverordnung? Nährstoffe 3

Ähnliche Themen

Oben