Hallo erstmal ich meldete mich an, um Hilfe, Feedback und Vorschläge über mein etwas größeres Projekt (an dem ich schon lange Zeit arbeite) zu bekommen. Sollte villeicht erwähnen das ich von der Ganzen Programmiererei keine zu große Ahnung habe, da es erst mein zweites Programm ist. Was ich vor habe ist eigentlich ganz schnell gesagt: es soll ein Deckel für mein 140L Meerwasseraquarium sein mit folgendem features: -ATmega 32-16 (8Mhz) -LCD 4x20 -RTC -90 VA LED-Licht (10xWeiß,Blau,RGB) -10 PWM Kanäle (über software) -Sonnenauf/untergang -Mondphasen -Temperaturerfassung des Wassers und der LED (Lüfter) -Kommunikation mit dem Unterschrank um Pumpen unw. zu schalten -evtl. Leitwert und PH-Messung -evtl. bluetoothvervindung zum PC (UART) und nun gehts schon los. Geplant sind 50 Zeiten pro tag an dem sich das Licht ändert. Meine Frage: z.B: Wenn ich um 10:07 Weiß1 0% Weiß2 5% Blau1 10% (je nach Mondphase) Blau2 7% usw...... und um 10:12 Weiß1 12% Weiß2 8% Blau1 15% (je nach Mondphase) Blau2 9% usw...... haben möchte, wie berechne ich -bzw der Controller- welcher "Dimmwert" zu vewenden ist um einen vernünftigen Farbverauf hinzubekommen? ach ja übrigens Programmier ausschlieslich assembler..... Wäre für jegliche Hilfestellung sehr Dankbar Grüße
:
Verschoben durch User
Zum Thema programmieren kann ich dir nicht helfen aber ich möchte dich drauf hinweisen das du das ding Extrem dicht verkleiden solltest. Ich hatte auch ne ähnliche Beleuchtung für mein Becken gebastelt nach ca 6-7 Monaten war keine einzige LED mehr am brennen Kontakte komplett zerfressen trotz das es komplett mit Plexiglas abgedeckt war und Spritzwasser überhaupt nicht dran kommen konnte. Die Luftfeuchtigkeit und der erhöhte Salzgehalt haben mir die LED zerstört meine jetziger aufbau hebt dagegen schon länger ohne Probleme (LED Chips komplett mit Silikon versiegelt bis zur LED ran inklusive Anschlussdrähte und mit Epoxidharz noch drüber gepinselt) mfg
nachtrag: Hoffe du verwendest V4A Stahl alles andere rostet dir bei Salzwasser weg...
Danke für den Tipp Habe den Deckel momentan mit T5 Röhren bestückt.... bis jetzt gehts... da ich als Spengler Arbeite hab ich zugänglichkeit zu Dicht und Klebemassen die eigentlich im Flugzeugbau verwendet werden, mit diesen ist es möglich das Ding von Untenher auf jeden Fall Dicht zu bekommen.... und zum Metall: die Trägerplatte für die LED´s ist aus 3mm Alu gefräßt, und da ich sehr viel mit Aluminium zu tun hab kann ich beruhigt sagen, wenn die Legierung passt passiert da gar nix weiß nicht ob du ***** kennst, die kommen aus östereich, machen unter anderem Fasaden und Dächer in Küstengebieten..... von daher müsste es eigentlich funktionieren...... Gruß
Findet ihr Entspannung beim Betrachten von Schwimmbewegungen exotischer Fischen? Wenn ja, dann beneide ich euch.
dann mach mir doch Bitte nen Vorschlag wo man es sonst hinschreiben könnte... anstatt rumzuningeln wo was steht könnte der Weihnachtsmann ja vielleicht mal etwas Produktives schreiben.... Grüße
Andreas Günther schrieb: > Meine Frage: > > z.B: Wenn ich um 10:07 > > Weiß1 0% > Weiß2 5% > Blau1 10% (je nach Mondphase) > Blau2 7% > usw...... > > und um 10:12 > > Weiß1 12% > Weiß2 8% > Blau1 15% (je nach Mondphase) > Blau2 9% > usw...... > > haben möchte, wie berechne ich -bzw der Controller- welcher "Dimmwert" > zu vewenden ist um einen vernünftigen Farbverauf hinzubekommen? Das kommt darauf an, wie der Verlauf genau ist. Meist sind Farbverläufe als Lookup-Tables im Mikrocontroller realisiert weil die Verläufe nicht linear sind. Wie das bei dir ist weiß nicht nicht. Irgendwie wirst du ja auf die Dimmwerte kommen. Ansonsten für lineare Interpolation Stichwort Bresenham Algorithmus. Fürs Fading http://www.mikrocontroller.net/articles/LED-Fading
Danke für die antwort.... den Artikel http://www.mikrocontroller.net/articles/LED-Fading hab ich mir schon mehrmals durchgelesen, aber werde aus dem C-Code nicht schlau. Habe eine 8bit PWM wollte diese auf 10bit erweitern aber bei 256 Schritten bleiben. Und das nächste ist, das ich von Tabellen noch keine Ahnung hab und ich ja irgendwie mitten in der Tabelle 10bit Werte rauspicken muss....
> z.B: Wenn ich um 10:07 > Weiß1 0% > Weiß2 5% > Blau1 10% (je nach Mondphase) > Blau2 7% > usw...... > und um 10:12 > Weiß1 12% > Weiß2 8% > Blau1 15% (je nach Mondphase) > Blau2 9% > usw...... > haben möchte, wie berechne ich -bzw der Controller- welcher "Dimmwert" > zu vewenden ist um einen vernünftigen Farbverauf hinzubekommen? Definiere 'vernünftig'. In erster Linie würde ich mal so vorgehen. von 10:07:00 bis 10:12:00 sind es 5 Minuten oder 300 Sekunden. In diesen 300 Sekunden sollen sich die Werte ändern für
1 | Weiß1 12% (12 - 0) |
2 | Weiß2 3% (8 - 5) |
3 | Blau1 5% (15 - 10) |
4 | Blau2 2% (9 - 7) |
d.h. vom Begin (10:07:00) an gerechnet, ist zum Zeitpunkt x (gerechnet in Sekunden ab 10:07:00) jeweils einzustellen (wobei x von 0 bis 300 läuft)
1 | weiß1 = 0 + x * 12 / 300 |
2 | weiß2 = 5 + x * 3 / 300 |
3 | blau1 = 10 + x * 5 / 300 |
4 | blau2 = 7 + x * 2 / 300 |
5 | |
6 | oder allgemeiner |
7 | |
8 | wert_zum_zeitpunkt_x = Wert am Intervallanfang + x * werte_differenz / zeitdifferenz_des_intervalls |
d.h. das sind erst mal lineare Interpolationen. Mittels Timer und ISR
wird eine Uhr realisiert, mit der aktuellen Uhrzeit geht man dann in die
Zeittabelle. Aus dieser Tabelle kriegt man den Anfangszeit, die Endzeit
sowie die jeweils gültigen Heligkeitswerte am jeweiligen Anfang/Ende des
Intervalls, zwischen denen dann linear interpoliert wird. Ein Update pro
Sekunde ist wohl ausreichend.
Mal sehen, ob da was annehmbares rauskommt, ehe man sich etwas
Komplizierterem zuwendet.
> ach ja übrigens Programmier ausschlieslich assembler.....
mein Beileid.
:
Bearbeitet durch User
Na einwandfrei..... so vesuch ich das mal. Danke Naja Assembler is das einzige was mittlerweile so halbwegs klappt und nach knapp 3000 Zeilen steig ich bestimmt nicht mehr um ;-) Das Sekündliche Update werde ich aber wahrscheinlich auf eine Halbe Sec herabsetzen da ich gerade bei "sonnenauf- bzw. untergang" das rot ziemlich schnell auf meinetwegen 80% Dimme.... mal sehen...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.