Ž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/