Conversion Analogique - Digitale (ADC) et Digitale - Analogique (DAC)
Introduction
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. Dans le code source de MicroPython par contre je vois qu’aussi le pilote pour le DAC est disponible.
L'ADC
ADC2 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 DAC
Les 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,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é
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.
--
Uli Raich - 2021-07-04
Comments