Blog: Você não sabia? Ajuste de ADC do ESP32
Blog: Você não sabia? Ajuste de ADC do ESP32
Tópico criado para tirar dúvidas sobre o artigo do blog do fernandok.com: https://www.fernandok.com/2018/09/voce- ... esp32.html
-
- Novato
- Mensagens: 1
- Registrado em: 13/Dez/2018, 11:26
Re: Blog: Você não sabia? Ajuste de ADC do ESP32
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.

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:
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?

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;
}
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?