ich mochte mit meinem Arduino Duemilanove eine LED-Aquarien Beleuchtung bauen. Dazu habe ich 12V LED-Stripe's in Weiß und RGB. Die RGB dienen dazu einen Sonnenauf- bzw untergang und das Mondlich zu simulieren. Die Simuliation des Auf- und untergangs sind nicht das Problem das geht wunderbar auch ohne Delay.
Hier mein Code jetzt nur für Weiß:
long curtime = millis();
if (curtime - prevtime > periode && w <= 254){
prevtime = curtime;
w++;
}
analogWrite(ledpin, w);
long curtime = millis();
if (curtime - prevtime > periode && w >= 1){
prevtime = curtime;
w--
}
analogWrite(ledpin, w);
Jetzt stehe ich vor dem Problem das zu eine bestimten Uhrzeit das Licht aufgehen soll dann bis zu einer bestimmten Uhrzeit wieder untergehen soll, dann soll zu z.B. eine Stunde nach dem das Licht aus ist das Mondlicht auf gehen für z.B. 2 Std. Zur Anzeige der Uhrzeit und und ob das Licht noch am Auf-/Untergehen ist soll in LCD herhalten. Aber ich bekomme das nicht so richtig hin. :~
Etwas mehr Infos über die Hardware wären gut. Hast Du z.B. ein RTC Breakout für die Uhrzeit. Welches LCD-Display hast Du und wie willst Du es ansteuern?
Dein Arduino hat keine interne Uhr, er zählt nur die seit dem Start vergangene Zeit in Mikro- und Millisekunden mit, die aber nach einer bestimmten Zeit auch wieder bei "0" anfangen.
Es reicht dann also ein Stromausfall oder ein kurzes Stecker ziehen und Deine Uhrzeit ist dahin. Von daher verwendet man in der Regel für solche Projekte eine "externe" Uhr die Batterie gepuffert ist. Z.B. folgendes: Real Time Clock Modul PCF8563T [KP02040] - 1.20EUR : komputer.de, Arduino Open Source Hardware.
Empfehlenswert ist z.B. evtl. auch das LCD-Shield (Bsp. http://www.komputer.de/zen/index.php?main_page=product_info&cPath=30&products_id=170), da hast Du auch gleich einige Taster drauf für die Eingabe.
Hallo Andreas,
wie mein Vorgänger schon schreibt, etwas mehr Infos über die Hardware braucht man schon.
Ich habe so was ähnliches für meine Vögel gebaut. Die sollen mindestens 12 Stunden pro Tag Licht haben.
Wird es früher dunkel wird beleuchtet. Und anschließend wird dann noch eine Notbeleuchtung gedimmt, damit alle
ihren Platz finden.
Klingt ähnlich, sollte also kein Problem sein, dir Tipps zu geben.
Deshalb auch die Frage, hast du ein Uhrmodul oder aber soll anders gesteuert werden.
Gruß
Bernward
Dann würde ich ein Array anlegen, mit dem du jede LED und das Mondlicht einzeln ansteuern kannst: http://arduino.cc/it/Reference/Array
Sprich, du kannst dann im Array angeben, dass LED1 um 8 Uhr angehen soll, 1 Stunde von 0 auf 254 benötigen soll (das machst du wieder mit der millis() Abfrage) und dann um 17 Uhr runterdimmen soll.
Mondlicht dann um 18 Uhr hochdimmen usw.....
Ich würde an deiner Stelle so fortfahren:
Dimmen klappt ja schon
RTC besorgen und den COde einbauen, mittels Serial.print alles testen bis du Uhrzeit in mehreren Variablen (hour, min, sec) geliefert bekommst
Wenn die RTC läuft nimmst du deinen vorhanden Code und änderst die If Bedinung so, dass wenn hour==8Uhr (&zB min==30) dann {...} ausführen
Wenn das alles klappt würde ich mich mit dem Array beschäftigen
LCD Ausgabe würde ich am Schluss machen, zum testen geht wie gesagt auch gut die SerialPrint
Mir hat es jedenfalls so geholfen, vorzugehen. Kenne halt dein KnowHow nicht, vermute aber dass du auch wie ich Anfänger bist.
danke für eure Antworten und sorry das ich erst jetzt Antowrte.
Ja einen RTC möchte ich dann schon nutzen gerne auch dann über eine Funkuhr, zur Zeit löse ich das nur über die Time Library und setzet die Uhrzeit mittels setTime().
Als LCD kommst erstmal ein 16 x 2 von Pollin zum einsatz welches ich mit der LCDLibrary angesteuert wird.
Mal sehen wann ich weiter machen, zur Zeit hab ich viel um die Ohren.