Go Down

Topic: [RESOLU] WS2801 et ULN2003 pour DIODER IKEA (Read 3914 times) previous topic - next topic

Blizzard27

Aug 27, 2012, 03:09 pm Last Edit: Sep 03, 2012, 02:24 pm by Blizzard27 Reason: 1
Le problème a été résolu au fil de ce post, il était le suivant : comment relier un DIODER IKEA sur un WS2801 avec un ULN2003 pour fournir le courant nécessaire au DIODER
Merci a toi barbudor pour avoir trouvé la solution.

Voici le schéma :



Voici le schéma global de mon installation :


Vu en 3D de la carte :


Voilà le typon du circuit qui permet de commander les baguettes par groupe de deux avec les WS2801 ( 1 WS2801 pour 2 baguettes ).
Ne pas utiliser cette image pour imprimer le typon prendre le fichier pdf qui est en dessous.


Fichier pdf pour impression du typon (l'image est en double car je superpose deux feuilles transparentes pour l'insolation) : http://cjoint.com/12sp/BIdocWekA7h.htm

Liste des composants :
             
Résistances
---------
1x    R1                    270                                               
6x    R2-R7               1K                                               

Condensateurs
----------
1x    C1                   470uF                                             
1x    C4                    10uF                                             
2x    C5,C6               22pF                                             

Circuits intégrés
-------------------
1x    U1                  Support CI 28 broches pour l'ATM328                                           
1x    U2                  7805  (régulateur 5V)                                           
2x    U3,U4             WS2801           
2x    U5,U6             ULN2003                                           

Diodes
------
1x    D1                  1N4001 (peu être remplacée par un fil, elle sert a protéger contre les inversions de polarité de l'alimentation)                                           
1x    D2                  LED  (peu ne pas être mise, elle sert de témoin d'alimentation)                                             

Divers
-------------
1x    DIODER IKEA                                                   
1X    RECEPTEUR INFRAROUGE                                                               
1X    Quartz 16 MHz             

Pour la télécommande j'ai commandé cela sur Ebay a 3,39Euros port compris et j'ai récupéré le récepteur Infrarouge :                     
         

L'entrée Micro servira prochainement il faut que je m'occupe de cela plus tard

Vidéo du résultat, un DIODER IKEA qui réagit en même temps que ma guirlande RGB qui est derrière la télévision:
http://www.youtube.com/watch?v=w43-4k1IEDw

Je fini encore mon code car je suis également sur un projet d'applique murale avec des LED RGB 3W, mais le temps libre me manque un peu, je voudrais gérer les effets un peu sous forme de plugin comme cela la maintenance du code sera plus aisée et plus simple a partager.
Rien ne sert de chercher à tout savoir, mieux vaut savoir où tout chercher

Artouste



Le soucis c'est que sa marche avec l'arduino mais pas avec le WS2801 branché sur l'ULN2003. Je me doute bien qu'il y a une histoire de MOSFET du WS2801 qui se cache la dessous et une résistance a ajouter mais moi et l'électronique sa fait ....


rapide lecture du câblage (ça ce n'est pas un schéma)  :smiley-mr-green:
je suis étonné de la mise en l'air de la pin 9 des UL

Blizzard27

la pin9 de l'ULN2003 se connecte au +12V lorsque l'on désire commander des charges inductives ce qui n'est pas mon cas ici, maintenant cela ne coute rien de la relier au +12V
Rien ne sert de chercher à tout savoir, mieux vaut savoir où tout chercher

Blizzard27

Quote
ça ce n'est pas un schéma

Ce n'est pas un schéma électronique peu être mais c'est un schéma de principe  :smiley-mr-green:
Rien ne sert de chercher à tout savoir, mieux vaut savoir où tout chercher

68tjs

Non je suis d'accord avec Artouste : tu as fourni un schéma de câblage.

Un schéma de principe c'est la première étape d'un projet.
C'est un schéma avec des boîtes dites "noires"  qui représentent des fonctions générales, parce qu'a ce niveau d'abstraction on n'a pas encore décidé comment on réalisera les fonction.
Ces fonctions peuvent être des intégrateurs, sommateurs, compteurs, amplificateurs, etc..... ). On retrouve un équivalent en informatique.

Dans une deuxième étape on rempli les boîtes noires avec un schéma électrique qui réalise effectivement la fonction.
C'est à partir de cette étape qu'on a le schéma électrique général.

Ce que tu as fourni c'est des images de boîtiers de composants bien précis avec des fils d'interconnection ce qui fait que pour comprendre le fonctionnement nous sommes obligé de connaitre le composant (fonction et brochage) pour reconstituer le schéma électrique.

Bon pour une première fois tu as le bénéfice de la découverte et nous ne dirons rien :smiley-mr-green:

Blizzard27

Ok je n'entrerais pas dans le débat du schéma j'ai perdu d'avance on va dire le dessin.
Les dioders ikea consomment trop de courant pour être commandés directement en PWM par l'arduino donc la personne à utilisée des ULN2003 (sept rangées de darlington) pour fournir le courant nécéssaire aux dioders. Donc lui il sort un signal PWM de son arduino qui attaque un darlington et qui fourni le signal PWM aux dioders avec un courant suffisant.

Dans mon cas je ne veux pas attaquer en PWM le darlington avec l'arduino mais avec un WS2801 qui lui présente un MOSFET interne en sortie. Je pense donc que mon soucis vient de là, car le darlington se commande en courant, donc j'imagine que je doit mettre une résistance quelque part entre le WS2801 et le darlington mais comment la cabler et de quelle valeur pour pas cramer l'arduino.
Rien ne sert de chercher à tout savoir, mieux vaut savoir où tout chercher

68tjs

#6
Aug 27, 2012, 07:06 pm Last Edit: Aug 27, 2012, 07:08 pm by 68tjs Reason: 1
Je ne connais pas le WS2801 et je le connaîtrais sans doute jamais mais j'ai jeté un oeil sur la datasheet et je pense qu'il ne se commande pas de la même façon qu'un bête uln2003.
On voit des entrées CKI et SDI qui sont une communication série qui semble rappeler l'I2C mais ne semble pas être de l'I2C.

Edit : rectification : on doit avoir affaire un simple registre à décalage.

Artouste



Les dioders ikea consomment trop de courant pour être commandés directement en PWM par l'arduino
...

Dans mon cas je ne veux pas attaquer en PWM le darlington avec l'arduino mais avec un WS2801 qui lui présente un MOSFET interne en sortie. Je pense donc que mon soucis vient de là, car le darlington se commande en courant, donc j'imagine que je doit mettre une résistance quelque part entre le WS2801 et le darlington mais comment la cabler et de quelle valeur pour pas cramer l'arduino.

bon
pour résumer :
Tu veux driver tes dioders ikea avec des WS2801 cascadés que tu commande en série avec 2 pins de l'arduino ?
on parle bien de ça ?
https://www.sparkfun.com/products/10444
et datasheet
http://www.sparkfun.com/datasheets/Components/LED/WS2801.pdf

si oui regarde la figure 6 et dessous  la formule pour calculer R, mais là il faut connaitre la conso des entrées PWM de tes dioder
l'interfaçage avec l'arduino etant purement logique, il n'y a pas de risque de cramer l'arduino


barbudor

Le WS2801 est un driver de led en courant.
Il n'est pas fait pour piloter un ULN2003 qui demande une tension logique.

Mais récemment il y a quelqu'un qui voulait aussi utiliser un TLC5940 pour piloter des servos sous pretexte que ca générait du PWM.
http://arduino.cc/forum/index.php/topic,115286.0.html

Bon, c'est pas fait pour çà mais via un bricolage on s'en sort.

Si le schéma interne du WS2801 est bien tel que décrit dans la datasheet page 4 ca devrait même être plus simple qu'avec le TLC.

Il devrait suffir de :
- Mettre la sortie de référence xFB au GND (Source du MOSFET)
- Mettre une résistance de pull-up entre la sortie xOUT du WS et le +5V (Drain du MOSFET)
- Connecter la sortie xOUT sur l'entrée du ULN2003.

En choisissant 0 comme résistance de feedback, le circuit va faire saturer le MOSFET. Il faut donc choisir une résistance de pull-up qui va limiter le courant pour ne pas le cramer.
Il faut donc que la résistance de pull-up soit suffisante pour limiter le courant mais pas trop forte car quand le MOSFET ne va pas conduire (état repos du PWM) c'est elle qui va fournir le signal haut pour le ULN2003.
Je propose 1kOhms.

ATTENTION : ce montage INVERSE le PWM. Quand tu règle le WS2801 à 0, le ULN va conduire donc la LED va etre à 100%
Quand tu règles le WS à 100%, c'est le contraire.

Si tu souhaites ne pas avoir d'inversion, il faut mettre un inverseur type '04 avant l'ULN2003 (mais on garde la résistance de pull-up coté WS).

Un petit schéma pour montrer que tu as compris et faire plaisir à nos amis ?
:smiley-mr-green:
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 ?

Blizzard27

Merci de ton aide, je vais tester cela dès que j'aurais un peu de temps en ce moment je suis a fond dans le codage de la guirlande, mon travail touche bientôt à sa "fin" car il y a toujours quelque chose a ajouter. Si les essais sont concluant, je ne manquerais pas de poster le [font=Verdana]schéma [/font] :smiley-mr-green: afin d'en faire profiter le plus grand nombre.

Pour ce qui est de l'inversion du PWM cela est encore plus simple, le WS2801 possède une broche qui peu être mise a la masse ou au VCC et en fonction de cela le PWM est inversé ou pas donc c'est encore plus simple  XD.

Je ne manquerais pas de vous tenir au courant avec un petit et je dit bien schéma  8)
Rien ne sert de chercher à tout savoir, mieux vaut savoir où tout chercher

Blizzard27

Merci pour tout Barbudor, cela fonctionne a merveille, je ferais le petit schéma qui va bien ce soir, j'ai juste eut le temps de tester la partie électronique vite fait. Donc pour info, la broche du WS2801 qui permet d'inverser le signal PWM est la numéro 3 (POL) : mise a la masse le PWM est inversé, en l'air ou a VCC le PWM n'est pas inversé.

Un grand merci du coup je vais devoir retaper des lignes de codes pour rajouter mes dioders sur ma guirlande, c'est un mal pour un bien.
Rien ne sert de chercher à tout savoir, mieux vaut savoir où tout chercher

Blizzard27

Un petit up pour dire que j'ai mis le schéma tout en haut de ce post. Encore merci pour l'aide.
Rien ne sert de chercher à tout savoir, mieux vaut savoir où tout chercher

barbudor

C'est fou se qu'on peut s'amuser avec une poignée de LEDs

+1
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 ?

68tjs

Alors là chapeau !
Quote
j'ai mis le schéma

Merci cela permettra aux autres d'en profiter.
Quote
tout en haut de ce post

Voilà qui est une bonne action, cela évite de se perdre,  les premiers échanges des nouveaux sujet servants en général à clarifier le sujet.

Artouste

merci pour le retour
il y a pour l'instant et à cette heure "un truc" qui m'échappe sur l'interfaçage, mais je vais (re)lire tout ça plus tard à tête reposée  :smiley-mr-green:

Go Up