Stromsparen mit Attiny 85 und Watchdog

Hallo liebe Gemeinde,
habe mal wieder ein kleines Problem und zwar nutze ich Powersave und Watchdog um meinen Temperatursender zumindest für 8sec. schlafen zu schicken was schon ne menge Strom spart.

Und nun zu meiner Frage giebt es eine Möglichkeit diese 8 sec. irgendwie zu verlängern?

Bin für jede Antwort dankbar

Gruß Ulf

Hallo,

mit Watchdog sind 8sec das maximale. Wenn nichts zu tun ist, legste ihn sofort wieder schlafen. Das kurze aufwecken geht in die Energiebilanz kaum ein. Für längere Schlafzeiten mußte extern aufwecken. Zum Bsp. mit einer RTC DS3231. Man kann zwar gewünschte Sekundenzeiten nicht fein einstellen, aber zum Bsp. aller Minute oder aller 30sec geht. Müßte ich mal schauen. Das RTC Signal geht dann auf einen einen Interrupteingang mit dem dann aufgeweckt wird.

Oder andere Idee. Wenn die Wiederholgenauigkeit nicht so präzise sein muss, könnte man einen externen "Intervallwecker" vielleicht mit einen NE555 bauen.

Hmm das ganze wollte ich eigentlich vermeiden mit externen Sachen das, ganze ist eine Teperatur Sender

der dann praktisch alle 8 sec. aufwacht und auch sendet wie kann mann denn den Attiny aufwecken

ohne dass er sendet sondern erst nach 30 Sekunden oder so.

Ich hänge mal den Sketch an vielleicht hilft das ja weiter.

Vielen Dank schonmal

Wetterstation.ino (5.17 KB)

Hallo,

ohne externe Wecker, könnte man vielfache von den 8s. nehmen. Du zählst zum Bsp. mit wie oft er aufgewacht ist und dabei nichts tut. Ist er 5x hintereinander aufgewacht, sind 5x8s vergangen, dann startest du deine Sendeaktion, nullst den Aufweckzähler und wartest wieder bis 5x aufwecken erfolgt sind.

Vielen Dank das klingt schonmal sehr gut nur wie stelle ich das an?

Stehe da grad voll auf dem Schlauch.

wie kann mann denn den Attiny aufwecken ohne dass er sendet sondern erst nach 30 Sekunden oder so.

Hei Hei Hei....
Das nennt man Programmieren!

Ha ist mir schon klar dem einen fällt eben das eine leichter einem anderen das andere ich gebe ja zu das es nicht unbedingt meine Stärke ist.

Wenn ich einen Ansatz hätte würde ich mich da sicher leichter tun.

Hallo,

man nimmt eine Variable, zählt diese hoch mit jeden aufwecken, vergleicht diese bei jeden aufwecken, wenn wahr, Aktion ausführen und Variable nullen ...

Hast schon andere Dinge bis heute programmiert?

Allerdings nur damals halt alles unter Basic mit C+ tue ich mich schon schwer :frowning:

Und das ist locker 25 Jahre her.

Nein, ich mach dir nicht die Arbeit!
Tipp:
Lerne C/C++, dann kannst du das selber.
Da mussten wir auch alle durch!

Ha ist mir schon klar dem einen fällt eben das eine leichter einem anderen das andere ich gebe ja zu das es nicht unbedingt meine Stärke ist.

Damit blockierst du dich selber.

Allerdings nur damals halt alles unter Basic mit C+ tue ich mich schon schwer :frowning:

Durch stetes Wiederholen wird sich daran auch sicher nichts ändern.

Hir sollte nimand meine Arbeit machen ich wollte nur einen Denkansatz aber ok zum Deppen muss ich mich dann doch nicht machen lassen.

>Hier< ist so ziemlich alles drin und sogar mit wenigen Schritten macht der Code sogar genau das was du willst nur das du den f_wdt hochzählen lässt bis 5 und erst dann was machst und vor dem Schlafengehen im EEPROM speichern

  • beim aufwachen im EEPROM lesen welcher Stand
  • Zähler größer gleich 5 senden
  • Zähler kleiner 5 wieder schlafen gehen

HIER ist alles zum EEPROM

Gruß
DerDani

ich wollte nur einen Denkansatz aber ok zum Deppen muss ich mich dann doch nicht machen lassen.

Den Denkansatz hast du bekommen: Bau eine Schleife!

Und zum Deppen machst du dich selber mit deiner Bockigkeit/Verweigerungshaltung.

void loop()
{
 // ------------
 for(byte i=0;i<4;i++)goToSleep();
}

Danke Danny

das hat mir echt auf die Sprünge geholfen super Sache.

Und an die anderen weder verweigere ich mich noch bin ich bockig als ich damals angefangen hab hießen die Computer noch Robotron nur mal als kleiner Denkansatz da waren manche noch nicht mal auf der Welt.

Gott sei Dank giebt es ja auch noch Forenmitglieder die tatsächlich helfen wollen ohne dem fragenden rüberbringen zu müssen was es für Experten sind. >:(

Und an die anderen weder verweigere ich mich noch bin ich bockig als ich damals angefangen hab hießen die Computer noch Robotron nur mal als kleiner Denkansatz da waren manche noch nicht mal auf der Welt.

Gott sei Dank giebt es ja auch noch Forenmitglieder die tatsächlich helfen wollen ohne dem fragenden rüberbringen zu müssen was es für Experten sind. >:(

Tut mir auch ein bisschen leid, dass dir meine Antworten gegen den Strich gehen...

Aber sei dir sicher, ich habe mir aus deinen vorherigen Postings DIESE Meinung gebildet.
Denn mir ist absolut schleierhaft, wie man nach 35 Postings hier im Forum noch keine Ahnung haben kann, wie eine For Scheife funktioniert.

damals angefangen hab hießen die Computer noch Robotron

Seit dem hat sich nicht viel verändert.

da waren manche noch nicht mal auf der Welt.

Als ich gezeugt wurde, gabs noch keine Robotron

Doc_Arduino:
Oder andere Idee. Wenn die Wiederholgenauigkeit nicht so präzise sein muss, könnte man einen externen "Intervallwecker" vielleicht mit einen NE555 bauen.

Das ist eine Milchmädchenrechnung, so kannst du bestenfalls Bauelemente versenken :stuck_out_tongue:
Ein normaler NE555 zieht mehr Strom, als der Tiny, wenn er garnicht schlafen geschickt werden würde :wink:
Die CMOS Version des 555 wäre eine Alternative.

Was weiter unten erwähnt wurde, die Weckvariable ins EEPROM schreiben ist dann wieder ein Schritt Richtung geplante Obsoleszenz, wenn man da nichts Richtung Wearlevelling einbaut, damit sich alle Zellen im EEPROM gleichmäßig abnutzen.
Oder wie Murphy es ausdrücken würde: "In jedem kleinen Problem steckt ein Großes, welches gerne heraus möchte" :smiling_imp:

@Dany ich danke dir von ganzen Herzen habe es hinbekommen und funtioniert super, nochmals vielen Dank!!!

@ nix_mehr_frei das war anfangs auch meine Idee allerdings hatte ich mir zum ziel gesetzt das es auch mit dem Attiny gehen muss mir fehlte eben leider nur der Denkanstoß danke trotzdem.

@ die anderen beiden würde ich bitten auf meine Fragen einfach nicht mehr zu antworten ......

ich befasse mich seit cirka einem Jahr damit, mit grösseren Unterbrechungen aber ich komme langsam immer weiter.

PS es giebt keine dummen Fragen........

PS es giebt keine dummen Fragen........

Das ist eine Duchhalteparole für Doku Lese Verweigerer und Code Abstauber.

Hallo,

ja okay, das mit dem Strom sparen hatte ich beim NE555 irgendwie verdrängt, ja, wäre völlig sinnlos. Es geht ja ums Energie sparen.

Wegen der Zählvariable, bin der Meinung das man dafür kein Epprom benötigt. Eine normale Variable ist dafür ausreichend. Bleibt alles im Speicher erhalten.

Edit:
du verbietest mir zu antworten? Der den Hinweis gab mit der Zählvariable?
Ich bleibe heute mal locker.

@combie Schalte mal einen Gang runter wird sind hier nicht im mikro........forum. Wir sollten hier immer noch einen freundlichen Ton anschlagen denn dafür war die Arduino Community bekannt und sollte es auch bleiben.
Gruß
DerDani

Ich weiß deine ~3500 Postings und 288 Karma geben dir recht.