ATtiny2313RCLichtsteuerungStandard
2013-09-02
|
Komparator zur Batterie Spannungsüberwachung. Mehr ...
#include "batt_komp.h"
Funktionen | |
void | init_batt_komp () |
Komparator zur Akkuüberwachung einstellen. Mehr ... | |
ISR (ANA_COMP_vect) | |
Interrupt Service Routine für den Analog Komparator. Mehr ... | |
Komparator zur Batterie Spannungsüberwachung.
Copyright 2013, 2014 V. Pippan (webma) ster @vpip pan. at
This file is part of ATtiny2313 RC Lichtsteuerung Standard.
ATtiny2313 RC Lichtsteuerung Standard is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or any later version.
ATtiny2313 RC Lichtsteuerung Standard is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ATtiny2313 RC Lichtsteuerung Standard. If not, see
www.gnu.org/licenses.
Als Vergleichspannung für den Komparator wird die interne Referenzspannung des uC verwendet. Diese beträgt typ. 1,1V und schwankt über die Temperatur.
Die hohe Akkuspannung wird über einen Spannungsteiler so geteilt, daß ein Vergleich mit der Referenzspannung möglich wird. Allerdings ändert sich diese heruntergeteilte Spannung, aufgrund des Teilungsfaktors, nur mehr in einem kleinen Bereich.
Durch eine Berechnung mit Hilfe der Fehlerfortpflanzung (siehe Maxima Datei) habe ich sichergestellt, daß trotz störender Einflüsse (Widerstandstoleranzen, Temperaturänderung) der Akku sicher als leer erkannt wird. Ein Berechnungsbeispiel findet sich im Tabellendokument welches auch die Bauteilliste etc. enthält.
void init_batt_komp | ( | ) |
Komparator zur Akkuüberwachung einstellen.
ISR | ( | ANA_COMP_vect | ) |
Interrupt Service Routine für den Analog Komparator.
Wenn die Akkuspannung unter einen vorgegebenen Wert fällt, erzeugt der Analoge Komparator eine positive Flanke an seinem Ausgang und dieser Interrupt wird ausgeführt. Innerhalb dieser Routine wird batt_full = 0 gesetzt und somit die Hauptschleife des Programms beendet, alles ausgeschalten und der uC in den Schlafmodus versetzt.