Licht simulation mit 3 Led Strips
Moderator: T.Hoffmann
Nachdem ich mich mit meinem letzten Projekt ein wenig übernommen habe wollte ich nach 2 Jahren Pause mal etwas neues Anfangen.
Mein Wunsch wäre mit den 3 Led Strips die ich hier liegen habe einen Sonnenauf und untergang sowie ein Mondlicht zu simulieren.Das ganze Zeitgesteuert wobei es mir hier nicht auf die Sekunde ankommt.
Nur wo fang ich an hat eventuell jemand so etwas schon geplant und hätte nen schaltplan für mich ?
Mfg Alex
Mein Wunsch wäre mit den 3 Led Strips die ich hier liegen habe einen Sonnenauf und untergang sowie ein Mondlicht zu simulieren.Das ganze Zeitgesteuert wobei es mir hier nicht auf die Sekunde ankommt.
Nur wo fang ich an hat eventuell jemand so etwas schon geplant und hätte nen schaltplan für mich ?
Mfg Alex
Selbst bauen oder fertig kaufen?
Weil Schaltplan allein reicht nicht. Das geht (sinnvoll) nur mit µC. Wenn es nicht soo genau sein muss und Du auf Display und 'Zeiteinstelltasten' verzichten kannst, reicht aber schon ein kleiner ATTiny45 + Quarz dafür aus.
Ich habe testweise mal einen Tiny25 knapp 2 Monate laufen lassen. Nach zweimaliger Kalibrierung war die Zeitabweichung von meiner Funkuhr weniger als 2 Sekunden...
Weil Schaltplan allein reicht nicht. Das geht (sinnvoll) nur mit µC. Wenn es nicht soo genau sein muss und Du auf Display und 'Zeiteinstelltasten' verzichten kannst, reicht aber schon ein kleiner ATTiny45 + Quarz dafür aus.
Ich habe testweise mal einen Tiny25 knapp 2 Monate laufen lassen. Nach zweimaliger Kalibrierung war die Zeitabweichung von meiner Funkuhr weniger als 2 Sekunden...
Naja denke mal zur Steigerung des lerneffektes würde ich das selbst bauen wählen , wenn mir natürlich was günstiges über den weg läuft warum nicht .
Für den Einstieg sollte ich wohl erstmal Taster und Display weg lassen da das ja dann wieder die Programierung einer Bedienoberfläche erfordet .
Dieses mal fang ich lieber klein an und zur Not bau ich halt 3 Revisionen.Habe ja noch den ATmega328P-20pu vom letzten mal hier ist zwar mehr als überdimensioniert aber warum nicht nehmen was man da hat
Wäre es auch möglich anstelle der drei einzelnen Strips(gelb,rot,blau) einfach 1 oder 2 RGB Strips zu verwenden ? Oder wird das dann vom Programieren zu heftig da man ja gelb auch erst "erzeugen" müsste um es dann zu dimmen ?
Für den Einstieg sollte ich wohl erstmal Taster und Display weg lassen da das ja dann wieder die Programierung einer Bedienoberfläche erfordet .
Dieses mal fang ich lieber klein an und zur Not bau ich halt 3 Revisionen.Habe ja noch den ATmega328P-20pu vom letzten mal hier ist zwar mehr als überdimensioniert aber warum nicht nehmen was man da hat
Wäre es auch möglich anstelle der drei einzelnen Strips(gelb,rot,blau) einfach 1 oder 2 RGB Strips zu verwenden ? Oder wird das dann vom Programieren zu heftig da man ja gelb auch erst "erzeugen" müsste um es dann zu dimmen ?
Klar. Das ist kein Problem. Allerdings sind die RGB meist weniger effizient. ATmega328P-20pu geht natürlich auch. Hast Du einen Quarz dafür? Respektive was hast Du denn noch alles?Wäre es auch möglich anstelle der drei einzelnen Strips(gelb,rot,blau) einfach 1 oder 2 RGB Strips zu verwenden
Tja was habe ich noch , den Prozessor, glaube zwei verschidene rtc s(leider SMD aber das geht auch ) , mehrere Lochraster platten, jede menge Widerstände, die Mosfets (irgendwas mit irz34 ) und alles was fehlt bekomm ich schnell über meine Frau .Also was das material betrifft bin ich relativ ungebunden außer es werden ganz krumme Werte .
Werde es diesmal aber erst auf nem Testboard stecken bevor ich löte.Dann kann ich auch relativ einfach erweitern wenn es dann laufen sollte .
Was die Stripes betrifft bleibe ich dann wohl lieber bei den einzel Farben es soll ja zumindestens bei Gelb und Rot ein entsprechender effekt sichtbar sein .
Werde es diesmal aber erst auf nem Testboard stecken bevor ich löte.Dann kann ich auch relativ einfach erweitern wenn es dann laufen sollte .
Was die Stripes betrifft bleibe ich dann wohl lieber bei den einzel Farben es soll ja zumindestens bei Gelb und Rot ein entsprechender effekt sichtbar sein .
Ok. Damit man ohne Uhr auskommt (also den µC als Uhr verwenden kann) ist ein Quarz (egal ob 4,8,16 oder 20 Mhz) + 2 Stützkondensatoren (ca. 22pF) erforderlich. Ansonsten solltest Du eigentlich alles erforderliche haben. Netzteil für LEDs und µC (bzw. 5V Regler dafür) setze ich mal voraus...
Ok also müsste das im groben so aussehen , X1-1 ist +5V, X1-2 und X1-3 ist GND, und X1-4 sind +12V.
Vor die Led Strips habe ich jetzt keine Widerstände gemacht da die die ja schon an Board haben .
Auch wenn es egal ist welcher Quarz wäre denn besser 4 oder 20 mhz ? Und warum wird nicht der interne genutzt oder ist der auf dauer zu Ungenau ?
Vor die Led Strips habe ich jetzt keine Widerstände gemacht da die die ja schon an Board haben .
Auch wenn es egal ist welcher Quarz wäre denn besser 4 oder 20 mhz ? Und warum wird nicht der interne genutzt oder ist der auf dauer zu Ungenau ?
Ja, genau! Der ATmega328 hat ja 6 PWM Ausgänge. Welche 3 Du davon verwendest ist eigentlich egal. Damit das Programm aber auch mit einem alten Mega8 kompatibel bleibt, würde ich allerdings vorschlagen nimm Pin15/16/17 (OC1A/OC1B/OC2A).
Intern ist zu ungenau (ist ja kein Quarz sondern nur ein Kondensator). Jede Temperaturschwankung um ein paar Grad macht bei dem internen schon ein paar Prozent aus, beim Quarz nur PPM (!!!). Ob 4 oder 20 Mhz ist hier eigentlich wirklich egal. Je höher der Takt, desto mehr Stromverbrauch, aber desto mehr (Berechnungen) kann der Chip pro Sekunde machen. Nur bisher hat der ja quasi nichts zu tun... Also sagen wir mal: Im Sinne der Kompatibilität mit einem Mega8: Nimm einen 4 oder 8 oder 16Mhz Quarz.Auch wenn es egal ist welcher Quarz wäre denn besser 4 oder 20 mhz ? Und warum wird nicht der interne genutzt oder ist der auf dauer zu Ungenau ?
Ok also kommt ein 16mhz auf die liste , mal schauen ob ich heute abend schon alles beisammen habe dann könnte ich ja schonmal stecken .
Heist also was dann noch fehlt wäre schon das Programm ? Na das ging ja schnell .
Heist also was dann noch fehlt wäre schon das Programm ? Na das ging ja schnell .
Ok. Noch was... Du brauchst noch an irgendeinem Port ein 'Anzeige-Led'. Nimm einfach Pin 14 (PB0). Da kommt dann ein Widerstand dran (ca. 330Ohm) und ein 5mm LED (LED-Minus dann an Masse).
Der 'Trick' bei diesem Verfahren ist folgender:
Du schaltest um eine bestimmte Zeit an (z.B. Gongschlag der Tagesschau
). Die Schaltung schaltet dann kurz (0.5 Sek) das Anzeige-Led an. Am nächsten Tag schaust Du um genau die gleiche Zeit, wann das Anzeige-Led wieder kurz blitzt und notierst Dir die Differenz zur 'echten' Zeit (am besten mit einer Funkuhr oder hinreichend genauer Quarzuhr vergleichen). Diese Differenz wird dann im Programm als Korrekturfaktor eingetragen. Danach das gleiche noch mal, aber diesmal erst nach einer Woche oder 10 Tagen den Zeitunterschied bestimmen. Dann wieder Korrekturfaktor bestimmen und im Programm eintragen. Danach (nach dieser zweiten Korrektur) hatte ich bei meinem Test nach knapp 2 Monaten eine Zeitdifferenz von weniger als 2 Sekunden...
Der 'Trick' bei diesem Verfahren ist folgender:
Du schaltest um eine bestimmte Zeit an (z.B. Gongschlag der Tagesschau
Das klingt gut , so werde ich es machen die Led und den Widerstand habe ich sicher auch noch irgendwo daheim rumfliegen .
2 sec in 2 Monaten da sind ja die Zeitschaltuhren am Aqua ungenauer
Wie und wo das eingetragen wird kannst du mir ja dann am Programm nochmal zeigen damit ich auch verstehe was da Abläuft und ich die Dimmverläufe auch selbst anpassen kann wenn ich lust drauf habe.
2 sec in 2 Monaten da sind ja die Zeitschaltuhren am Aqua ungenauer
Wie und wo das eingetragen wird kannst du mir ja dann am Programm nochmal zeigen damit ich auch verstehe was da Abläuft und ich die Dimmverläufe auch selbst anpassen kann wenn ich lust drauf habe.
Klar. Sind die auch. Weil da macht sich ja keiner die Mühe, die 'Quarzungenauigkeit' nachzukalibrieren.2 sec in 2 Monaten da sind ja die Zeitschaltuhren am Aqua ungenauer
Die Temperaturdrift bei einem Standard-Quarz liegt bei etwa 3ppm wenn es sich um 'Zimmertemperatur' (15°-35°) handelt. Das entspricht etwa 0,6 Sekunden pro Woche. Der 'Fertigungsfehler' liegt dagegen bei 30-50ppm. Ist also gut 10 mal so groß, kann aber wie beschrieben nachkalibriert werden.
Ok das klingt einleuchtend , anbei der neue Plan so steckt es momentan schon auf dem Steckbrett nur der Quarz fehlt leider noch .
Wenn meine Theorie stimmt funktioniert dein Programm abhängig von der Start zeit oder ? Damit meine ich das zb der erste Dimmvorgang 1 Stunde nach Start beginnt , sei es nun 17 oder 21 uhr .
Wenn meine Theorie stimmt funktioniert dein Programm abhängig von der Start zeit oder ? Damit meine ich das zb der erste Dimmvorgang 1 Stunde nach Start beginnt , sei es nun 17 oder 21 uhr .
Genau so ist es. Problematisch ist dabei eigentlich nur ein Stromausfall. Aber die sind ja doch recht selten. Zur Not könnte man auch noch eine Backup-Akku/Batterie Lösung dazu bauen, aber das halte ich fast für übertrieben. Wir haben durchschnittlich etwa 1-2 Stromausfälle pro Jahr. Es kann aber in anderen Gegenden durchaus mehr sein.Damit meine ich das zb der erste Dimmvorgang 1 Stunde nach Start beginnt , sei es nun 17 oder 21 uhr .
Da ja mit der Schaltung vorerst nix gemacht werden soll außer das Dimmen halte ich es auch für unkritisch .
Falls mich die Motivation dann doch wieder Packt und ich es Schritt für Schritt erweitern sollte kann man sicher auch über eine Pufferbatterie nachdenken aber soweit bin ich noch nicht
Falls mich die Motivation dann doch wieder Packt und ich es Schritt für Schritt erweitern sollte kann man sicher auch über eine Pufferbatterie nachdenken aber soweit bin ich noch nicht
Na dann probier mal...
Der code ist vom ATTiny25-Test portiert (da hab ich aber andere Timer und einen anderer Takt verwendet) und ist so noch nicht getestet. Sollte zwar so funktionieren, 100% versprechen kann ich es aber nicht. Als Chip steht ein Standard-Mega8 in der Datei. Diese Zeile muss also an den speziell verwendeten Mega8 kompatiblen Chip angepasst werden. Bei Dir müsste es:
sein.
Ich habe den Code (hoffentlich) ausreichend kommentiert, falls noch Fragen dazu sind, einfach hier posten...
Momentan wird einfach nur ein Kanal (blau) hochgedimmt, bleibt dann einige Zeit an und wird wieder runtergedimmt. Das Gleiche dann noch mal mit Rot. Kann man natürlich auch 'gleichmässig' oder 'gegengleich' oder wie auch immer machen. Um ggf. eine ganz bestimmte Lichtfarbe zu einer bestimmten Zeit zu haben, müsste man das erst mal ausprobieren (wie viel % von welcher LED-Farbe soll zu welcher Zeit an sein) und in eine 'Lookup' Tabelle verpacken.
Der code ist vom ATTiny25-Test portiert (da hab ich aber andere Timer und einen anderer Takt verwendet) und ist so noch nicht getestet. Sollte zwar so funktionieren, 100% versprechen kann ich es aber nicht. Als Chip steht ein Standard-Mega8 in der Datei. Diese Zeile muss also an den speziell verwendeten Mega8 kompatiblen Chip angepasst werden. Bei Dir müsste es:
Code: Alles auswählen
$regfile = "m328pdef.dat"Ich habe den Code (hoffentlich) ausreichend kommentiert, falls noch Fragen dazu sind, einfach hier posten...
Momentan wird einfach nur ein Kanal (blau) hochgedimmt, bleibt dann einige Zeit an und wird wieder runtergedimmt. Das Gleiche dann noch mal mit Rot. Kann man natürlich auch 'gleichmässig' oder 'gegengleich' oder wie auch immer machen. Um ggf. eine ganz bestimmte Lichtfarbe zu einer bestimmten Zeit zu haben, müsste man das erst mal ausprobieren (wie viel % von welcher LED-Farbe soll zu welcher Zeit an sein) und in eine 'Lookup' Tabelle verpacken.
- Dateianhänge
-
- Mega8_Uhr_LED_Fader2.zip
- (3.03 KiB) 215-mal heruntergeladen
Sagen wir mal vorsichtig an allem
der rechner mit dem ich damals alles gemacht habe ist inzwischen verschrottet worden , somit ist/war natürlich sämtliche Software + Einstellungen weg .
Dazu kommt das ich gestern in meinem Selbstbau Programmier Adapter ne Kabelbruch gefunden habe ... mal schauen ob ich heute abend nen Schritt weiter komme .
der rechner mit dem ich damals alles gemacht habe ist inzwischen verschrottet worden , somit ist/war natürlich sämtliche Software + Einstellungen weg .
Dazu kommt das ich gestern in meinem Selbstbau Programmier Adapter ne Kabelbruch gefunden habe ... mal schauen ob ich heute abend nen Schritt weiter komme .
Ja das STK500 schon. Da ist ja auch ein eigener Chip drauf der sich um das ISP Protokoll kümmert und die RS232 Verbindung wird wirklich als serielle Verbindung genutzt. Wir reden hier aber von Simple-Selbstbau-Proggern (Ponyprog kompatibel) und da wird der serielle Port 'zweckentfremdet': Hier werden die Steuerleitungen RTS, CTS, DTR... verwendet und direkt gesetzt/geprüft um das ISP Protokoll abzubilden. Dafür sind die USB-Seriell-Konverter aber nicht gebaut. Da werden die Steuerleitungen meist nur mit geringer Frequenz geprüft/gesetzt (das reicht bei einer üblichen RS32 Verbindung ja auch) und schon gar nicht synchron zur TxD Leitung.


