Hallo, Hab ein Programm das jede Sekunde die Messwerte der Batterie abfgägt. Dies soll aber nur gemacht werden, wenn das zu betreibende Gerät auch gerade verwendet wird. Befindet sich das Gerät aber im Ruhemodus und wird gerade nicht benötigt, soll nur noch jede Stunde abgefragt werden. Wie kann ich denn das am besten machen? Wo könnte ich denn das abfragen, ob gerade der Verbraucher in Betrieb ist und die Batterie in Anspruch genommen wird? Danke schonmal im voraus
Die Antwort ist: 42. Was für ein Gerät? Das Gerät, an dem du bastelst? Oder ein angeschlossenes Gerät? Mehr Info... Generell, wenn es um dein eigenes Gerät geht, wirst du ja selbst wissen, wann du im Ruhemodus bist und wann nicht. Entsprechend dem Zustand richtest du einen Timer ein, der entweder jede Sekunde zuschlägt, oder nur jede Stunde. Falls es dein Gerät unterstützt, regel die Taktfrequenz runter, das macht es mit dem Timer evtl. ein bisschen leichter. Ralf
Die Sekundenabfrage funktioniert ja schon. muss nur noch rausbekommen wann ich im ruhemodus bin. Die stundenabfrage ist dann nicht mehr so das Problem. Das angeschlossene gerät ist beliebig. Man muss nur irgendwie abfragen ob gerade was von der Batterie gezogen wird oder nicht.
Dann musst du halt zusätzlich messen, wieviel von der Batterie gerade gezogen wird, und wenn es >1mA ist, bist du aus dem Ruhemodus.
aber was hilft es am ende. Ob er jetzt nun die Spannung misst, oder jede Sekunde den Strom und dann bei bedarf die Spannung? Das erhöht doch die Stromaufname nur. Das Feststellen ob das Gerät im Ruhezustand ist oder nicht, braucht doch mehr Energie als wenn man einfach jede Sekunde die Spannung misst.
das mit der zeit war nicht so genau zu nehmen. Werd es auch eventuell so machen das einfach nur alle 24 Stunden gemessen wird wenn es sich im Ruhemodus befindet. Dann würd es schon mehr Sinn machen,oder?
nein, woher willst du denn Feststellen ob das Gerät im Ruhezustand ist. Das ganze ist doch auch wieder eine Messung. Also ist doch die Frage, wie schnell willst du wissen ob das Gerät im Ruhezustand oder nicht ist.
Steff schrieb: > das mit der zeit war nicht so genau zu nehmen. Werd es auch eventuell so > machen das einfach nur alle 24 Stunden gemessen wird wenn es sich im > Ruhemodus befindet. Dann würd es schon mehr Sinn machen,oder? Das Problem ist ja nicht das Feststellen des Ruhemodus. Das Problem ist das Feststellen des Verlassens des Ruhemodus! Wenn du nur alle 24 Stunden hinsiehst, verpasst du dass dein Gerät schon vor 8 Stunden aufgeweckt wurde und sich nach 1 Stunde wieder schlafen gelegt hat. Du brauchst also einen Mechanismus, der ständig überwacht ob dein angeschlossenes Gerät noch ruht oder schon aktiv ist. Wenn du aber sowieso so einen Mechanismus zusätzlich brauchst (wenn ihn das Gerät nicht schon mitbringt), dann kannst du auch gleich deinen µC alle Sekunde nachsehen lassen.
Ja so schnell wie möglich, das ich weiß ob ich jede Sekunde oder nur jeden Tag messen muss. Das Abfragen ob das Gerät im Ruhemodus ist muss also immer erfolgen bis es im Ruhemodus ist. Würde es nicht so gehen das ich einmal Abfrag ob es im Normalbetrieb ist und lese dann jede Sekunde die Daten ein und Frag ab ob es sich im Ruhemodus befindet? und dann wenn es sich im Ruhemodus befindet frag ich einfach nur alle 24h ab. Also dann einmal gleich am Anfang und wenn das gerät 24 Stunden nur rumliegt, einfach wieder nach 24 Stunden? Würds so theoretisch gehn?
> und dann wenn es sich im Ruhemodus befindet frag ich einfach nur alle > 24h ab. und wie willst du jetzt mitbekommen ob das gerät nach 5min wieder aufwacht?
Also wäre es "wirtschaftlicher" jede Sekunde einfach zu messen, als einen großen Aufwand zu machen und den Ruhemodus auszuwerten?
Steff schrieb:
> Würds so theoretisch gehn?
Du hast das Problem, das jeder Hellseher hat: Du kannst nicht in die
Zukunft schauen :-)
Woher willst du wissen, das das Gerät nachdem es sich in den Ruhemodus
begeben hat, dies auch für die nächsten 24 Stunden tun wird. Wer sagt
dir, dass das Gerät in der Zwischenzeit nicht aufwacht und für 1 Stunde
arbeitet? Im Extremfall schaust du alle 24 Stunden hin, erkennst den
Ruhemodus und dein Auswertung ergibt dann, das das Gerät das letzte
halbe Jahr nie den Ruhemodus verlassen hat, während in Wirklichkeit du
immer nur zu den falschen Zeiten hingesehen hast.
Dein Problem ist eine Variante des Abtastproblems und die Lösung dazu
liefert das Shannonsche Abtasttheorem: Die Hinschaufrequenz muss
mindestens doppelt so hoch sein wie die 'Ruhephasenfrequenz' des
Gerätes.
Sprich: Wenn du weißt, dass dein Gerät minimale Ruhepausen von 1 Stunde
hat, dann musst du mindestens alle 1/2 Stunde hinsehen um keine
Ruhephase zu übersehen.
JA, du könntst aber mal etwas zu den Randbedingungen sagen. Ist es eine "Uhrenbatterie" oder eine Autobatterie. Was hast du von der Messung, einfach messen und erebniss wegwerfen? Hängt deine Messschaltung an der gleichen Batterie?
Die Daten werden von einem Überwachungsbaustein,der die Messdaten der batterie erfasst aufgenommen. Der Mirocontroller erfasst dann nur noch die Daten und wertet die auch aus. Könnte man wenn der Controller im Ruhemodus ist und nichts mehr von der batterie gezogen wird den Controller nicht einfach "schlafen" legen und durch einen interrupt ihn nach 24 stunden wieder aufwecken um dann eine Messung durchzuführen?
Erklär nochmal, wie da die Zusammenhänge sind. Wer überwacht wen? Wer macht was? Irgendwie scheint mir das momentan noch ein Kuddelmudel zu sein. > Könnte man wenn der Controller im Ruhemodus ist und nichts mehr > von der batterie gezogen wird den Controller nicht einfach > "schlafen" legen Klar kann man. Das wird auch der Regelfall sein. Hier sind alle davon ausgegangen, dass du 2 Schaltungen hast. Schaltung A: die macht irgendwas und legt sich dann schlafen, braucht also wenig Strom. Auf diese Schaltung hast du keinen Einfluss. Insbesondere teilt dir diese Schaltung auch nicht vernünftig mit wenn sie ruht und wenn sie aktiv arbeitet Schaltung B: Die soll Schaltung A überwachen. In Schaltung B sitzt der µC, dessen Aufgabe es ist, aus irgendeinem Grund rauszufinden, wann Schaltung A arbeitet und wann nicht. Aber nach deinem letzten Post klingt das (zumindest für mich) alles ganz anders.
Hab eine Überwachungsschaltung, die die Messdaten der Batterie überwacht und Messdaten aufnimmt. Der Mikrocontroller soll nur die Messdaten des überwachungsbausteins aufnehmen und auswerten und dann in einem Flash abspeichern. Das funktoniert auch alles soweit. Wenn sich aber seit etwa 1 Stunde nichts tut an der Batterie,also es wird nichts damit angetrieben und die batterie wird auch nicht geladen, dann soll sich alles in den Ruhemodus versetzten. Über eine externe Uhr soll es dann durch einen Interrupt aufgeweckt werden um kurz die aktuellen Messdaten zu erfassen. Danach wird es wieder schlafen gelegt.
Steff schrieb: > Hab eine Überwachungsschaltung, die die Messdaten der Batterie überwacht > und Messdaten aufnimmt. > Der Mikrocontroller soll nur die Messdaten des überwachungsbausteins > aufnehmen und auswerten und dann in einem Flash abspeichern. Das > funktoniert auch alles soweit. > > Wenn sich aber seit etwa 1 Stunde nichts tut an der Batterie,also es > wird nichts damit angetrieben und die batterie wird auch nicht geladen, > dann soll sich alles in den Ruhemodus versetzten. Über eine externe Uhr > soll es dann durch einen Interrupt aufgeweckt werden um kurz die > aktuellen Messdaten zu erfassen. Danach wird es wieder schlafen gelegt. Das heist doch aber auch, dass dein µC die Oberhand hat und die Überwachungsschaltung schlafen legen kann. Also geht es im Grunde 'nur' darum rauszufinden, was mit der Batterie passiert. Wird exzessiv Strom entnommen oder reingeladen. Ich würd trotzdem den µC jede Sekunde nachsehen lassen. Wenn der (samt Überwachungsschaltung) in der Zwischenzeit schläft, wird dein kompletter Stromverbrauch wahrscheinlich so niedrig sein, dass das die Lebensdauer der Batterie nicht wesentlich beeinflusst. Wenn es sich um eine vollgeladene Autobatterie (oder sowas ähnliches handelt) ist die Selbstentladeung höher, als das bischen, was der µC für sich braucht (von der Überwachungsschaltung kann man so nichts sagen. Hast du deren Stromaufnahme schon mal gemessen?)
wenn der mikrocontroller ja ebenfalls pennt kann er ja nicht mehr jede Sekunde messen. Der sollte dann schon über die externe Uhr wieder aufgeweckt werden. Im Ruhemodus soll nur noch die externe Uhr laufen, alles andere, wie der Mikrocontroller sind zu dieser Zeit komplett abgeschaltet. in den Ruhemodus soll das ganze versetzt werden wenn mal 24 Stunden vergangen sind und die Batterie in der Zeit nicht geladen wird oder gerade ein verbraucher angeschlossen ist. Ist das alles mal im Ruhemodus, dann geht garnichts mehr und kann nur noch durch die externe Uhr aufgeweckt werden. Ist die Erklärung bisschen besser? Wie würdest du da vorgehen?
Bei dem Projekt geht es ja nicht so sehr darum ob es effizient mit oder ohne Ruhemodus ist. Es soll ja nur ein "Prototyp" für weitere Anwendung werden
> wenn der mikrocontroller ja ebenfalls pennt kann er ja nicht mehr jede > Sekunde messen. Das ist eine frage das ruhezustandes. Es gibt bei den Atmel auch ein Modus in dem er von einem Timer geweckt werden kann. Die Frage ist aber immer noch WIE GROSS IST DENN DIE BATTERIE, geht es um jedes µA oder stört es dich auch nicht wenn 1mA von µC verbaucht werden?
das würde eigentlich auch nicht stören. Ich glaub euch schon das es besser wäre einfach jede sekunde abzufragen, aber das Programm sollte halt mit der externen Uhr umgesetzt werden
Steff schrieb: > das würde eigentlich auch nicht stören. Ich glaub euch schon das es > besser wäre einfach jede sekunde abzufragen, aber das Programm sollte > halt mit der externen Uhr umgesetzt werden Auch das lässt sich machen. Der µC dreht sich selbst den Saft ab und die Uhr klemmt ihn wieder an. Die Frage ist halt immer: wozu so kompliziert? Zusätzliche Komponenten bedeuten in erster Linie einfach nur zusätzliche Fehlerquellen.
Ja schon, aber die externe Uhr ist halt schon drauf und muss mitbenutzt werden. Hättest du mir da trotzdem ein Vorschlag?
Steff schrieb: > Ja schon, aber die externe Uhr ist halt schon drauf und muss mitbenutzt > werden. Hättest du mir da trotzdem ein Vorschlag? Wie soll den das gehen? Bis jetzt schweigst du dich ja immer aus, wenn man mal nach Details nachfragt. Sogar der Batterietyp ist wieder mal top secret. Wie ist die Uhr angeschlossen. Was kann die Uhr machen? Hat die einen Ausgang, mit dem sie etwas ansteuern kann? welche Uhr ist es eigentlich? Kann der µC die Uhr programmieren und ihr eine Alarmzeit vorgeben? .... So wird das nichts. Wenn du qualifizierte Hilfe haben willst, dann musst da mal ein paar Details mehr rausrücken als immer nur dieses 'Die Anwendung ist TOP Secret, das wird der Hammer wenns fertig ist' nichtssagend unkonkrete Geschwafel.
die externe Uhr ist ds1337. die wird über i2c mit dem mikrocontroller angschlossen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.