Difference: ExerciceDAC (1 vs. 3)

Revision 32022-02-19 - UliRaich

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Le convertisseur Numérique Analogique

Introduction

Line: 6 to 6
 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 :

Changed:
<
<
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)
>
>
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 :

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

Exercice 2 :

Changed:
<
<
Créer un générateur d'impulsion qui permet de produit un signal :
>
>
Créer un générateur d'impulsion qui permet de produire un signal :
 
  • rectangulaire
  • triangulaire
  • dent de scie
  • sinusoïdal
Changed:
<
<
Observer ces signaux à l'aide d'un oscilloscope.

Exercice 3 :

>
>
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

 
Changed:
<
<
Connecter la sortie du DAC sur l'entrée d'un canal du convertisseur analogique numérique (Analogue to Digital Converter). Lire l'ADC pour chaque valeur du DAC et tracer le résultat. L'ADC possède une résolution de 12 bits. Quelle courbe est-ce que vous attendez ? Qu'est-ce que vous mesurez ?
>
>
triangular.png

sawtooth.png

sinewave.png

  -- Uli Raich - 2021-11-16

Comments

<--/commentPlugin-->
\ No newline at end of file
Added:
>
>
META FILEATTACHMENT attachment="rectWaveform.png" attr="" comment="" date="1645298893" name="rectWaveform.png" path="rectWaveform.png" size="37766" user="UliRaich" version="1"
META FILEATTACHMENT attachment="sawtooth.png" attr="" comment="" date="1645298893" name="sawtooth.png" path="sawtooth.png" size="39378" user="UliRaich" version="1"
META FILEATTACHMENT attachment="sinewave.png" attr="" comment="" date="1645298893" name="sinewave.png" path="sinewave.png" size="40387" user="UliRaich" version="1"
META FILEATTACHMENT attachment="triangular.png" attr="" comment="" date="1645298893" name="triangular.png" path="triangular.png" size="41403" user="UliRaich" version="1"

Revision 22021-11-27 - UliRaich

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Le convertisseur Numérique Analogique

Introduction

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

Revision 12021-11-16 - UliRaich

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="WebHome"

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 produit un signal :

  • rectangulaire
  • triangulaire
  • dent de scie
  • sinusoïdal
Observer ces signaux à l'aide d'un oscilloscope.

Exercice 3 :

Connecter la sortie du DAC sur l'entrée d'un canal du convertisseur analogique numérique (Analogue to Digital Converter). Lire l'ADC pour chaque valeur du DAC et tracer le résultat. L'ADC possède une résolution de 12 bits. Quelle courbe est-ce que vous attendez ? Qu'est-ce que vous mesurez ?

-- Uli Raich - 2021-11-16

Comments

<--/commentPlugin-->
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback