Forum: Mikrocontroller und Digitale Elektronik µC nach gewisser Zeit abschalten


von Björn (Gast)


Lesenswert?

Tag,

ich hab mir ne Fernbedienung programmiert. Nun möchte ich den 
Controller(AVR) bzw. die Fernbedienung ausschalten, wenn sie 
eingeschaltet ist und ne Zeitlang nichts gemacht wurde.

Was gibt es da für Möglichkeiten?

Gruß
Björn

von Rahul D. (rahul)


Lesenswert?

sleep-modes

von Björn (Gast)


Lesenswert?

Sleep-Modes sind klar, hab ich auch schon programmiert. Die Frage war 
wohl etwas falsch gestellt.

An welche Bedingungen könnten sich die Sleep-Modes denn dann 
orientieren?

von Karl heinz B. (kbucheg)


Lesenswert?

An die Zeit seit dem letzten Tastendruck.

Ist doch simpel:
Timer aufsetzen und eine Uhr realisieren. Wenn eine bestimmte Zeit
vergangen ist -> Sleep.

Wo liegt das Problem?

von Rahul D. (rahul)


Lesenswert?

Man könnte auch bei jedem Tastendruck den Watchdow-Timer zurücksetzen, 
dann zu Beginn des Programms nachgucken, wer den Reset ausgelöst hat und 
dann den Controller schlafen schicken. (Das Nachgucken kann man sich 
vermutlich auch sparen...)

von Björn (Gast)


Lesenswert?

Das mit dem Tastendruck wäre nicht so das Problem. doch die Tasten haben 
eher ne Nebenfunktion.

Hauptaugenmerk wollte ich auf die Potis legen, also die AD-Wandler des 
µC.

Doch wie frag ich nen AD-Wandler in solch einem Fall ab?

von thkais (Gast)


Lesenswert?

Das geht genauso, man hält sich im Speicher die "alten" Werte der 
A/D-Wandler vor und vergleicht sie mit den neuen. Sind Unterschiede da, 
wird noch an den Potis rumgerührt, sind keine Unterschiede da, ist 
irgendwann die Abschaltbedingung erfüllt. Ich würde einen Zähler 
einführen, der z.B. im Sekunden-Takt aufwärts gezählt wird. In der 
A/D-Abfrage wird dieser Zähler immer dann auf 0 gesetzt, wenn ein 
A/D-Wert sich ändert. Ändert sich eine Zeit lang nichts, läuft der 
Zähler irgendwann über einen festzulegenden Schwellenwert.
Etwas tricky ist das Rauschen der A/D-Wandler, man müsste sich mal 
anschauen, wie groß das tatsächlich ist und evtl. eine Schwelle einbauen 
oder einen Filter realisieren.

von TravelRec. (Gast)


Lesenswert?

Die Frage ist doch, wie weckst Du den Controller wieder? Die 
verschiedenen Sleep-Modes lassen auch nur einige Weck-Quellen zu. Je 
tiefer der Controller schläft, also je mehr abgeschaltet ist, desto 
weniger Möglichkeiten bleiben. Bei den wirklich stromsparenden Modi 
bleibt nur noch das schalten an einer externen Interruptleitung übrig. 
Den Controller schlafen zu schicken, ist kein Problem. Wie oben erwähnt, 
einen Timer programmieren und eine Variable hochzählen. Wenn diese einen 
bestimmten Wert erreicht hat, den Controller pennen lassen. Jede Aktion 
von außen durch sich ändernde Werte oder Tastendrücke löschen die 
Variable.

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
Noch kein Account? Hier anmelden.