Convertisseur Tension/Courant

Bonjour

Dans le cadre de mon projet je cherche à partir d'un tension de 0 à 5V (plus exactement dans mon cas 0,88V à 4,4V) à générer un courant de 04-20mA.

Sur le schéma ci-dessous lorsque je l'alimente directement depuis une alimentation stabilisé tout fonctionne bien. Toutefois lorsque l'alimentation provient de la sortie PWM de l'Attiny je n'ai aucun courant qui circule alors que la tension est bien présente.

Si quelqu'un peut aider, je le remercie par avance.

Votre post n’est pas un tuto… je l’ai déplacé

Un PWM est une oscillation rapide qui alterne entre 0 et 5V, ce n’est pas une tension analogique, il vous faudrait un DAC pour cela

Bonsoir boby15000

En faisant la recherche arduino pwm to 4-20ma, il est ressorti le circuit A2127.

Cordialement
jpbbricole

Oui mais je crois que la question est :

  1. Avec 0,88V je veux un courant égal à 4 mA=
    Avec 4,4V je veux un courant égal à 20 mA =

  2. Si je crée une alimentation variable entre 0,88 v et 4,4V en utilisant la PWM d'un atminy cela ne marche pas.
    Si j'utilise une alimentation de laboratoire, cela fonctionne.

Avez-vous une explication ?

Disons qu'une alimentation de laboratoire délivre une tension sous une impédance quasiment nulle.
Ce qui signifie que la tension "utile" est effectivement constante quel que soit le courant débité.

Une sortie d'un microcontrôleur, PWM ou pas, se fait sur une paire de FET complémentaire.
Je n'ai pas regarder la datasheet de l'attiny (déjà lequel ?) je sais que sur celle de l'atmega328p (même technologie avr) l'impédance de sortie est égale au Rdson des transistors de sortie. Les courbes montrent que le Rdson est d'environ 30 ohms, si en plus, tu as lissé avec un filtre RC l'impédance équivalente sera plus forte.

Est-ce que cette valeur intervient dans ton schéma ?
Si oui l'as-tu prise en compte dans les calculs des résistances ?

Bonjour

La conversion tension-courant est réaliés par un AOP qui reçoit la tension à convertir SA_UI, (tension continue stable)

Problème : la sortie PA6 émet sur SA_UI un signal périodique rectangulaire et non une tension continue.
En absence du lissage évoqué par @68tjs le convertisseur n'est pas en état de fonctionner correctement avec ce qu'il reçoit actuellement du Tiny84

PS : ne pas se fier au terme 'Analog' dans AnalogWrite() !!

Je vous remercie pour vos explications. Je comprends d'où vient le problème.

Maintenant il faut que je cherche comme filtré (lissé) cette sortie PWM.

En vous remerciant.

Le plus simple avec un filtre RC
R = résistance série
C = condensateur de filtrage

Devant moi se présentent deux possibilés :

  1. te dire : ne cherche pas à comprendre, tu mets R= 1k et C = 1µF et si ce n'est pas suffisant tu mets 100 µF.
    Désolé de ne pas donner une recette de cuisine, je n'aime pas.

  2. Donner des indications sur le filtrage et la PWM.
    J'aime mieux maix cela va être plus long

A) La PWM est un signal périodique de fréquence de récurrence Frecu et rapport cyclique variable (temps du 0 et temps du 1 réglable).

B) Tout signal périodique peut être décomposé en une série de signaux sinusoïdaux.
Dans le cas de la PWM le premier signal sinusoïdal (fondamental) sera à la fréquence Frecu
Le deuxieme (harmonique 2) à la fréquence 2*Frecu puis 3*Frecu (harmonique 3), etc..

On montre (Série de Fourrier) que l'amplitude des signaux diminue en fonction du rang de l'harmonique.
Ce qui fait que mathématiquement la suite est infinie, mais que physiquement, on peut s'arrêter au rang 6 ou 8.


courbe 1 = fondamental seul
courbe 2 = fondamental + H2
courbe 3 = fondamental + H2 + H3
courbe 4 = fondamental + H2 +H3 + H4

C) Ce filtre possède une pulsation de coupure définie par la formule ωo= 1/RC
Par ailleurs : ωo = 2πFo

Avec ce filtre si on applique un signal de fréquence F0, son amplitude en sortie sera divisée par 2.
Puis par 4 à 2*Fo, 8 à 4*Fo, etc.
image

Ce qui veut dire que pour filtrer une PWM avec une fréquence de récurrence de 10 kHz il faut un filtre dont le fo soit plus faible sinon la fréquence fondamentale ne sera divisée que par 2.
On peut dire que pour filtrer 10 kHz, il faut un filtre dont la fréquence de coupure est 1 kHz.

D) Et c'est maintenant qu'intervient le réglage des microcontrôleurs "à la sauce arduino".
La sauce arduino est faite pour avoir le moins de soucis possible et la fréquence de récurrence n'est que de 500 Hz alors que le micro peut aller jusqu'à 64 kHz.

Tu as un choix à faire :

  • Soit, tu gardes le réglage arduino, le Fo du filtre sera 50 Hz, il faudra des fortes valeurs de résistances ou de condensateurs puisque c'est le produit RC qui compte.
  • Soit tu veux des composants avec des valeurs plus faibles. Il faudra mettre les mains dans la datasheet du micro (à télécharger sur le site de Microchip) pour modifier les réglages et passer à 64 kHz.

Pour ce faire, on modifie les diviseurs d'un timer, attention de ne pas toucher au timer qui est utilisé par delay() / micro().

Emplacement du filtre:
A priori, je mettrai le filtre sur l'entrée de l'amplificateur de tension.
J'éviterai des trop fortes valeurs de résistances (<= 10k)

<fin du mode théorique => entrée dans le monde réel :heart_eyes:>

Je commencerai par essayer avec les résistances et les condensateurs que j'ai dans le fond du tiroir :slight_smile:.

Mes propos ne sont pas contradictoires :smiley: :

  • Inutile de se prendre la tête en ergotant sur le troisième chiffre après la virgule, on finit souvent par la bidouille.
  • Important : On ne peut bidouiller efficacement que si on connait un minimum de théorie pour comprendre ce que l'on fait.

Un grand merci pour tes explications.
Je vais bosser ma théorie sur le filtrage et appliquer tes recommandations.

En te remerciant.