Página 1 de 1

Blog: Você não sabia? Ajuste de ADC do ESP32

Enviado: 21/Set/2018, 11:13
por joao
Tópico criado para tirar dúvidas sobre o artigo do blog do fernandok.com: https://www.fernandok.com/2018/09/voce- ... esp32.html

Re: Blog: Você não sabia? Ajuste de ADC do ESP32

Enviado: 14/Dez/2018, 00:50
por pablo.guillen
Eu estou tendo alguns problemas com o ADC do ESP32. Vi com grande interesse o vídeo, pois também detectei a não linearidade da leitura.
Imagem
Só que não consegui aplicar a função criada para compensar o erro. Nos valores baixos até funciona, mas bem antes de 4095, dá overflow, e eu usei um polinômio grau 7:

Código: Selecionar todos

void setup() {
  Serial.begin(115200);
  for (int i = 0; i <= 4095; i++) {
    Serial.print(i);
    Serial.print(" ");
    Serial.println(f(i));
  }
}

void loop() {

}
double f(double x) {
  double compensador =  3.9917908596156870e-001
                        +  2.9599986795921716e+000 * x
                        + -7.1082041035661014e-002 * x * x
                        +  1.2600415594577769e-003 * x * x * x
                        + -1.0857648131519691e-005 * x * x * x * x
                        +  4.7299338319715220e-008 * x * x * x * x * x
                        + -9.9842281140665223e-011 * x * x * x * x * x * x
                        +  8.0379941113475406e-014 * x * x * x * x * x * x * x;
  return compensador;
}
Percebi que no vídeo Fernando gerou o gráfico com a onda trapezoidal, ele usou a função diretamente?
O único jeito que eu imaginei de fazer essa compensação sem usar a função é utilizar um array com todos os valores tabelados (0 a 4095), porém eu tenho grande fluxo de dados, e em algum momento memória pode faltar.
Há algo que estou deixando passar nessa função com polinômio?

Além dessa dificuldade estou enfrentando ruídos de +-3%, mesmo usando o capacitor de 0.1uF como indica as recomendações da espressif.
https://docs.espressif.com/projects/esp ... alibration
Alguém tem mais alguma dica para melhorar essas leituras?