PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Power LED und leere Akkus



stochri
26.07.2007, 22:43
Hallo SLyD,


> Im Anlieferungszustand geht die PowerLED nach einiger Zeit aus.

Ja, er wechselt nach 30 Sekunden in den Standby, wenn kein Programm
geladen ist.
Dann wird alles abgeschaltet und er zieht nur noch 3 bis 4mA.
Zugegeben: man kann das dann durchaus vergessen, aber es ist relativ
unwahrscheinlich,
dass man den Roboter lange ohne ein Programm stehen lässt - nach dem
Auspacken und
Einbau der Akkus....

Wenn ein Programm im Bot ist - und das ist der Normalfall - blinkt
ständig eine
grüne Status LED und er wechselt nie von selbst in den Standby!

bei mir ist es allerdings schon passiert, dass die POWER-LED aus war, ich aber vergessen habe, den Schalter auszuschalten. Selbst bei nur 4 mA sind vollgeladene Akkus mit 2300mAh Kapazität nach 24 Tagen leer. Wenn jemand ein Programm laufen läst, die Power-LED durch das Programm ausgeschaltet wird und der ASURO mal für 4 Wochen in den Schrank stellt, kann man die Akkus hinterher entsorgen. Falls man Batterien verwendet, kann man nach dem Auslaufen der Batterien auch gleich noch einen anderen Batteriehalter kaufen.

Ich habe mir bei meinen Schaltungen angewöhnt, bei Bestrohmung immer einen LED leuchten zu lassen, das spart im Zweifelsfall tote Akkus.

Gruss,
stochri

SlyD
27.07.2007, 02:04
Hallo stochri,

OK das stimmt schon. Wenn man mal nicht drauf achtet ...

Ich wollte den Energiebedarf der Elektronik so niedrig wie möglich halten. Die ganzen Erweiterungen die man draufbauen kann, ziehen dann schon noch genug Energie ;)

----------------------------------------------------

Eine Idee wäre es, das Softwaretechnisch zu lösen: Eine Abfrage im Timer Interrupt (läuft immer - daher muss man im Programm nicht drauf achten), in der man z.B. nach 15 Sekunden OHNE aktive LEDs eine der grünen LEDs für 4 Sekunden mit 5Hz blinken lässt....
Habe ich gerade probiert - klappt soweit schon ganz gut und kostet nicht viel Energie :)


@all:
Was meint Ihr? Soll das in die Library aufgenommen werden?
Kann man natürlich abschaltbar machen?

MfG,
SlyD

radbruch
27.07.2007, 06:19
Hallo

Eine automatisch flashende LED wäre prima, das mache ich meist auch in der letzten while-Schleife vor dem Nirwana, wenn mein Programm ein Ende hat. Allerdings sollte das irgendwie auch abstellbar sein, vielleicht gekoppelt mit dem StartLEDleuchten.

Möglicherweise ist eine flashende rote LED bei Tageslicht besser zu erkennen als eine Grüne.

Man könnte auch eine eigene Leerlauffunktion in den Timer2 einhängen, ähnlich wie bei den Aktionsfunktionen beim ACS oder den Bumpern. Als Default die oben beschriebene Akkuschutz-Flashfunktion. Wer dann kein Flashen möchte, kann eine Leerfunktion einbinden... Das wäre generell nicht schlecht, dann könnte man auch den Timer anzapfen, ohne die Library zu ändern. Also wenn, dann bitte Timer2. Ich weiß allerdings nicht, ob eine ISR weitere Unterfunktionen aufrufen darf. Und es wäre natürlich ein Risiko, wenn die eigene Funtkion zu lange ist...

Gruß

mic

SlyD
27.07.2007, 12:49
Hallo mic,



Also wenn, dann bitte Timer2


Timer2 kann leider nicht direkt für sowas verwendet werden! Der Interrupt wird nur dann aktiviert wenn auch IR Impulse mit ACS oder IRCOMM gesendet werden müssen. Sonst ist der deaktiviert.
(wenn man task_ACS aufruft - die Funktion kümmert sich darum)

Ah da fällt mir gerade sogar noch ein kleiner Bug auf - der ist nur dann öfters mal deaktiviert wenn auch wirklich task_ACS aufgerufen wird ... muss ich noch in der Initialisierung ändern das der per Default abgeschaltet ist.

Das der Timer Interrupt deaktiviert ist, lässt sich natürlich auch leicht im Code der Library ändern. Aber im Prinzip ist es unnötig, das der Interrupt die ganze Zeit aufgerufen wird wenn eigentlich nichts zu tun ist.


Für die warn-LED reichen die 10kHz von Timer0 auch vollkommen aus und da gibts direkt ne Millisekunden Abfrage, so dass der entsprechende Code nur jede ms ausgeführt wird und nicht unnötig viel Rechenzeit verschwendet.




Ich weiß allerdings nicht, ob eine ISR weitere Unterfunktionen aufrufen darf.


Darf man schon, sollte man aber eigentlich nicht machen wenn es sich vermeiden lässt. Schon gar nicht wenn ein Interrupt so oft ausgeführt wird wie der vom Timer2...




Möglicherweise ist eine flashende rote LED bei Tageslicht besser zu erkennen als eine Grüne.


Ja stimmt! Eine rote LED ist besser.




Allerdings sollte das irgendwie auch abstellbar sein


Ja da habe ich schon zwei Möglichkeiten eingebaut. In der RP6Config.h kann man
#define POWER_ON_WARNING
auskommentieren - dann wird der entsprechende Code gar nicht mit übersetzt.
Und man kann auch zur Laufzeit einstellen ob man das aktivieren will oder nicht.

--------------------------------------------------------------

Ich veröffentliche die Lib in den nächsten Tagen zusammen mit diesen Anpassungen.

MfG,
SlyD

radbruch
27.07.2007, 15:03
Hallo Slyd,

danke für die Infos. Schön dass ich wenigstens indirekt etwas zur Verbesserung der Lib beitragen kann. 8-[

Gruß

mic