ESP32: Lettura tensione analogica molto instabile ed imprecisa

Salve,
ho un ESP32 WROOM32 DevKit su cui ho caricato MicroPython (v1.17 mi pare), tutto funziona bene.
Tutto bene ma leggendo due tensioni continue tramite gli ADC interni (PIN34 e PIN35) le letture sono molto approssimative ed instabili nel tempo; tramite un partitore resistivo (330K/18K 1%) ho applicato una tensione di 17.83v (letta dal multimetro) al PIN34 e l'ADC legge tensioni che variano da 17.1 a 18.6 circa :frowning:
Documentandomi ho trovato un video esplicativo sul tubo che spiega come linearizzare la risposta degli ADC interni all'ESP32, sono riuscito ad ottenere una linearizzazione accettabile ma non una precisione nella lettura. C'è modo di migliorare via software in qualche modo il bizzarro comportamento degli ADC dell'ESP32 o non c'è speranza?

Collegando allo stesso ESP32 un convertitore ADC esterno (un ADS1115) le letture delle tensioni sono molto più stabili e precise, nelle stesse condizioni su esposte leggo 17.86455v (sempre a fronte di 17.83v letti dal multimetro) con qualche sporadico salto a 17.78721 (una volta dopo 16 letture stabili), un salto a 17.90322v ed uno a vIn=17.82588 ma solamente una lettura appena fuori dopo 14-16 letture precise (una lettura ogni 250mS) per questo escludo problemi di interferenze esterne al circuito, ho collegato un condensatore da 100nF in parallelo all'ADC proprio per evitare problemi.

Qualcuno ha avuto esperienze simili ed ha rispolto?

Grazie
Dino

Magari devi semplicemente calibrare in modo più accurato l'ADC.
Prova a dare un'occhiata a questa documentazione ufficiale

Analog to Digital Converter (ADC) - ESP32 - — ESP-IDF Programming Guide latest documentation (espressif.com)

Avevo già guardato ma non ho risolto, sembra tutto ok ma non legge correttamente.
Farò delle altre prove...

Hai messo un condensatore fra l'ingresso e massa?
Per quanto riguarda l'accuratezza, dipende dalla tensione di riferimento.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.