Pages: [1] 2   Go Down
Author Topic: Driver de led et sortie PWM  (Read 2722 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 57
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: April 23, 2012, 09:41:07 am by silverbeach » Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Jr. Member
**
Karma: 0
Posts: 57
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Faraday Member
**
Karma: 19
Posts: 4152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

Offline Offline
Jr. Member
**
Karma: 0
Posts: 57
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

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

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 :
Quote
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 smiley-wink)
Quote
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+
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

- Analog Dimming / Vref = Pin 2 : ) laisser en l'air (et non pas a connecter à 5V n'en déplaise à Maître Skywodd smiley-wink)
Quote
Analogue Dimming Control   (leave open if not used - do not tie to +Vin)
Nobody is perfect smiley-mr-green

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

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Jr. Member
**
Karma: 0
Posts: 57
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Jr. Member
**
Karma: 0
Posts: 57
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Code:
#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?
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Jr. Member
**
Karma: 0
Posts: 57
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Jr. Member
**
Karma: 0
Posts: 57
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: April 24, 2012, 10:26:12 am by silverbeach » Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Pages: [1] 2   Go Up
Jump to: