Měření napětí baterie

Odpovědět
ZdendaA
Příspěvky: 1
Registrován: 06 říj 2020, 16:27
Reputation: 0

Měření napětí baterie

Příspěvek od ZdendaA » 06 říj 2020, 17:17

Snažím se měřit napětí akumulátoru, ze kterého napájím různá zařízení. K měření používám desku ESP8266 ESP-12E OTA WeMos D1. Akumulátor má 12V, tak používám odporový dělič. Dva rezistory 100k a 10k s tolerancí 0,1%. Vše se na první pohled zdá v pořádku, jen naměřené napětí je o téměř 1V vyšší, než jaké naměřím pomocí multimetru. Kde dělám chybu? Díky za rady.

Kód: Vybrat vše


float voltage = 0.0;
float vin = 0.0;
float R1 = 100000.0; 
float R2 = 10000.0; 

void setup() {
    Serial.begin(9600);
}
void loop() {
    int sensorValue = analogRead(A0);
  float voltage= sensorValue * (3.3 / 1023.0);
  vin = voltage / (R2/(R1+R2));
    Serial.print("Hodnota: ");
  Serial.println(sensorValue);
  Serial.print("Napětí: ");
  Serial.println(voltage);
  Serial.print("Vstupní napětí: ");
  Serial.println(vin);
  delay(2000);        
}

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Měření napětí baterie

Příspěvek od ondraN » 06 říj 2020, 18:45

Zdroje chyb tam mohou být čtři. První může být v hodnotě referenčního napětí, které je zároveň napájecí a nemusí být přesné. Chce to změřit a zadat přesnou hodnotu. Druhý problém může být příliš velký odpor děliče. To může při vzorkování způsobovat ujíždění měřeného napětí. Při měření baterie bych ho nechal takový, ale mezi zem a analogový pin bych dal kondenzátor tak 1-3uF, unipolární nebo tantalový. Třetí chybu ti může způsobovat nevhodný způsob výpočtu. Float je dost nepřesný a při dělení malého čísla velkým může vzniknout poměrně velká chyba. Chce to přeskupit tak, aby se dělily přibližně stejná čísla, to je přesnost největší. Poslední problém může způsobovat kvalita převodníku, která není u ESP zrovna velká.
Řešení je buď chyby minimalizovat způsobem měření a výpočtem a pokud to i potom bude jiné, vynásobit to správnou konstantou. Nebo to nechat jak to je a taky to vynásobit správnou konstantou :mrgreen:

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: Měření napětí baterie

Příspěvek od Caster » 06 říj 2020, 21:09

Napětí autobaterie měřím také, pomocí ATtiny202. Počítám s max. vstupní hodnotou napětí 15 V. Odporový dělič mám 270k a 1M, tj. na výstupu max. 15*(0,27/1,27) = 3,19 V.

Změřená hodnota je pak:

Kód: Vybrat vše

Voltage = (float) (ADC_0_get_conversion_result())*3.150054 / 1023.0 * 4.9764
Kde 3,150054 je max. napětí na výstupu děliče při vstupním napětí 15 V. Trochu se liší od vypočítáné hodnoty nahoře 3,19 V. Hodnotu je nutné zpětné dopočítat podle změřených hodnot odporů děliče ohmetrem.

4.9764 je převrácená hodnota dělícího poměru odporového děliče t.j. 1/(0,27/(0,27+1,27)) = 4.70670. Při vlastním výpočtu jsem použil hodnotu 4.9764, kterou jsem zpětně dopočítal z reálného měření vstupní a výstupního napětí, aby naměřené hodnota pokud možno co nejvíce odpovídala hodnotě naměřené pomocí ADC. Tip, dej si vzorec na výpočet napětí do Excel tabulky a pomocí Data, Citlivostní analýza, Hledání řešení se můžeš snadno automaticky zpětně dopočítat potřebou hodnotu ve vzorci.

Ukázka výsledku měření každou hodinu, po probuzení z hlubokého spánku a odeslání změřené hodnoty napětí pomocí IoT (SigFox):

Obrázek

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti