Go Down

Topic: Conversion PWM en analogique [Résolu] (Read 3 times) previous topic - next topic

skywodd

Bonjour,

Tu travaille en PWM "arduino" ou en PWM bas niveau ?
Si tu travaille en PWM bas niveau utilise le mode "Fast PWM" et un circuit 10K + 10nF, c'est ce que j'utilise et ça marche plutôt bien :smiley-mr-green:
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

ludobabs

Bonjour,

Je fais mes tests avec le PWM Arduino et l'instruction analogWrite(pwmPin, 0 - 255). Je verrai le Fast PWM plus tard  :smiley-eek-blue:

Voiçi ce que j'ai compris :

freq. PWM Arduino = 490 hZ donc Période = 1/f => P = 2.10-3 sec.

Le produit RC doit être beaucoup plus grand que la période du PWM
R doit être inférieure à 10k

La nouvelle question que je me pose est : Quelles sont les valeurs les plus adaptées à la situation ? Existe-t-il un rapport à respecter entre R et C ?

Je vous remercie

68tjs

#7
Dec 29, 2012, 06:50 pm Last Edit: Dec 29, 2012, 10:58 pm by 68tjs Reason: 1
Derrière ce circuit RC il va y avoir une utilisation. Quelle est la valeur de résistance qui va venir en parallèle sur le condensateur ?

Cela conditionnera la valeur de la résistance série du RC. A ce sujet les 10k max c'est si tu veux pouvoir faire une mesure avec une entrée analogique de l'atmega. Si tu n'en a pas l'intention tu peux monter à des valeurs supérieures, mais il va vite y avoir une limite.

Cette résistance série du RC que je vais appeler "Rs" va former un pont diviseur avec la résistance de charge (Rc).
Donc il faut que Rs soit faible devant Rc.
Oui mais "faible" cela veut dire quoi ?
C'est là toute la difficulté puisque cela dépend de l'environnement que tu va mettre autour.
En général on essaye de prendre Rs <= Rc/10.

Autre point :T= RsC est beaucoup plus grand que la période de la PWM, cela a pour conséquence qu'il faudra attendre plusieurs périodes de PWM pour que le RC se stabilise, autant le savoir.

Sinon il y a la solution convertisseur numérique/analogique à raz les pâquerettes avec un registre à décalage et un réseau R/2R qui donne une résolution de 8 bits par registre à décalage et un résultat plus rapide mais qui ne permet pas excursionner jusqu'à Vcc et 16 résistances à cabler.
http://hackaday.com/2011/02/17/your-first-digital-to-analog-converter-build/
http://www.ikalogic.com/8-bit-digital-to-analog-converter-dac/
A noter l'amplificateur opérationnel  LM358 monté en suiveur pour bénéficier d'une résistance équivalente très faible (nulle en théorie, quelques ohms en pratique) qui peut aussi s'appliquer au réseau RC.


Edit :
A propos de la résistance de la charge j'ai oublié de préciser que si la résistance série du RC n'est pas négligeable devant Rcharge, en plus du pont diviseur qui se forme, cela diminue aussi la constante de temps puisque le calcul montre que les résistances Rs et Rcharge interviennent "comme si" elles étaient en parallèle.
Exemple Rs = 10kohms, si Rcharge = 10 kohms la tension disponible en sortie du filtre sera divisée par 2 et la constante de temps sera elle aussi divisée par 2.
Tous les exemples proposés sur le net sous-entendent que la charge est infinie, c'est recevable si la charge est une entrée de porte CMOS mais ce n'est plus le cas si la charge est un transistor bipolaire câblé en émetteur commun avec l'émetteur directement à la masse (résistance équivalente environ 1kohms).
D'où l'ampli op monté en suiveur de tension que l'on voit fréquement.

bouault

Regarde ce lien :
http://www.jlectronique.org/PWM.htm
C'est plutôt bien expliqué et en français.

ludobabs

Quote
dans un montage de ce type
Code:
PWM -------- R1 ( 3.8 K ) ------------ A0
                                          |
                                  C1 ( 33 µF )
                                          |
                                       Gnd

les couples (2,7k + 47µF)  et (5,7k + 22µF) produiront le même signal en sortie = envoyé sur A0, entrée analogique d'un microcontrolleur Arduino.

la forme du signal ne dépend que du produit R.C, pas du rapport R/C tant que le courant allant dans A0 est infime (négligeable)


Merci à tous de vos éclaircissements ...

Go Up