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.
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?
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?
> 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.
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.