RGB LED Lamp project met USB en DMX

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 13:55
Ik ben bezig met een project om zelf een LED Lamp mee te maken.
De bedoeling is deze zowel als moodlight, ambilight en disco-licht te kunnen gebruiken. Ik heb een vrij goede programmeerkennis, maar mijn elektronica-kennis is wat beperkt, daarom hoop ik dat hier wat mensen zijn die mij hierbij wat advies zouden kunnen geven.

Features
  • Besturing en eventuele instellingen via USB. Dit maakt het eenvoudig om de lamp bijna overal met een computer te kunnen gebruiken
  • Besturing via DMX. DMX is een standaard protocol voor disco-verlichting, en maakt het zeer handig om meerdere lampen samen te gebruiken zonder dat afstand een probleem wordt en met een beperkt aantal kabels.
  • Besturing via 2 draaiknoppen. 1 voor intensiteit en 1 voor de kleur. Op deze manier kan de lamp ook in de woonkamer gebruikt worden om makkelijk te regelen zonder computer aanwezig
  • Besturing via afstandsbediening. Hier zit ik nog over te denken, maar als het eenvoudig en zonder extra kosten mogelijk is lijkt me dit ook wel een leuke toevoeging.
  • Hoge lichtopbrengst. Dit wordt bereikt door 1W Leds, en wel zowel R,G,B als wit. De witte leds hebben namelijk een hogere lichtopbrengst, en in de meeste led-oplossingen die ik gezien heb ziet wit als menging van R,G en B er toch nog niet zo goed uit, wat dus hopelijk op deze manier minder problemen oplevert.
Hoe dit alles te bereiken?
  • Microcontroller: Hiervoor gebruik ik een Arduino bordje met atmel avr controller. Grote voordeel hiervan is dat je meteen aan de slag kunt en dat je ook ineens usb-ondersteuning hebt.
  • Leds: De leds zijn ongeveer 350mA, we hebben gekozen om 3 leds van dezelfde kleur in serie te zetten zodat het met een 12V voeding makkelijk van stroom te voorzien is. Er komen 8 groepen (2 van elke kleur) van 3 leds per lamp. Elke groep is apart door de microcontroller aan te sturen.
  • PWM: Door snel de leds aan/uit te pulsen kan de intensiteit geregeld worden. In theorie is dit met de Arduino te regelen in software, maar dan zijn meteen al een heel deel van je kanalen opgebruikt, en door het in software te doen is het een stuk moeilijker om de timing heel exact te houden, zeker tijdens het ontvangen van commando's. Ook om tegelijkertijd intelligentere dingen te doen met de microcontroller (wat automatische loopjes/...) wordt het dan al moeilijker.
    Daarom heb ik gekozen om de TI TLC5940 chip hiervoor te gebruiken. Door deze aan te sturen met de hardware-timers op de arduino blijft de klok zeer stabiel. 1 chip heeft 16 uitgangen die elk met 12 bits nauwkeurigheid geregeld kunnen worden. Zelfs als met DMX slechts 8 bits gebruikt worden, is het interessant omdat de microcontroller een functie zou kunnen toepassen zodat de uitgangsintensiteit meer lineair is.
  • USB: Al aanwezig op de Arduino. Deze gedraagt zich als een COM-poort en is dus in de meeste programmeertalen/operating systems makkelijk aan te sturen. De gebruikte chip is van ftdi, en deze lijken tot nog toe steeds up-to-date te zijn met het leveren van drivers voor diverse besturingssystemen.
  • DMX: Om DMX te ontvangen heb ik nog geen concrete voorbeeldcode gevonden. Voor zover ik tot nog toe zie ga ik de SN75176BP chip gebruiken om het elektrisch RS-485 signaal door te geven aan de seriele pinnen van de Atmel processor. Dit betekend wel dat er met een schakelaar gekozen zal moeten worden tussen DMX en USB, maar dat lijkt me niet zo'n probleem.
  • Behuizing: PAR-56. Dit is een redelijke standaard behuizing in disco-verlichting, en dus gemakkelijk/goedkoop te verkrijgen. Ik heb momenteel al enkele Eurolite PAR-56 led parren, en het is mogelijk om van achter de zetel bijvoorbeeld toch de woonkamer te verlichten. Het uitzicht doet er dus in dat geval ook voor huiskamer-gebruik niet zo toe.
Status
De leds hebben we al, alsook de TLC5940 chip, de RS-485 bus transceiver en het Arduino microcontroller-bord.
Bovendien is het al gelukt om de Arduino te laten samenwerken met de TLC5940 en hiermee enkele gewone leds aan te sturen.

Moeilijkheden
De TLC5940 kan maximaal 120mA leveren, terwijl elke led-groep 350mA nodig heeft.
Bovendien heb ik gevonden dat de TLC5940 een 'current sink' is, wat naar het schijnt de aansturing via een transistor zou bemoeilijken.
Ik heb echter de TI ULN2003A gevonden, een chip met 7 transistors met elk een maximale uitgangsspanning van 50V en 500mA uitgangsstroom. Bovendien staat onderaan op de pagina bij 'complementary products' de TLC5940 vermeld. Dit lijkt dus de ideale oplossing. Alleen staat er in de datasheet niet vermeld hoe dit dan aangesloten moet worden, en dit heb ik momenteel ook nog niet gevonden met mijn beperkte elektronica-kennis.

Buiten het schakelen is het natuurlijk ook belangrijk dat de leds zelf met de juiste stroom worden gevoed. Als ik het goed begrijp kan dit gewoon met een weerstand, maar dan verlies je een deel vermogen in de weerstand, afhankelijk van het verschil tussen de voedingsspanning en de spanning over de serie leds. De stroom zal dan ook meer afhangen van de stabiliteit van de voeding, en dus leek een stroomregelaar hiervoor beter.
Ik heb dan de NUD4001 led driver gevonden die hiervoor geschikt leek. Klopt dit en is dit inderdaad de beste oplossing?
Van deze is er dan 1 per geschakelde led-groep nodig als ik het goed begrijp?

Alvast bedankt voor enig advies. Ik hou jullie ook zeker op de hoogte van de vorderingen.

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • Anthor
  • Registratie: Juni 2002
  • Niet online
Leuk project. Ik ben zelf ook van plan om zoiets te bouwen (rgb led strips aansturen via dmx) maar ik heb nog niet bedacht hoe ik het precies wil doen.

Als je er aan denkt om de ULN2003A's te gebruiken icm de TLC5940, dan kan je ook denken aan de uln2803a, die heeft 8 kanalen (ipv 7) en dan heb je er daar maar 2 van nodig als je alle 16 kanalen van van de tlc5940 wil gebruiken.

Acties:
  • 0 Henk 'm!

  • madwizard
  • Registratie: Juli 2002
  • Laatst online: 26-10-2024

madwizard

Missionary to the word of ska

Die ULN's kunnen dan wel 500mA max per kanaal, maar niet als je ze allemaal tegelijk aanzet hoor. Het zijn transistors (darlingtons nog wel) dus de spanningsval in combinatie met de stromen zullen voor een enorme dissipatie zorgen. Kijk in de datasheets even naar de figuren met duty cycle vs. aantal actieve transistoren vs. maximale stroom.

www.madwizard.org


Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 13:55
Misschien weet ik niet waar ik moet kijken/hoe ik het moet lezen, maar dat vind ik toch even niet.
Bij de inleiding staat trouwens
The collector-current rating of each Darlington pair is 500 mA. The Darlington pairs may be connected in parallel for higher current capability.
Dat lijkt toch te suggereren dat het zeker wel mogelijk is om meerdere uitgangen tegelijk op 500 mA te gebruiken.

Indien dit niet de juiste oplossing is, weet je dan misschien naar wat ik wel moet kijken?

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • Yoram
  • Registratie: Augustus 2004
  • Laatst online: 09-05 14:32
Interesant project!
Er is nog een ander topic waar wat word uitgelegd over DMX enzo, misschien handig: [HOWTO] DMX-512 met een Picmicro

Hallo!


Acties:
  • 0 Henk 'm!

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 18-05 17:57
Adion schreef op donderdag 20 maart 2008 @ 18:48:
Misschien weet ik niet waar ik moet kijken/hoe ik het moet lezen, maar dat vind ik toch even niet.
Bij de inleiding staat trouwens

[...]

Dat lijkt toch te suggereren dat het zeker wel mogelijk is om meerdere uitgangen tegelijk op 500 mA te gebruiken.

Indien dit niet de juiste oplossing is, weet je dan misschien naar wat ik wel moet kijken?
Ik zou gewoon een paar mosfets gebruiken zoals bijvoorbeeld de IRFZ34N, dat is goedkoop en je kunt er veel stroom mee schakelen.

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.


Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 13:55
Voor zover ik gevonden heb kost degene die jij aangeeft ongeveer 1 euro per stuk. De uln2803a kost slechts 70 cent voor 8 transistors, dus als deze ook zouden voldoen scheelt dat natuurlijk wel wat.

Overigens is er bij een mosfet nog steeds het probleem dat ik niet weet hoe deze kan aangesloten worden op de tlc, vermits dit een current sink is.

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • 0fbe
  • Registratie: Januari 2004
  • Laatst online: 00:17
Ik heb nog wel een stuk code om met AVR DMX te ontvangen. Het is echter niet de bedoeling dat die code publiek gemaakt wordt. Je mag me er wel voor maile, kan je er een keer doorheen kijken...

Acties:
  • 0 Henk 'm!

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 18-05 17:57
Bij Conrad is een IRFZ34N maar 62 cent, die kun je aansluiten op een TLC5940 met een pull-up weerstand.
Een ULN2083 kan in totaal maar 2,5 ampere schakelen.

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.


Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 13:55
Ok, met 2,5A zou ik ruim toekomen als ik er 2 gebruik (en dus 4 ledgroepen per ULN2083)
Is de werking verder verschillend van deze te gebruiken of een mosfet?

Zou je ook kunnen uitleggen hoe dat precies gaat met die pull-up weerstand?
Ik zit op volgende pagina's te kijken en probeer de info te combineren maar ik kom er niet helemaal uit wat nu waar moet.
http://www.ladyada.net/learn/arduino/lesson5.html
http://chameleon.madwizard.org/hardware/schematic
Wikipedia: MOSFET

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 13:55
Ok, misschien toch wat gevonden: is het dan zo ongeveer?
(Sorry voor mijn matige Gimp skills :P )
Afbeeldingslocatie: http://photo.djdecks.be/photos/medium/1729/transistor.png

[ Voor 14% gewijzigd door Adion op 20-03-2008 21:16 ]

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 10-07 21:55

TrailBlazer

Karnemelk FTW

Die atmega die er op zit heeft heeft 3 PWM controllers met elk 2 onafhankelijke outputs erop. Dus je kan hiermee al uit of the box 6 kanalen op 8 bits waarden instellen.
Ik ben zelf bezig om een led sterrenhemel te bouwen multiplexing icm met PWM. Er zit nog een bugje in mijn software maar ik kan sowieso zonder externe chips al 16 leds individueel dimmen. Eventueel kan je dit zelfs upgraden naar 32 leds als je de frequentie maar hoog genoeg houdt. Sprite_tm heeft zelfs wel eens 49 leds indivudueel aangestuurd vanaf een enkele tiny2313 maar die hield naar eigen zeggen te weinig cpu cycles over om iets anders te doen.
Als ik dan naar mijn eigen software kijk dan laat ik elke ledje 20 keer knipperen voordat ik overschakel naar het volgende ledje. Omdat ik alles met de ingebouwde PWM functie doe betekent dat dat ik een enorme partij cpu cycles over heb om iets anders te doen. Het enige wat ik elke keer doe als de PWM counter top bereikt heeft kijken of ik al op mijn max zit. Ik houd dus per ronde zo'n 250 cycles over om wat anders te doen. Dat moet meer dan genoeg zijn lijkt me om al je andere zooi te doen.

Acties:
  • 0 Henk 'm!

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 18-05 17:57
Adion schreef op donderdag 20 maart 2008 @ 21:16:
Ok, misschien toch wat gevonden: is het dan zo ongeveer?
(Sorry voor mijn matige Gimp skills :P )
[afbeelding]
Een eerste goede stap voor dit project is om schema's te leren tekenen in bijvoorbeeld eagle.

Het verschil tussen het gebruiken van een ULN2083 en een mosfet is dat je bij de ULN2083 zo'n 1,4 volt aan spanning verliest, bij een mosfet verlies je bijna geen spanning.

Een mosfet aansluiten is heel simpel, je hangt de source aan gnd, de drain aan de belasting en de gate aan het punt waar de stuurspanning uitkomt, als je een pull-up weerstand nodig hebt dan sluit je die aan op de 5 volt en de gate, ik denk dat een weerstand van 150 ohm wel voldoet.

Het enige probleem wat je nu hebt is dat de pwm omgedraaid is, duty cycle op 100% is led uit en duty cycle op 0% is led aan.

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.


Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 13:55
Ah bedankt, ik was al een tijdje op zoek naar een (gratis) programma om schema's te tekenen.
Dat spanningsverlies maakt trouwens vrees ik niet zoveel uit, ik heb begrepen dat die NUD4001 led driver waar ik was aan het denken om de stroom te regelen ook gewoon de overschot opgebruikt.
Efficientere oplossingen zouden toch steeds duurder zijn. (Voeding is 12V, en 3 leds in series zal geloof ik rond de 9V komen, dat moet ik nog eens juist in de specs van de leds bekijken)

Dat de PWM omgedraaid is lijkt me verder niet zo erg, dat is makkelijk in de microcontroller te regelen natuurlijk.

[ Voor 11% gewijzigd door Adion op 21-03-2008 00:05 ]

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 10-07 21:55

TrailBlazer

Karnemelk FTW

Dat ligt eraan hoe je je PWM instelt hoor. Je kan bij de tin2313 ook instellen dat die geinverteerd werkt.

Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 13:55
Ok, ondertussen heb ik iets meer gevonden:
Deze application note voor de TLC5940 vermeld op het einde (pagina 4) een oplossing met een NPN transistor en een weerstand.
Hiermee lijkt het dan enkel een transistor en weerstand nodig te zijn, en de juiste keuze daarvan zorgt dan automatisch voor de juiste stroom (en dus is er geen aparte led driver meer nodig)

In dat geval is het dus nog een kwestie van de geschikte transistor te vinden, of misschien een transistor-array moest dit bestaan en goedkoper zijn.

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 18-05 17:57
TrailBlazer schreef op vrijdag 21 maart 2008 @ 08:05:
Dat ligt eraan hoe je je PWM instelt hoor. Je kan bij de tin2313 ook instellen dat die geinverteerd werkt.
Als dat niet lukt kun je altijd nog de bits inverteren door een xor te doen met 0xFF.

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.

Pagina: 1