ATtiny2313RCLichtsteuerungStandard  2013-09-02
batt_komp.c-Dateireferenz

Komparator zur Batterie Spannungsüberwachung. Mehr ...

#include "batt_komp.h"
Include-Abhängigkeitsdiagramm für batt_komp.c:

Funktionen

void init_batt_komp ()
 Komparator zur Akkuüberwachung einstellen. Mehr ...
 
 ISR (ANA_COMP_vect)
 Interrupt Service Routine für den Analog Komparator. Mehr ...
 

Ausführliche Beschreibung

Komparator zur Batterie Spannungsüberwachung.

Autor
V. Pippan (webma.nosp@m.ster.nosp@m.@vpip.nosp@m.pan..nosp@m.at)
Datum
2013-08-30
Version
20130830

Copyright 2013, 2014 V. Pippan (webma.nosp@m.ster.nosp@m.@vpip.nosp@m.pan..nosp@m.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.

Dokumentation der Funktionen

void init_batt_komp ( )

Komparator zur Akkuüberwachung einstellen.

  • Digital Input Buffer für Pins AIN0 und AIN1 deaktivieren -> spart Strom
  • Interrupt an positiver Komparator Flanke auslösen, interne Referenzspannung an den Komparator Eingang AIN0 schalten, Komparator Interrupt aktivieren
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.