Forum: Mikrocontroller und Digitale Elektronik Aquariumsteuerung


von Andreas G. (anderle6660)


Angehängte Dateien:

Lesenswert?

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
von mpl (Gast)


Lesenswert?

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

von mpl (Gast)


Lesenswert?

nachtrag:

Hoffe du verwendest V4A Stahl alles andere rostet dir bei Salzwasser 
weg...

von Andreas G. (anderle6660)


Lesenswert?

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ß

von Vorhautfüßler (Gast)


Lesenswert?

Findet ihr Entspannung beim Betrachten von Schwimmbewegungen exotischer 
Fischen?
Wenn ja, dann beneide ich euch.

von Andreas G. (anderle6660)


Lesenswert?

nix für ungut aber der komentar.....
war exotisch....

von holger (Gast)


Lesenswert?

Was haben Wünsche an den Weihnachtsmann in der Codesammlung zu suchen?

von Andreas G. (anderle6660)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

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

von Andreas G. (anderle6660)


Lesenswert?

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....

von Karl H. (kbuchegg)


Lesenswert?

> 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
von Andreas G. (andreas_g53)


Lesenswert?

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
Noch kein Account? Hier anmelden.