Arduino Stromsparmodus mit DS 1307 I2C

Hallo,

ich habe scho gehört und gelesen, dass der DS 1307 I2C nicht der Knaller ist, doch ich hätte ein paar Fragen.

Ich möchte mit 2 Feuchtigkeitssensoren die Bewässerung meiner 2 Pflanzen realisieren. Sensor auslesen und bei bestimmten Wert eine Funktion zu machen ist auch alles kein Problem.

Ich würde aber gerne den Arduino in den Energiesparmodus schicken und immer Abends aufwecken und die Sensoren auslesen. Ist dies überhaut mit dem DS 1307 möglich? So wie ich es aus den Foren gelesen habe, dürfte es nicht gehn

Welche andere Möglichkeiten gibt es, dass die Sensoren nicht immer ausgelesen werden? (nur einmal am Tag) Habe es schon mit millis versucht, doch es hat nicht funktioniert. Bzw im Serial Monitor hat er die ganze Zeit den Sensor ausgelesen, egal welche Zeit eingestellt war.

Nach meiner Recherche wird der Arduino ja immer nach ca 4 Sekunden aufgeweckt durch einen Interrupt von einem Watchdog, wie kann ich es trotzdem machen, dass nur der Sensor einmal amTag ausgelesen wird?

Vielen Dank

Gruß Johannes

Für eine kurze Antwort würde ich mich freuen, da ich le

Die DS1307 bietet einen 1Hz-Rechteck-Ausgang (SQW) an, mit dem der Arduino-Prozessor jede Sekunde geweckt werden kann.

Eine Lösung könnte sein: alle 3600 Wakeups, die Sensoren auslesen, dann die Uhrzeit von der DS1307 lesen und bestimmen, ob es Zeit ist, die Pflanzen zu bewässern.

Einen Arduino (außer den MINI/MINI PRO) in Sleep zu schicken hat wenig sinn weil die Halbleiter/LED auf der Platine mehr verbrauchen als der ATmega328 den Du schlafen schickst. Da mußt Du die ganze Schaltung auf extreme Stromsparnis trimmen.

Grüße Uwe

Hallo,
es ist wie Uwe sagt. Der Mega 2560 z.B. braucht “nichts” (<5µA) wenn er pennt oder abgeschaltet ist.
Das Problem bei den ganzen SleppGeschichten ist immer das Umfeld.
Du wirst einen µC so prorammieren können, das er bei TastenDruck buh-buh macht.
Nun darf aber Deine Schaltung auch nichts mehr verbrauchen- die sollte jetzt tot sein.
Nun mußt Du Deinen µC nur noch so prorammieren, das er stündlich aufwacht (ohne RTC), sich die Daten holt,
diese verarbeitet- um sich dann wieder nieder zu legen.

Ich habe im Garten einen Sensor, dessen 1,5vAA Batterie ich einmal jährlich wechsel muß. Der sendet so alle
x-Minuten seine Werte… Ich glaube nicht, das man das mit Arduino-IDE-Bordmittel programmieren kann.
Gruß und Spaß
Andreas

Hallo,

ein Link zu meinen Sleep Mode Fragen, Antworten und Messungen. Am Ende kam ich auf 220µA mit einem kastrierten Original Mega 2560. Nur über die IDE kannste den dann wie üblich nicht mehr programmieren.

Steht alles im Thread. http://forum.arduino.cc/index.php?topic=258307.0

Hier stehen auch viele Infos: https://www.gammon.com.au/power

Als RTC würde ich jedoch jedem eine RTC DS3231 ans Herz legen. Ist einfach Langzeit stabiler in Bezug auf Genaugikeit. Bei ebay günstig zubekommen.

uwefed: Einen Arduino (außer den MINI/MINI PRO) in Sleep zu schicken hat wenig sinn weil die Halbleiter/LED auf der Platine mehr verbrauchen als der ATmega328 den Du schlafen schickst. Da mußt Du die ganze Schaltung auf extreme Stromsparnis trimmen. Grüße Uwe

Sorry Uwe, das "außer den MINI/MINI PRO" verstehe ich nicht. Ich dachte, die minis würden noch weniger verbrauchen, oder?

Sollte es nicht "insbesondere den MINI/MINI PRO" heißen?

Genau das sagte er doch!

Einen Arduino (außer den MINI/MINI PRO) in Sleep zu schicken hat wenig Sinn

Die MINI/MINI PRO haben außer dem Atmega328 fast nichts auf der Platine, also auch nichts was außer dem ATmega strom verbraucht, der aber in sleep modus versetzt werden kann. Grüße Uwe

Optimal ist das Lilypad. Dort fehlen die Leds und der Spannungsregler. Es läuft mit jeder Spannung zwischen 2,7-5,5V. Man kann es mit 3 AA-Batterien oder Akkus verbinden und es läuft ohne Verluste durch Spannungsregler. Man hat sonst leicht das Problem, dass der schlafende Mikrocontroller Jahre mit der Batterie laufen würde, aber der Spannungsregler die Batterie in ein oder zwei Monaten leer saugt.

Man kann alternativ zum Lilypad einen 8Mhz ProMini nehmen und Led und Spannungsregler abknipsen.

jremington: Die DS1307 bietet einen 1Hz-Rechteck-Ausgang (SQW) an, mit dem der Arduino-Prozessor jede Sekunde geweckt werden kann.

Eine Lösung könnte sein: alle 3600 Wakeups, die Sensoren auslesen, dann die Uhrzeit von der DS1307 lesen und bestimmen, ob es Zeit ist, die Pflanzen zu bewässern.

kann ich bei dem RTC DS1307 einfach sagen, wenn nächster Tag ist, soll er Sensor auslesen? Pflanzen sollten ja nicht mittags in der Sonne gegossen werden.

wie würde das gehen? da ich leider nur immer Erklärungen finde, wie ich den RTC richtig einstelle, mehr steht aber meistens nicht auf den Webseiten.

Danke

johannes96: kann ich bei dem RTC DS1307 einfach sagen, wenn nächster Tag ist, soll er Sensor auslesen? Pflanzen sollten ja nicht mittags in der Sonne gegossen werden.

wie würde das gehen? da ich leider nur immer Erklärungen finde, wie ich den RTC richtig einstelle, mehr steht aber meistens nicht auf den Webseiten.

Soweit mir bekannt ist, hat die DS1307 keinen eigebauten "Wecker". Da musst du diese Auswertung im Arduino machen. 00:00 Uhr auswerten und Signal nach außen geben. Wie das mit deinen weiteren Stromsparfunktionen zusammen passt, kann ich aktuell nicht sagen.

Oder du nimmst die DS3231, die hat entsprechende Funktionen eingebaut.

Hallo,
Du solltest einmal die Doku zu Deiner RTC lesen- nur mal so…
Viele RTC geben den Tag der Woche aus (1,2,3… = So,Mo,DI…)
Darauf kannst Du abfragen.
Gruß und Spaß
Andreas