Tags:
create new tag
view all tags

Le convertisseur Numérique Analogique

Introduction

Dans le manuel MicroPython le convertisseur numérique analogique (Digital to Analogue Converter: DAC) n'est pas décrit. Pourtant, l'ESP32 possède 2 DAC d'une résolution de 8 bits et il existe un pilote dans Micropython permettant de contrôler ces interfaces. Les DAC sont accessibles sur les pins GPIO 25 et 26.

Voilà un petit programme qui montre comment accéder à ce pilote : from 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)

Le programme génère une onde triangulaire lente, qui peut être observé avec un multimètre.

Exercice 1 :

Modifier le programme en dessus pour générer une onde rectangulaire de la même fréquence.

Exercice 2 :

Créer un générateur d'impulsion qui permet de produire un signal :

  • rectangulaire
  • triangulaire
  • dent de scie
  • sinusoïdal
Observer ces signaux à l'aide d'un oscilloscope. Les formes d'impulsion doivent être pré-calculé et sauvé dans un tableau. En traversant le tableau on peut générer le signal. Ceci assure que le temps entre chaque émission de niveau de signal reste indépendant du temps de calcul pour chaque point.

Voila ce qu'on doit observer avec l'scilloscope:

rectWaveform.png

triangular.png

sawtooth.png

sinewave.png

-- Uli Raich - 2021-11-16

Comments

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng rectWaveform.png r1 manage 36.9 K 2022-02-19 - 19:28 UliRaich  
PNGpng sawtooth.png r1 manage 38.5 K 2022-02-19 - 19:28 UliRaich  
PNGpng sinewave.png r1 manage 39.4 K 2022-02-19 - 19:28 UliRaich  
PNGpng triangular.png r1 manage 40.4 K 2022-02-19 - 19:28 UliRaich  
Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r3 - 2022-02-19 - UliRaich
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback