Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Changed: | ||||||||
< < | Conversion Analogique - Digitale (ADC) et Digitale - Analogique (DAC) | |||||||
> > | Conversion Analogique - Numérique et Numérique - Analogique | |||||||
Introduction | ||||||||
Changed: | ||||||||
< < | L'ESP32 possède deux convertisseurs analogique à digitale 16 bits du type SAR (Successive Approximation Register) et deux convertisseurs Digitale à Analogique de 8 bits. Cherchant des pilotes dans le manuel Micropython je trouve seulement la description de l'ADC.![]() | |||||||
> > | L'ESP32 possède deux convertisseurs analogique - numérique (Analog to Digital converter, ADC) 16 bits du type SAR (Successive Approximation Register) et deux convertisseurs numérique - analogique (Digital to Analog Converter, DAC) de 8 bits. Cherchant des pilotes dans le manuel Micropython je trouve seulement la description de l'ADC.![]() | |||||||
L'ADCADC2 est utilisé pour le WiFi et pour cette raison n'est pas accessible à nous. L'ADC 1 par contre possède une entrée multiplexée et huit canaux sont utilisables (sur les pins 32-39). L'ADC travaille dans un intervalle de 0..1V mais ils existent des atténuateurs pour étendre cette gamme. Une atténuation de 11 dB résulte dans une gamme approximative 0..3.6V. |
Line: 1 to 1 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Conversion Analogique - Digitale (ADC) et Digitale - Analogique (DAC)Introduction | |||||||||||||||||||||||
Line: 10 to 10 | |||||||||||||||||||||||
Le DACLes DAC sont accessibles sur les pins 25 et 26. Puisqu’il n'y a pas de descriptions dans le manuel MicroPython, voila un exemple d'accès au DAC : | |||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||
< < | |||||||||||||||||||||||
rom machine import Pin,DAC from time import sleep_ms dac = DAC(Pin(26)) print("Running a triangular wave form with a frequency of ~ 1 Hz on pin 26") while True: for i in range(256): dac.write(i) sleep_ms(2) for i in range(256): dac.write(256-i-1) sleep_ms(2) Ceci produira une onde triangulaire lente, qu'on peut observer avec un multimètre. Vérification de la linéarité | |||||||||||||||||||||||
Changed: | |||||||||||||||||||||||
< < | Si on connecte le DAC avec l'entrée d'un ADC et on monte la valeur envoyée au DAC linéairement de zéro au maximum de 255 on s'attend à une courbe de valeurs lus de l'ADC parfaitement linéaire. Ceci est vrai si aussi bien le DAC que L'ADC sont parfaitement linéaire. | ||||||||||||||||||||||
> > | Si on connecte le DAC avec l'entrée d'un ADC et on monte la valeur envoyée au DAC linéairement de zéro au maximum de 255 on s'attend à une courbe de valeurs lus de l'ADC parfaitement linéaire. Ceci est vrai si aussi bien le DAC que L'ADC sont linéaire.
Vérification de linéarité avec un ADC ADS1115 externeL'ADS1115 est un ADC haute précision de 16 bit du type Signa/Delta avec une interface I2C. On peut facilement le connecté sur les pins I2C SCL et SDA de la carte CPU. Les connexions pour la CPU WeMos D1 mini sont spécifie dans le tableau ci-dessous:
![]() ![]() Correction de la non-linéarité par softwarePuisque nous savons maintenant que le DAC est bien linéaire et que c'est l'ADC qui introduit la non-linéarité nous pouvons utiliser notre première mesure DAC vs ADC comme courbe de calibration. Si nous pouvons calculer la valeur DAC à partir d'une valeur ADC nous pouvons aussi corriger la non-linéarité. Pour accomplir ceci nous devons d'abord invertir (replacer les valeurs x par les valeurs y et vice vers) la fonction adc = y = f(x) ou x est la valeur du DAC. Ceci est la fonction du premier graphe (noir, partiellement couvert par le graphe rouge). En suite, nous pouvons calculer une approximation polynomiale à la fonction invertie (graphe rouge). Le polynôme du grade 5 est défini comme suit :![]() ![]() ![]() | ||||||||||||||||||||||
-- ![]() Comments | |||||||||||||||||||||||
Added: | |||||||||||||||||||||||
> > |
|
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Added: | ||||||||
> > |
Conversion Analogique - Digitale (ADC) et Digitale - Analogique (DAC)IntroductionL'ESP32 possède deux convertisseurs analogique à digitale 16 bits du type SAR (Successive Approximation Register) et deux convertisseurs Digitale à Analogique de 8 bits. Cherchant des pilotes dans le manuel Micropython je trouve seulement la description de l'ADC.![]() L'ADCADC2 est utilisé pour le WiFi et pour cette raison n'est pas accessible à nous. L'ADC 1 par contre possède une entrée multiplexée et huit canaux sont utilisables (sur les pins 32-39). L'ADC travaille dans un intervalle de 0..1V mais ils existent des atténuateurs pour étendre cette gamme. Une atténuation de 11 dB résulte dans une gamme approximative 0..3.6V.Le DACLes DAC sont accessibles sur les pins 25 et 26. Puisqu’il n'y a pas de descriptions dans le manuel MicroPython, voila un exemple d'accès au DAC : rom machine import Pin,DACfrom time import sleep_ms dac = DAC(Pin(26)) print("Running a triangular wave form with a frequency of ~ 1 Hz on pin 26") while True: for i in range(256): dac.write(i) sleep_ms(2) for i in range(256): dac.write(256-i-1) sleep_ms(2) Ceci produira une onde triangulaire lente, qu'on peut observer avec un multimètre. Vérification de la linéaritéSi on connecte le DAC avec l'entrée d'un ADC et on monte la valeur envoyée au DAC linéairement de zéro au maximum de 255 on s'attend à une courbe de valeurs lus de l'ADC parfaitement linéaire. Ceci est vrai si aussi bien le DAC que L'ADC sont parfaitement linéaire. --![]() Comments |