Uhrzeit mit dem DS1307

Hallo Leute.
Um so mehr ich hier lese, um so weniger verstehe ich, also frage ich mal direkt selbst:
Ausgangssituation: der Nano schaltet einen digitalen LED-Stripe an und aus.
Problem: Ist mir morgens viel zu hell
mögliche Lösung: mit dem DS1307 die Uhrzeit in das Programm holen und je nach Uhrzeit die Helligkeit verändern
Ich habe also RTClib installiert, finde da aber keine Beispiele, die funktionieren. Auf dem Seriellen Monitor wird nur Käse angezeigt.

Also ich brauche nur die Uhrzeit und einen Tipp, wie ich diese dann in eine Abfrage packe (if "vor 7 und nach 22 Uhr"- halbes Helligkeit, sonst volle Helligkeit)

Danke für Tipps

Dann versuch mal Diese Library.
Die wurde für die RTC geschrieben.

Hi HotSystem, wie bekomme ich das in das Arduino-Programm?
Ja ich habe ziemlich wenig Ahnung :wink:

Am einfachsten über "Werkzeuge - Bibliotheken verwalten".

Gibt es einen Dateibrowser in "Bibliotheken verwalten", um die Bibliothek aus dem (Download-) Ordner auszuwählen? Ich kann dort nur bereits installierte Bibliotheken auswählen oder welche suchen, die irgendwie von irgendwas bereit gestellt werden, keine Ahnung wo die alle herkommen

Du klickst in der Kopfzeile und gibst "DS1307RTC" ein, dann sucht er die und anschließend installieren.
So einfach :wink:

Da werden mir nur zwei von einem Michael angezeigt, aber keiner von PaulStoffregen.


Der runtergeladene Ordner befindet sich im Bibiotheksordner.

Ok, das ist die IDE-Version 2.xx, diesen Kram nutze ich nicht, sorry.
Bei mir läuft die fehlerfrei Version 1.8.19 und das bleibt erst mal so.

Versuche einfach mal die oben gezeigte Lib.

OK der obere hat funktioniert. Also DS.../Readtest. Was ist eine IDE-Version?

Steht oben

Ich sehe das mit der Uhr problematisch.
Bis auf weiteres gibt es die Sommerzeit/Winterzeit.
Dann ändert sich der Sonnenauf/untergang während der Jahreszeiten.
Ich würde das Umgebungslicht messen (zB mit einem LDR (Lichtabhängiger Widerstand)) und dementsprechend die Helligkeit der LED regeln.
Der LDR muß dann an einem Ort montiert sein, wo kein Licht von Lampen bzw von der LED Strippe hinkommt.

Grüße Uwe

1 Like

siehe oben?
Beim Beispiel "Read Time" liest er im Sekundentakt die Uhrzeit ein, im Beispiel "Set time" holt er sich einmal die Zeit, aktualisiert dann aber nicht mehr.
Ich gehe mal davon aus, dass die Zeit bei jedem neuen Loop abgefragt werden muss, wenn man eine Bedingung bastelt.
Wie holt er sich aber nachher die Zeit ohne Verbindung zum PC?

Hallo Uwe.
Der Kalender spielt keine Rolle, denn Nachts oder früh Morgens ist die volle Helligkeit immer unangenehm, egal ob Sommer oder Winter.

Siehe oben = Post #8 ist IDE-Version 1.8.19

Ich kenne die RTC nicht, da muss ich passen. Ich verwend die DS3231, die ist sehr viel genauer.
Vermute aber, dass die PC-Abfrage nach dem 1. Upload abgeschaltet wird und erneut hochgeladen werden soll.

Auf die Sekunde kommt es nicht an. Die Frage ist aber: behält der die Zeit und zählt über das Zeitmodul weiter oder ist der ohne Anbindung an den PC "Zeitlos"?

Normal hält er die Zeit.
Und es sollte eine Batterie drauf sein.

Jetzt weiß ich nicht wo (geografisch) Du wohnst:
Nehmen wir mal München und Hamburg als Beispiele:

Am kürzesten Tag des Jahres (21 Dezember 2023)
München: 08:01 - 16:21 (8:19 Sonnenstunden)
Hamburg: 08:34 - 16:01 (07:26 Sonnenstunden)

Und am längsten Tag: (21 Juni 2023)
München: 05:14 - 21:16 (16:01 Sonnenstunden)
Hamburg: 04:51 - 21:51 (17:00 Sonnenstunden)

mit einer TagesSonnenStundenÄnderung pro Tag von max 4 Minuten (Frühjahr- bzw Herbstanfang)

Daten aus: sunrise-and-sunset.com

Auf welche Zeit setzt Du denn die Zeiten für Dunkel und Hell wenn sich dieser Zeiten täglich ändert? Du kannst natürlich den Sonnenaufgang bzw Sonnenuntergeng für Deinen Standpunkt vom Arduino berechnen lassen aber ein LDR ist die einfachere Lösung.

Grüße Uwe

Wenn es draussen sowieso hell ist, ist es auch egal, dass die Beleuchtung nur "zur Hälfte" angeht. Evt könnte man das im Bewegungsmelder einstellen, dass dieser erst gar nicht auslöst, sollte morgens um 6 schon die Sonne reinknallen.
Momentan stehe ich noch ganz am Anfang und muss erst mal herausfinden, wie ich die Zeit als Bedingung einbringe.
Der Stunden-Ausschnitt aus dem original-Beispiel:
image
Ich vermute mal:
if (print2digits (tm.Hour)) <=7 or if (print2digits (tm.Hour)) >=23 {
LED 50%
}
Also ist die Ausgabe der Stunde kleiner als 7 oder größer als 23, so soll die Helligkeit gedimmt werden.

Was ich Dir versucht habe zu sagen ist, daß im Winter es erst nach 8h hell wird und um 16h dunkel wird, also die LEDs zu hell sind

Ja das ist der Sinn, es soll nur halbe Helligkeit am Morgen und in der Nacht geben. Volle Helligkeit brauche ich nur Tagsüber und Abends, wenn in der Küche ernsthaft gearbeitet wird.