Go Down

Topic: Programmer un décalage de tension (Read 221 times) previous topic - next topic

albanmgd

Bonjour à tous et à toutes,
En priant pour avoir bien référencé ce topic, ne pas avoir fait de doublon, et bien édité le titre, je vous expose ma question:
La tension de seuil de ma LED est de 1.85V, et je souhaiterais faire varier l'intensité lumineuse de celle-ci grâce au port PWM de ma carte Arduino Méga. Cependant, dans mon programme de base, le 0 du PWM me donne donc 0V...
Quelqu'un saurait-il comment faire pour qu'un 0 en PWM me donne 1.8V en sortie de carte ?
Merci d'avance à ceux qui prendront le temps de me lire, et/ou de m'expliquer.
Ci-joint mon programme .

dfgh

hello
regarde avec la fonction map()

Frequences_1[freq_amp] = map(analogRead(DC_One),0,5,378,1023);  //1.85/(5/1023)

_pepe_

#2
May 19, 2018, 05:57 pm Last Edit: May 19, 2018, 06:20 pm by _pepe_
Bonjour

Plusieurs remarques :

• Une sortie PWM ne fournit pas une tension, mais un rapport cyclique. Sur un Arduino Mega, le signal produit ne présente que les deux niveaux 0V et 5V avec des durées réglables, mais pas de tension intermédiaire.

• Une led ne s'alimente pas avec une tension, mais avec un courant. Le courant qui la traverse produit une luminosité qui lui est (au moins en première approximation) proportionnelle, et fait apparaître aux bornes du composant une tension qui dépend notamment du modèle et de la température de fonctionnement, et qui varie d'un composant à l'autre pour un modèle donné.

La tension de seuil n'est qu'une vue de l'esprit, et n'est pas connue a priori de façon précise.

Voici par exemple la caractéristique tension-courant à 25°C d'une led présentant une tension nominale de 1,8V@20mA (il s'agit juste d'une caractéristique « typique » susceptible de varier d'un composant à l'autre, jusqu'à plusieurs dizaines de % sur la tension) :


_pepe_

#3
May 19, 2018, 06:13 pm Last Edit: May 19, 2018, 06:22 pm by _pepe_
Si tu alimentes ta led par la sortie PWM via une résistance de limitation, alors sa luminosité moyenne variera pratiquement proportionnellement à la valeur PWM fixée par le programme.

La tension instantanée aux bornes de la led sera soit 0V, soit sa tension VF correspondant au courant réglé par la résistance. La connaissance de la valeur exacte de VF ou de celle de la tension moyenne résultante ne présente aucun intérêt.

68tjs

Comme tu l'a expliqué _pepe_ une diode se commande en courant, commander une diode en tension, quelle qu'elle soit, est impossible.

Il existe des alimentation en tension et d'autres en courant. Ces dernières sont assez rares et complexes nous jetterons un voile dessus..
On transforme une vraie source de tension en "simili" source de courant en ajoutant une résistance en série avec la diode.
La résistance se calcule avec la loi d'Ohm :
Si Vd est la tension aux bornes de la diode nous avons : Valim = Vd + R*I

Explique ce que tu cherches au final.
- Veut-tu éteindre totalement la diode et l'éclairer totalement
- Veut-tu partir d'une luminosité faible et l'augmenter en jouant sur la PWM ?

albanmgd

Bonjour à tous,
Tout d'abord, pardonnez moi pour le temps de réponse, et merci d'avoir éclairé certaines zones d'ombres.
Dans ce projet, j'ai du ajouter une résistance de puissance (de 6,8 Ohms) avec la LED, et l'intensité correspondant à ma tension de seuil est de 7mA. Cependant, le courant de sortie de la carte Méga est de 40 mA, et mon intensité max est de 300mA, j'ai donc du rajouter un ULN 2003 pour atteindre ce courant.
Mon objectif initial étant de partir d'une luminosité faible pour atteindre une luminosité forte, sans que la LED ne s'éteigne.
Quant à la tension de sortie de la PWM, il me semblait avoir vu en cours que V=Vmax x Rc, bien que je ne vous cache pas ma faible expérience dans ce domaine ...
Une nouvelle fois merci

al1fch

#6
May 20, 2018, 02:23 pm Last Edit: May 20, 2018, 02:34 pm by al1fch
Bonjour
Quote
Quant à la tension de sortie de la PWM, il me semblait avoir vu en cours que V=Vmax x Rc, bien que je ne vous cache pas ma faible expérience dans ce domaine ...
cette relation donne la valeur moyenne de la tension 'périodique rectangulaire'
Elle s'écrit parfois sous les formes
<V>= Vmax*RapportCyclique
Vmoy = Vmax*RapportCyclique

aligote

#7
May 20, 2018, 05:36 pm Last Edit: May 20, 2018, 05:42 pm by aligote
.....................
Quant à la tension de sortie de la PWM, il me semblait avoir vu en cours que V=Vmax x Rc,
..............
Bonjour,

Je pense que cette formule ne peut pas être exacte car elle n'est pas homogène.

Vmoy = Vmax*RapportCyclique

Celle ci est exacte, le rapport cyclique est sans dimension puisque c'est un quotient de deux durées.

Serge .D

Edit : Gloub! mille excuses Rc n'est pas une résistance mais le rapport cyclique. Tout va bien.

_pepe_

#8
May 20, 2018, 05:58 pm Last Edit: May 20, 2018, 06:01 pm by _pepe_
Le signal PWM fera juste clignoter la led à une fréquence très élevée (par défaut 490Hz ou 977Hz selon la sortie choisie) de sorte que, du fait de la persistance rétinienne, un observateur humain percevra une luminosité moyenne d'autant plus réduite que le rapport cyclique sera faible.

Ainsi, avec un rapport cyclique de 1%, l'observateur aura l'impression de voir la led allumée à 1% de sa luminosité maximale. Mais en réalité la led sera allumée à 100% de sa puissance durant 1% du temps et sera éteinte durant les 99% restants.


Concernant l'utilisation de l'ULN2003, il est nécessaire de tenir compte de la chute de tension VCE(sat) aux bornes de son transistor Darlington de sortie lorsque celui-ci est saturé. Cette tension est typiquement de l'ordre de 1,2V, mais pourrait éventuellement être plus faible ou plus élevée.

Si la tension d'alimentation est déjà faible (par exemple 5V) alors l'utilisation de ce composant risque de ne pas laisser une marge de tension suffisante aux bornes de la résistance de limitation de la led pour réaliser un contrôle correct du courant. Dans ce cas de figure, il vaudrait mieux utiliser un transistor de puissance MOSFET « Logic Level » (spécifié pour VGS(ON)≤4,5V) pour piloter la led et sa résistance. Par exemple, un FDN361BN devrait convenir.

68tjs

#9
May 20, 2018, 06:00 pm Last Edit: May 20, 2018, 06:03 pm by 68tjs
C'est bien ce que j'avais cru comprendre : tu veux varier entre un éclairage minimal et un éclairage maximal.

Je suppose (merci à la boule de cristal de m'aider à trouver les infos qui manquent) que l'alim pour la Del est de 5V.
Voici une proposition de schéma qui permet de régler séparément  l'éclairement minimal et l'éclairement variable.



Courant minimal :
La PWM est mise à 0 --> signal permanent de 0V. Le transistor de l'ULN est bloqué et la seule résistance qui fourni du courant est R1.
La Del est une diode de puissance (Imax = 300 mA) la tension Vd n'est pas une constante parfaite.
Si au courant max le diode fait 1,85 V,  à 7 mA elle fera moins, je ferai le calcul avec 1,6 V.
R1 = (5V -1,6V) /7mA ~ 470 ohms.

Au courant maximal de 300 mA la PWM est mise à 1 --> signal permanent de 5V. Pour simplifier les calcul je vais négliger les 7 mA ce qui me permet d'ignorer la résistance R1.
Puisque tu as un ULN2003 autant essayer de l'utiliser.
L'ULN2003 à une tension de seuil (Vcesat) que je vais prendre à 0,5 V (vérifier sur la datasheet la valeur du Vcesat pour un courant de 300 mA)).
R2 = (5V - 1,85V - 0,5V ) /0,3 ~ 9 ohms.

Bien sûr les calculs sont donnés à titre d'exemple et sont à contrôler avec les vraies valeurs des datasheet et sur le montage même car  le Vd d'une diode est une simplification, la vraie courbe est une exponentielle imbuvable.

Mise en garde : dans la série des ULN2XXX il existe des modèles avec résistance de base incorporée ou pas. Je te laisse le soin de le vérifier sur la datasheet.
Si le modèle 2003 n'en a pas il faudra insérer une résistance entre la sortie du micro et l'entrée de l'ULN2003.


Quote
Cependant, le courant de sortie de la carte Méga est de 40 mA,
Faux, completement faux.
40mA c'est la valeur maximale à ne pas dépasser PENDANT UN TEMPS TRÈS COURT.
Ce n'est absolument pas une valeur en service permanent.
En réalité la valeur en service permanent c'est quelques mA.

Premier point : ne rien croire de ce qui est écrit --> lire la datasheet du microcontroleur sur le site de son fabricant, arduino est un très mauvais endroit pour trouver cette information.

Que Atmel dit dans la datasheet ?
Attention toutes ces limites doivent être respectées simultanément :
- I max total sur le Vee Ivee < 200mA
- I max total sur le Gnd Ignd < 200 mA
- I max sur un port (de 1 à 8 I/O --> voir la datasheet pour la répartition) I< 150 mA en mode source et I< 100 mA en mode sink.
- I par I/O Atmel ne garanti par sortie que jusqu'à 20 mA et encore avec 20 mA il y a une chute de tension de 0,5V dans le transistor de sortie.

On est très très loin des 40 mA que l'on voit écrit par erreur totale.

Go Up