Driver de led et sortie PWM

Bonjour,

J'ai acheté un driver RCD-24-0.70/W/X3 et 3 leds BXRA-C0361 J'aimerai réaliser un allumage et une extinction progressif et donc utiliser une sortie PWM de l'arduino

Voici mon câblage:

Je pensais que le mode de fonctionnement était : Avec la sortie PWM: Si sortie PWM = 0 => Led éteinte Si Sortie PWM = 5 => Led éclairée avec une intensité de 700mA.

Or, lorsque je branche l’alimentation des leds, elles s'éclairent directement et lorsque je fais varier la sortie PWM, elles restent allumée avec la même intensité.

De plus lorsque les fils "DIM" et "Vref" du driver ne sont pas raccordé, les leds reste allumée.

D'où peut venir le problème? Erreur de câblage, mauvais raisonnement...?

Merci

C’est normal que le GND soit relié à VIN et le +24V ) GND ?

Erreur de dessin je suppose puisque ca marche

Je ne sais pas a quoi sert Vref mais dans ton cas c’est plutot DIM qu’il faut utiliser pour controler l’intensité avec un PWM

Oups j'ai inversé le 24v et GND sur le schéma, je vais le modifier.

D'après le datasheet, le Vref est la même entrée que pour "PWM/ON/OFF". L'entrée DIM est pour "Analogue Dimming".

Tu penses que je dois raccorder la sortie PWM à l'entrée DIM?

Merci pour ta réponse.

silverbeach: Bonjour,

J'ai acheté un driver RCD-24-0.70/W/X3 et 3 leds BXRA-C0361 J'aimerai réaliser un allumage et une extinction progressif et donc utiliser une sortie PWM de l'arduino

Voici mon câblage:

Je pensais que le mode de fonctionnement était : Avec la sortie PWM: Si sortie PWM = 0 => Led éteinte Si Sortie PWM = 5 => Led éclairée avec une intensité de 700mA.

Or, lorsque je branche l’alimentation des leds, elles s'éclairent directement et lorsque je fais varier la sortie PWM, elles restent allumée avec la même intensité.

De plus lorsque les fils "DIM" et "Vref" du driver ne sont pas raccordé, les leds reste allumée.

D'où peut venir le problème? Erreur de câblage, mauvais raisonnement...?

Merci

peut etre voir du coté du PWM acccepté par ce driver ? http://www.recom-international.com/pdf/Lightline/RCD-24.pdf

Maximum PWM Frequency For ±1% Linear Operation 200Hz max. Frequency Limit 2000Hz max.

Je viens de voir que la fréquence de l'Arduino est de 490hz. Si c'est la bonne donnée.

Mais la variation ne se fait pas au niveau de la tension?

Bonjour,

Si j'en crois ce que j'ai compris du datasheet il faudra envoyer 5v dans Vref et brancher la sortie PWM à AnalogDim ?

Dans al datasheet je vois

Il y a 2 modes de dimming possible : 1) Digital = PWM 2) Analog

1) Dans le mode digital, la sortie PWM de l'Arduino devrait convenir sauf que comme signalé par Artouste la fréquence est donnée pou :

Maximum PWM Frequency For ±1% Linear Operation 200Hz max. Frequency Limit 2000Hz max.

Aucun danger donc à utiliser le PWM de l'Arduino telquel à 490 Hz excepté que la plage de réglage ne sera peut être pas très linéaire.

1a) Donc je dirais, essaye d'abord comme cela pour voir si ça te satisfait.

ATTENTION : sur la datasheet trouvée par Artouste le brochage n'est pas comme indiqué sur ton schéma : - Digital Dimming : Pin 3 sur la datasheet alors que tu as mis Vref sur la pin 3 ! - Analog Dimming / Vref = Pin 2 : ) laisser en l'air (et non pas a connecter à 5V n'en déplaise à Maître Skywodd ;))

Analogue Dimming Control (leave open if not used - do not tie to +Vin)

Une fois ceci testé, si tu n'est pas satisfait, quelles solutions pour récupérer un controle linéaire

1b) Solution pour un PWM plus bas en fréqeunce : utiliser la lib Servo qui doit tourner elle à 50Hz

2) Mode analogique Laisser l'entrée Digital Dimming (pin 3 d'après la datasheet) en l'air et utiliser l'entrée pin 2.

Sauf que si tu as acheté le modèle RCD-24-0.70/W/X3 et non pas le modèle RCD-24-0.70/W/VRef, ta pin 2 c'est Analog Dimming (0..+10V) et non pas Vref (0..5V).

Problème, l'Arduino ne possède pas un vrai convertisseur numérique/analogique. Donc il faut utiliser encore analogWrite() et la sortie PWM mais avec un filtre RC suivit d'un ampli OP monté en doubleur de tension (attention, il te faut un +12V pour alimenter l'ampliOP. Voir schéma dans ce topic : http://arduino.cc/forum/index.php/topic,102461.0.html (même problématique, sortir une tension 0..10V à partir d'un PWM).

Mais bon, je pense que la version 1a) devrait te satisfaire.

A+

barbudor: - Analog Dimming / Vref = Pin 2 : ) laisser en l'air (et non pas a connecter à 5V n'en déplaise à Maître Skywodd ;))

Analogue Dimming Control (leave open if not used - do not tie to +Vin)

Nobody is perfect :grin:

J'ai du lire en diagonale ... effectivement si c'est marqué de pas mettre 5v alors pas de 5v :grin: Du coup il te suffit de déplacer ton câble sur Vref vers Adim.

J'ai essayé en connectant la sortie PWM à l'entrée Dim mais aucun changement. Puis, j'ai essayé en connectant la sortie PWM à Vref et le 5V à l'Arduino à l'entrée Dim suite à un conseil sur un autre forum. Et ça fonctionne mais pas parfaitement: La luminosité varie mais lorsque la sortie PWM est à 0, la led éclaire encore.

Est-ce normal?

je viens de regarder avec la librairie Servo.

Si j’ai bien compris, pour faire varier la led, il faut faire varier la valeur du servo de 0 à 180 comme dans ce petit programme?

#include <Servo.h> // inclusion de la librairie Servo

Servo myservo; // déclaration d'une variable de type Servoi
int ValServo = 0;

void setup() 
{ 
  myservo.attach(9); // attache la variable Servo à la broche 9
  
} 

void loop() {
  if(ValServo == 180) ValServo = 0;
  myservo.write(ValServo);
  ValServo++;
}

Puis-je essayer ce petit programme sans danger?

Plutot utiliser la fonction writeMicroseconds( int pulse_us ) En précisant la longueur de l'impulsion en micro-seconds.

La fonction write() tout court ne génère que des impulsions entre 1.5 ms et 2.5 ms compatible avec les Servo. La fonction writeMicroseconds() permet de passer outre.

Avec analogWrite on utilise un rapport cyclique appliqué sur une fréquence de 490Hz Avec servo.writeMicroseconds() on spécifie la longueur de l'impulsion sur période de 20ms. Rapport cyclique à calculer soit même :)

ok. je vais chercher pour savoir comment calculer le rapport cyclique mais avec cette librairie, les led vont-elles s'éteindre lorsque la sortie sera égale à 0?

Car j'ai besoins d'éteindre les leds pendant plusieurs heures tout les jours.

C'est indépendant. SI les leds ne s'éteignent pas avec un bête digitalWrite( pin, LOW ); c'est un autre problème. La lib PWM et la lib Servo vont t'aider à changer le rapport cycle entre 0% (tout le temps à 0) et 100% (tout le temps à 1 (+5V)).

Le rapport cyclique c'est la durée entre l'impulsion haute et la période. Avec PWM : duty = duree_haute_ms / 2,04 (à 490 Hz la période est de 2,04 ms) Avec Servo : duty = duree_haute_us / 20000 (La période du Servo est de 20ms ou 20000µs)

Donc je vais d’abord régler le problème pour avoir la led éteinte. Ensuite je verrais avec la librairie servo.

Je viens de faire un test en connectant le 3,3V de l’Arduino au lieu du 5V et la led est très très légèrement éclairée (beaucoup moins qu’avec le 5V) mais ca veut dire qu’elle n’est pas complétement éteinte. De plus je ne sais pas si c’est bon pour le driver.

Avec ce driver, il n’y a pas moyen de couper complétement les leds?
Pourtant, d’après le datasheet, il parle de PWM ON OFF

silverbeach: Je viens de faire un test en connectant le 3,3V de l'Arduino au lieu du 5V et la led est très très légèrement éclairée (beaucoup moins qu'avec le 5V) mais ca veut dire qu'elle n'est pas complétement éteinte.

Sur quelle broche ? PWM Dimming ou Analog Dimming.

Sur Analog Dimming çà serait logique. D'après la datasheet, Analog Dimming attend une tension entre 0 et 10V. +3V3 ca représente 33% de la pleine échelle. Donc pas beaucoup.

Revérifie ton brochage par rapport à la datasheet dont Artouste a donné le lien. Les numéros de pins ne semblaient pas correspondre a ce que toi tu annonçait.

J'ai inversé les 2 fils et maintenant ca fonctionne :)

Je vais faire quelques test et voir si je vais utiliser la librairie servo ou pas

En tout cas un grand merci à tous

et si tu as 5 min,

tu nous met le schema modifié, ce serais tres sympa

a+++

pas de problème mais ce sera pour demain car je travaille cette nuit

Je viens de recevoir mon analyseur Logic Sniffer et question de regarder un peu quelque chose, je viens de jeter un coup d’oeil au PWM de l’Arduino

Je sort le même rapport sur les pins 3, 5, 6, 9 et 10
Et je trouve comme fréquence de base :

  • Pins 3, 9 et 10 : 487 Hz
  • Pins 5 et 6 : 1000 Hz

Etrange non ? En tout cas pas documenté.
Je suppose que cela vient du fait que les pins utilisent des timers différents.

barbudor: Et je trouve comme fréquence de base : - Pins 3, 9 et 10 : 487 Hz - Pins 5 et 6 : 1000 Hz

Etrange non ? En tout cas pas documenté. Je suppose que cela vient du fait que les pins utilisent des timers différents.

Pas documenté !? http://arduino.cc/playground/Main/TimerPWMCheatsheet http://arduino.cc/playground/Code/PwmFrequency et j'en passe ;)