Pessoal, boa tarde!

Gostaria de uma orientação:

Tenho um projeto lendo um sensor com Arduino e recebendo os dados na porta analógica com 10 bits  (0 a 1023). Agora quero migrar para o ESP32. Sei que o padrão do ADC do ESP32 é 12 bits, mas li em algum lugar que ele também trabalha com 10 bits.
Eu não gostaria de mexer na rotina que recebe esses dados portanto gostaria que o ESP também usasse 10 bits, ai eu pergunto:

Tem algum comando para alterar o hardware do ESP32 para trabalhar com 10 bits ao invés de 12? 

Ou seria melhor eu fazer um map() no meu firmware e bola pra frente?

Aguardo qualquer comentário.

Obrigado!

Zé Roberto. 

Exibições: 484

Responder esta

Respostas a este tópico

analogReadResolution(10);

Olá Andre, bom dia!

Obrigado pela resposta!

Zé Roberto

Boa tarde,

veja se esta função resolve:

  • analogReadResolution(resolution): set the sample bits and resolution. It can be a value
  • between 9 (0 – 511) and 12 bits (0 – 4095). Default is 12-bit resolution.

  • analogReadResolution(10)

RV m ineirin

Olá Rui, bom dia!

Obrigado pela resposta e costumeira atenção às minhas demandas.

Zé Roberto

Cuidado com a tensão máxima de entrada.

Arduino são 5v. Esp são 3v3.

Olá, Zé Roberto!

   A pouquíssima experiência que eu tenho com o A/D do ESP32 é decepcionante.

   Problemas como alta não-linearidade, dead-band, offset etc.

   Provavelmente você precisará da ajuda de colegas mais experientes aqui do LdG.

   Felizmente há vários. Este é só um aviso para não te decepcionar quando começares a obter resultados incorretos.

Boa Sorte!

D. T. Ribeiro.

com relação aos ADC's (tanto do esp como do arduino), é necessário fazer um arranjo externo com capacitor e resistor.

Olá Tiago, bom dia!

A minha ideia era fazer apenas um divisor de tensão com resistores. O capacitor seria para filtrar ruídos? Como seria esse arranjo, podes me enviar um esquema?   

Olá Ribeiro, bom dia!
Obrigado pela resposta. Tenho lido sobre estes problemas, principalmente quando você usa wifi. Vou aguardar a resposta do Tiago Merces sobre o arranjo com capacitor e resistor. Eu não preciso de muita precisão, então, creio que isso não seja um problema.

Zé Roberto

Bom dia,

Qual resolução pretende usar? 

Qual a precisão?

Qual a taxa de amostragem?

Qual a faixa de tensão? 

https://randomnerdtutorials.com/esp32-adc-analog-read-arduino-ide/

ESP32 ADC is Non-linear!!

Olá Murta, bom dia!

Pretendo usar a resolução de 10 bits para não ter que mexer no software que recebe os dados. As demais configurações do ESP vou deixar o padrão. A precisão esperada é de ~5%. Os sensores vão fornecer um range de 0 a 5V e neste caso eu vou usar um divisor para que o ESP receba de 0V a 3V3. Como a precisão não é tão importante, penso que o divisor de tensão deve ser suficiente.
Eu já fiz este teste com potenciômetro e percebi que a linearidade é sofrível, mas como eu não preciso de tanta precisão, penso que não será problema.

Obrigado pela atenção.

Zé Roberto.  

Recomendo a leitura>

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-ref...

Limitações do ADC

Observação

  • Alguns dos pinos ADC2 são usados ​​como pinos de amarração (GPIO 0, 2, 15), portanto, não podem ser usados ​​livremente. É o caso dos seguintes Kits de Desenvolvimento oficiais:

  • ESP32 DevKitC: GPIO 0 não pode ser usado devido a circuitos externos de programação automática.

  • ESP-WROVER-KIT: GPIO 0, 2, 4 e 15 não podem ser usados ​​devido a conexões externas para finalidades diferentes.

  • Como o módulo ADC2 também é usado pelo Wi-Fi, apenas um deles pode obter a preempção ao usar em conjunto, o que significa que adc2_get_raw()pode ser bloqueado até que o Wi-Fi pare e vice-versa.

Calibração do ADC

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc.html#adc-calibration

A API esp_adc_cal/include/esp_adc_cal.h fornece funções para corrigir diferenças nas tensões medidas causadas pela variação das tensões de referência ADC (Vref) entre os chips. Por projeto, a tensão de referência do ADC é de 1100 mV, no entanto, a tensão de referência verdadeira pode variar de 1000 mV a 1200 mV entre diferentes ESP32s.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço