/* Pseudocode Messung der Spannung eines 48V LiFePO4-Akkus an seinen Polklemmen mit ATmega328P und 16MHz CPU-Takt Spannungsteiler zur Messung der Batteriespannung: R1 = 100 kOhm, R2 = 1,8 kOhm, C2_block 100 nF ... 10µF zur Glättung Mit ADCref = 1,1V ergibt sich rechnerisch ein Spannungsmessbereich von 0 V ... 62,2 V. Das sollte mit einem guten Multimeter bei unbelastetem Akku kalibriert werden, bevor UBATTLOW_LIM berechnet wird. Wichtig: ein ADC-Wert = 1023 entspricht dann einer Spannung von rechnerisch 62,14 V und nicht 62,2 V! Berechnung von UBATTLOW_LIM (z.B. 45V): -> UBATTLOW_LIM = 45V * 1024 / 62,2V = 741 ADC-Inkremente Das Unterschreiten von UBATTLOW_LIM wird durch die LED des Arduino angezeigt */ #include #include #include #include #include #include #define UBATTLOW_LIM 741 //ADC-Wert für Für Abschaltschwelle #define LED_PIN PB5 // Arduino Uno Pin13 #define LED_PIN_LOW (PORTB &= ~(1< ADC0 //ADC initialisieren ADMUX = (1<