Bonjour,
plateforme
carte ESP326-E V1.0 de chez DF robot
IDE Arduino sur linux zorin
cablage voir fichier FRITZING
code voir test_potentiometre.ino
metrix pour les mesures
commentaires :
1 : l'alimentation de sortie en 3.3V est mesuré à 3.1V
2 : potentiomètre réglé sur 2.59V stable
3 : atténuation sur ADC_11db (pour alimentation 3.3V)
4 : affichage tension sur moniteur de 2.797V à 2.822V
Question, il est possible de faire mieux ou ce résultat correspond à ce qui peut être attendu ?
cdlt
Bonjour et merci
je vais faire l'essai en 0, 2.5 ou 6dB et je reviens avec les résultats
s'avez-vous si le site à des difficultés. L'uploading chez moi ne fonctionne pas
cdlt
L'étude de son code montrerait quel type de traitement est effectué sur la valeur brute
-compensation du décalage de Verf par rapport à la valeur nominale ? (utilisation des donées de calibration 'usine' décrites dans le lien donné ci dessus par fdufnews)
-compensation de non linéarité en bonus ? https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-adc.c
Non, je n'utilise pas la fonction "void analogReadResolution(uint8_t bits);" parce que l'alimentation en sortie entre les pins 3.3V et ground sur ESP32-E que j'utilise n'est pas 3.3 V mais de 3.1V.
En utilisant la fonction"mapf" je peux corriger ce point, en paramétrant dans la fonction une étendue d'échelle de "0, 3.1" au lieu de 3.3.
la conversion analogique numérique des ESP32 n'utilisant pas la tension d'alimentation comme référence je ne vois pas l'intérêt de cette façon de procéder .
La tension de référence est 1,1V +-10% , en amont du convertisseur A/N un atténuateur permet de proposer plusieurs plages de mesure
Bonjour
Pour une mesure metrix de 2.5V en entrée le l' ADC et un atténuation de 6 db le moniteur serie 3.100V 4095 pts
Pour une mesure metrix de 2.2V en entrée le l' ADC et un atténuation de 2_5 db le moniteur serie 3.100V 4095 pts
ces atténuations ne me semblent pas adaptées
Cdlt
La méthode que tu appliques en espérant tenir compte de la valeur effective de la tension d'alimentation est en cause, elle n'est pas du tout adaptée aux ESP32.
Ce qui est valable pour un ATMega328 ne l'est pas pour un ESP32 qui n'utilise jamais la tension d'alimentation comme tension de référence
testes analogReadMillivolts () tu devrais avoir des résultats moins décevants.
HTIT-WSL_V3_Schematic_Diagram.pdf (174,4 Ko).
Bonjour
Peux-tu m'indiquer ou je peux voir le principe de câblage de l'ADC, entre la broche d'entrée analogique jusqu'au pin sur le µp. je ne vois pas de tension de 1.1V sur ces schémas ?
peux-tu m'expliquer cette phrase "Pour l'ESP32, la résolution est comprise entre 9 et 12 et cela modifiera la résolution matérielle de l'ADC. Sinon, la valeur sera décalée."
Peux-tu m'indiquer sur le schéma à quel moment est faite l'atténuation. Et comment elle agit physiquement.
Le schéma d'une carte utilisant un ESP32 ne peut montrer ce qui est interne au microcontrolleur.
L'atténuation , la référence 1,1V et le convertisseur A/N sont à l'intérieur de l'ESP32-S3FN8 (microcontrolleur)
D'autant plus que la fonction utilise les données de calibration enregistrées en fin de fabrication dans une zone de mémoire non effaçable (eFuses) afin de compenser la forte dispersion initiale de Vref (1,1V +/-10% )
Quand je teste des ESP32 de 2017 la fonction analogReadVoltsMLillivolts() plante car elle ne trouve les données de calibration et ne peut en déduire la valeur effective de Vref : adc_cali: adc_cali_create_scheme_line_fitting(186): default vref didn't set
Bonjour, déjà merci pour le temps que tu passes à nous expliquer les choses.
Hormis le test de la fonction analogReadVoltsMLillivolts() et le fait que le µp n'est pas visible sur la carte, je pense qu'il est sous le capotage. Comment connaitre la date à 2018 ?
Je vais essayer la fonction analogReadVoltsMLillivolts() et je communiquerais les résultats.
La valeur du point est de 1.1 V/4096 pts et non 3.3 V/4096 pts, avec analogReadVoltsMLillivolt, on s'en fout, mais c'est pour comprendre.
Faute d'ESP32 d'après 2017 , voici ce que donne la fonction analogReadMillivolts() avec un ESP32-S2 (carte Lolin S2 MIni)
mV multimetre
11dB
6dB
2,5dB
0dB
100
107
109
108
110
250
258
259
260
260
500
509
508
512
513
750
762
763
766
767
1000
1015
1016
1020
1250
1262
1271
1500
1520
1750
1773
2000
2024
2250
2277
2500
2536
2750
à gauche la valeur lue sur un multimètre Mastech MAS-345 non élatonné
à droite les valeurs fournies par AnalogReadMilliVolts() pour les diverses valeurs d'atténuation
Résolution par défaut : 11 bits
ADC VRef calibration: 1149mV
ADC readings stored in efuse BLK3:
ADC1 Low reading (150mV): 306
ADC1 High reading (850mV): 3153
ADC2 Low reading (150mV): 389
ADC2 High reading (850mV): 3206
La très mauvaise conversion A/N de la première version des ESP32 a incité Espressif à fournir par la suite pour, chaque exemplaire de puce (probablement chaque wafer) des données correctives en ROM
Si nous utilisons la fonction analogReadMilliVolts, fonction qui renvoie une valeur analogique en millivolts (calibrée). (documentation)
cela signifie-t-il que nous entrons une tension sur l'entrée analogique qui est ensuite convertie en points puis reconvertie en millivolt ?
Cdlt