DAC signifie Digital to Analog Converter (convertisseur numérique vers analogique), il permet
de convertir un nombre représenté en mémoire par des bits (par exemple de 0 à 1023) en une
tension (par exemple de 0 à 5V).
PWM-DAC
Une solution simple pour réaliser cela est d'utiliser un signal périodique qui passe
à travers un filtre passe-bas, produisant un signal "moyenné":
DAC Thermomètre
Une autre méthode est d'utiliser des résistances en série, permettant de représenter
toutes les valeurs possibles. La sortie peut ensuite être sélectionnée à l'aide d'un
multiplexeur. Cette solution a un encombrement important, car toutes les valeurs
correspondent à un point physique dans le circuit.
R2R DAC
Enfin, la méthode R2R permet de combiner des résistances pour produire une tension
directement à partir de la représentation binaire:
ADC
ADC est l'inverse de DAC, il permet de convertir une tension en un nombre représenté
numériquement dans le programme.
Le design des ADC est dual à celui des DAC, en comparant les tensions produites avec
l'entrée à échantillonner:
Par exemple, l'ADC "flash" (ci-dessus) est le dual du DAC thermomètre, contenant
toutes les valeurs possibles de tension.
Dans l'ATmega328P, l'ADC est basé sur des comparaisons successives à l'aide de valeurs
provenant d'un DAC interne: