Sdílejte chiptron.cz na sociálních sítích



RSS feeds

Nelinearita AD převodníku u ESP32? S touto knihovnou to bez problému vyřešíte.Tisk



Že se AD převodník u ESP32 příliš nepovedl je docela známo. Trpí jak šumem, tak i významnou nelinearitou, což je velký problém u měření napětí - třeba akumulátoru. Tato knihovna pro Arduino to za vás vyřeší.

Espressif Systems, výrobce ESP32, tento problém vyřešil šalamounsky a můžete využít funkci nazvanou esp_adc_cal_get_characteristics a následně esp_adc_cal_raw_to_voltage. Díky těmto dvě funkcím si ESP32 dopočítá, jaká by měla být správná hodnota změřená na vámi vybraném pinu.

Abyste to ale nemuseli řešit v každém vašem projektu, Kevin Harrington vytvořil knihovnu, kde jednoduše nastavíte pin, na jakém chce měřit, poté zavoláte funkci na přečtení a přepočítání napětí a to je všechno.

adc.attach(33);
Serial.println("Voltage = "+String(adc.readVoltage()));


A to je vše!

Knihovnu najdete na https://github.com/madhephaestus/ESP32AnalogRead
Knihovnu najdete přímo i v repozitáři knihoven v Arduino IDE.

TIP: Návod jak použít AD převodník u ESP32 a vysvětlení chyb najdete na této stránce https://deepbluembedded.com/esp32-adc-tutorial-read-analog-voltage-arduino/

Upozornění

Administrátor těchto stránek ani autor článků neručí za správnost a funkčnost zde uvedených materiálů.
Administrátor těchto stránek se zříká jakékoli odpovědnosti za případné ublížení na zdraví či poškození nebo zničení majetku v důsledku elektrického proudu, chybnosti schémat nebo i teoretické výuky. Je zakázané používat zařízení, která jsou v rozporu s právními předpisy ČR či EU.
Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva.
Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ.
7,099,314 návštěv