26 RGB LED's aansturen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • kwinvdv
  • Registratie: Maart 2009
  • Laatst online: 14-07 23:18
Ik wil in mijn computer kast 26 RGB LED's inbouwen en alle afzonderlijk aan kunnen sturen, maar dan stuit ik op het probleem op het feit dat ik dan eigenlijk 78 uitgangen moet kunnen aansturen. Heb wel een Arduino liggen waarmee ik het zou kunnen aansturen, maar dan kom ik nog steeds lang niet aan die hoeveelheid poorten.

Acties:
  • 0 Henk 'm!

  • joostvanpinxten
  • Registratie: Maart 2007
  • Laatst online: 03-09 12:50
Google-tip: leds multiplexen!

Acties:
  • 0 Henk 'm!

  • Stekeltje
  • Registratie: November 2005
  • Laatst online: 11-09 22:16

Stekeltje

Nothing to see here move along

Maar bij multiplexen kan je niet echt elke led afzonderlijk aansturen.

Afbeeldingslocatie: http://i102.photobucket.com/albums/m99/Ruudjuh_2006/vraagstuk.jpg

Hierbij stuur je 2 leds aan (rode bollen)

Maar op kruispunt 3-2 en 4-1 gaan volgens mij ook gewoon led branden?

Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt eens kijken naar de TLC5940 van TI.
Hier is ook een Arduino Library voor beschikbaar.
http://www.arduino.cc/playground/Learning/TLC5940
Ik heb deze regelmatig gebruikt.

Acties:
  • 0 Henk 'm!

  • kwinvdv
  • Registratie: Maart 2009
  • Laatst online: 14-07 23:18
Ik zat zelf te denk om het op deze manier aan te sturen. Ik hoef dan alleen gebruik te maken van 10 poorten, daarmee zou ik dan 90 led's aan kunnen sturen, wat eigenlijk wel goed uit komt, want ik heb ook nog 10 blauwe 120 graden led's liggen, waardoor ik in totaal op 88 led's kom. Alleen kan ik niet alle led's tegelijkertijd aan hebben, maar wel meer dan 1. Maar als ik het goed indeel komt het denk ik nog wel goed uit, want bij een rgb led kan maar één van de drie kleuren tegelijkertijd aan staan.
Zou dan alleen nog het signaal van de Arduino moeten versterken. Zou dan eigenlijk ook willen dat ik de power en de hdd led van de case zelf zou kunnen besturen, maar daarvoor zou ik alleen die signalen zelf in de Arduino moeten opvangen.

Zou dit dan een goede oplossing kunnen zijn. En hoeveel led's zou ik nu eigenlijk tegelijkertijd aan kunnen hebben?

EDIT#1
Bedenk me net dat die rgb led's een gemeenschappelijke min hebben, dus deze voorgestelde manier helemaal niet zou kunnen.

EDIT#2
De Aduino die ik heb is de Duemilanove en die heeft 14 uitgangen volgens mij. Ik zou het ook zo op kunnen lossen door het in vier groepen op te delen, want ik kan het aantal outputs terug dringen van 78 naar 52, door per rgb led een schakeling te gebruiken van een paar invertors en EN-poorten en zo met twee poorten de drie kleuren aan te kunnen sturen.
Zou ik de led's feller kunnen laten schijnen (dan 1/4) door bij elke led een condensator in serie te schakelen, zo dat de condensator leeg is op het moment dat de andere drie groepen zijn aangestuurd?

[ Voor 27% gewijzigd door kwinvdv op 29-07-2010 17:06 . Reden: fout in mijn redenering + nieuw idee ]


Acties:
  • 0 Henk 'm!

Verwijderd

Je zou de led's kunnen aansturen met een aantal schuifregisters (bv IC74595)
Ik heb hier snel een schematje van getekend in paint.

De massa van je RGB led's hang je aan de uitgangen van je schuifregisters. De leds die je aan wil hebben trek je naar massa.

Met de multiplexer kies je welke kleur je aan en uit wil zetten. als je maar snel genoeg tussen de kleuren wisselt kan het menselijk oog dit niet waarnemen.
Afbeeldingslocatie: http://www.koenverschueren.be/rgb.jpg

de schuifregisters kan je achter mekaar hangen zodat de data doorgeklokt wordt

Acties:
  • 0 Henk 'm!

  • vandeGerrit
  • Registratie: Januari 2009
  • Laatst online: 26-08 12:51

vandeGerrit

Well, this can't be right

...Ruud... schreef op donderdag 29 juli 2010 @ 15:43:
[...]
Maar bij multiplexen kan je niet echt elke led afzonderlijk aansturen.

Hierbij stuur je 2 leds aan (rode bollen)

Maar op kruispunt 3-2 en 4-1 gaan volgens mij ook gewoon led branden?
Je gedachte is bijna goed. Je stuur namelijk nooit meer dan 1 led tegelijk aan. Je loopt het rijtje verticale rijen af, en voor elk van deze rij de horizontale lijnen. Heb je dan 26 LEDS, dan sta elke LED dus 1x in de 26 keer aan.

Als je dit maar snel genoeg doet, krijgt de led alweer wat stroom, voordat deze uitdoofd. Nadeel is wel dat hij minder fel brandt.

Acties:
  • 0 Henk 'm!

  • kwinvdv
  • Registratie: Maart 2009
  • Laatst online: 14-07 23:18
vandeGerrit schreef op donderdag 29 juli 2010 @ 22:04:

Als je dit maar snel genoeg doet, krijgt de led alweer wat stroom, voordat deze uitdoofd. Nadeel is wel dat hij minder fel brandt.
Ik twijfel zeer of dit zal werken, want dan zou je echt hele korte pulse tijden moeten hebben, want mijn broer had toen hij wat jonger was wel eens led's aangestuurd via de pinterpoort waarbij hij de led's ook liet heel snel knipperen waardoor de intensiteit minder werd dan als die gewoon aanstond. Misschien dat het wel zou werken als je over elke led een condensator plaatst.

Acties:
  • 0 Henk 'm!

  • DuDePrOdUcTiOnS
  • Registratie: Augustus 2001
  • Laatst online: 23-08 16:51
kwinvdv schreef op donderdag 29 juli 2010 @ 22:55:
[...]


Ik twijfel zeer of dit zal werken, want dan zou je echt hele korte pulse tijden moeten hebben, want mijn broer had toen hij wat jonger was wel eens led's aangestuurd via de pinterpoort waarbij hij de led's ook liet heel snel knipperen waardoor de intensiteit minder werd dan als die gewoon aanstond. Misschien dat het wel zou werken als je over elke led een condensator plaatst.
Condensator plaatsen is niet nodig bij multiplexen. Bij (bijna) alle LED matrixen worden de LEDs via multiplexing aangestuurd. Doordat de LEDs steeds kort branden kunnen ze een hogere stroom aan dan wanneer ze constant branden, waardoor het verlies in intensiteit wordt gecompenseerd. Het enige verschil met het aansturen van RGB LEDs in een matrix is dat er 3 LEDs in één behuizing zitten.

Met multiplexen is het ook gewoon mogelijk om een PWM aansturing te maken om mooie kleurovergangen te kunnen maken..

www.teamgenie.nl
You raise the blade, you make the change
You re-arrange me till I'm sane
You lock the door, and throw away the key
There's someone in my head but it's not me


Acties:
  • 0 Henk 'm!

  • kwinvdv
  • Registratie: Maart 2009
  • Laatst online: 14-07 23:18
Maar ik ben alleen niet van plan om de led's in een rooster te rasteren. Maar dat zou toch geen probleem op moeten leveren, mits ik alleen bedrading er vandaan laat komen.
DuDePrOdUcTiOnS schreef op donderdag 29 juli 2010 @ 23:10:
[...]
Doordat de LEDs steeds kort branden kunnen ze een hogere stroom aan dan wanneer ze constant branden, waardoor het verlies in intensiteit wordt gecompenseerd.
Aan wat voor een voltage zou ik dan kunnen gebruiken, als je er van uitgaat dat de rode led 1,8 volt normaal nodig heeft en de groene en de blauwe 3,8 volt.

Acties:
  • 0 Henk 'm!

  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 13:03
Met condensators zal het niet werken, tenzij je veel stroom kan leveren (vaak een beperkende factor in je aansturing) en je de voorschakelweerstand tussen condensator en led zet, maar das nogal onhandig.

Als je gemultiplexte led's op normale sterkte wil laten branden, moet je er meer stroom door sturen. Grenswaarden zijn:
- de frequentie waarmee je aanstuurt, <100Hz zie je knipperen en bij hogere frequenties hinderen parasitaire effecten je teveel.
- warmte: als je LED constant 20mA aankan, moet je bij gepulst aansturen zorgen dat je gemiddeld niet boven die 20mA gaat, anders ga je die verbranden.
- maximale piekstroom: dat een simpel ledje geen 10A aankan is logisch, vaak geeft de fabrikant een exacte maximumwaarde.
- je aansturing: zodra je ook wil gaan dimmen loop je snel overal tegen limieten aan, en wordt het interessant om eens te kijken naar specifieke IC's zoals de PCA9532D (I2C, kan 16 leds aansturen) of de MAX7219CNG (kan 64 leds sturen, iets omslachtiger in gebruik).

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Nu online
kwinvdv schreef op donderdag 29 juli 2010 @ 23:25:
Aan wat voor een voltage zou ik dan kunnen gebruiken, als je er van uitgaat dat de rode led 1,8 volt normaal nodig heeft en de groene en de blauwe 3,8 volt.
Je denkt niet in spanning bij led's maar in stroom. Hoeveel dit is hangt af van wat de datasheets van de led's aangeeft.

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • kwinvdv
  • Registratie: Maart 2009
  • Laatst online: 14-07 23:18
LED-Maniak schreef op donderdag 29 juli 2010 @ 23:30:
[...]

Je denkt niet in spanning bij led's maar in stroom. Hoeveel dit is hangt af van wat de datasheets van de led's aangeeft.
Ik heb niet zo zeer een datasheet, maar wel de info van de site waar ik ze heb gekocht.

EDIT
Maar het staat er een beetje onoverzichtelijk. Maar er staat:
Piekstroom PWM, Ton=1 msec Duty 1/20 180 mA
Maar wat houd dit nou in, dat de LED voor 1/20 van een 1 msec 180mA aankan.
Wat in zou houden dat er dus voor een hele kort tijd er 34,2V op mag zetten (of blijft een LED geen constante weerstand) En wat houd nou de sperspanning (5V) in? Mag ik hoe dan ook niet over die 5V heen gaan?

[ Voor 33% gewijzigd door kwinvdv op 30-07-2010 16:26 . Reden: Het is me niet helemaal duidelijk ]


Acties:
  • 0 Henk 'm!

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 18-08 16:56
2 nuttige linkjes voor je (als je het zelf al niet gevonden heb):

http://www.arduino.cc/en/Tutorial/ShiftOut (stuk goedkoper, alleen geen hardware PWM)
http://www.arduino.cc/playground/Learning/TLC5940 (16 kanalen PWM chip, is door te lussen, zou je 5 IC's nodig hebben dus (wel duur geintje))

Acties:
  • 0 Henk 'm!

  • kwinvdv
  • Registratie: Maart 2009
  • Laatst online: 14-07 23:18
Ik wil eigenlijk maar een pin van de Arduino gebruiken voor zo iets als een schuifregister, dit kan je ook bereiken door pulsteller op die ene pin aan te sluiten en vervolgens de eerste drie pinnen daarvan aan te sluiten op een 3 naar 8 decoder. want dan kan ik in totaal 8 verschillende groepen een voor een aansturen en elke groep kan maximaal 13 groot zijn, omdat ik nog 13 andere pinnen op de Arduino beschikbaar heb. Dus als ik nauw zes groepen neem van 13, dan kan ik alle kleuren van alle 26 rgb leds aansturen.

Acties:
  • 0 Henk 'm!

  • 3xhaas
  • Registratie: Februari 2002
  • Laatst online: 26-09-2024
kwinvdv schreef op maandag 02 augustus 2010 @ 16:54:
Ik wil eigenlijk maar een pin van de Arduino gebruiken voor zo iets als een schuifregister, dit kan je ook bereiken door pulsteller op die ene pin aan te sluiten en vervolgens de eerste drie pinnen daarvan aan te sluiten op een 3 naar 8 decoder. want dan kan ik in totaal 8 verschillende groepen een voor een aansturen en elke groep kan maximaal 13 groot zijn, omdat ik nog 13 andere pinnen op de Arduino beschikbaar heb. Dus als ik nauw zes groepen neem van 13, dan kan ik alle kleuren van alle 26 rgb leds aansturen.
Dus dan gebruik je 8 uitgangen die elk naar een pulsteller gaan en vervolgens weer naar een decoder.

Waarom niet 3 pinnen(CLK, data, latch) gebruiken en alle schijfregisters achter elkaar in serie zetten?
Of anders enkele I2C port expanders gebruiken, dan zit je op 2 IO's die moet gebruiken.
Ik heb niet zoveel ervaring met 1-wire, maar met wat zoekwerk vind je daar vast ook wel wat port expanders voor.

Met port expanders zul je waarschijnlijk wel weer schakelfetjes moeten gebruiken, wat met het juiste schuifregister niet nodig is.
Er zijn ook speciale led schuif registers waarbij je op het IC de stroom instelt en verder dus geen serie weerstand bij de led's hoeft te gebruiken.
Verder kun je door middel van PWM ook de leds nog dimmen, maar dan is je mcu wel druk bezig

Acties:
  • 0 Henk 'm!

  • kwinvdv
  • Registratie: Maart 2009
  • Laatst online: 14-07 23:18
3xhaas schreef op vrijdag 06 augustus 2010 @ 22:04:
[...]
Dus dan gebruik je 8 uitgangen die elk naar een pulsteller gaan en vervolgens weer naar een decoder.
[...]
Volgens mij begrijp jij niet wat ik bedoelde. Want van de arduino gaat maar één pin naar de pulsteller (het liefst eentje die tot 8 kan tellen= 23 dus drie uitgang pinnen) met de volgende uitgangen:
PulsOut-1Out-2Out-3
0000
1100
2010
3110
4001
5101
6011
7111

Deze drie uitgangen gaan dan vervolgens naar een decoder van 8 pinnen, waarvan maar een tegelijk hoog kan zijn. En om maar 6 groepen aan te sturen hoef ik alleen de 7e pin van de decoder op de reset van de pulsteller aan te sluiten.

Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
kwinvdv schreef op donderdag 29 juli 2010 @ 23:45:
[...]


Ik heb niet zo zeer een datasheet, maar wel de info van de site waar ik ze heb gekocht.

EDIT
Maar het staat er een beetje onoverzichtelijk. Maar er staat:
Piekstroom PWM, Ton=1 msec Duty 1/20 180 mA
Maar wat houd dit nou in, dat de LED voor 1/20 van een 1 msec 180mA aankan.
Wat in zou houden dat er dus voor een hele kort tijd er 34,2V op mag zetten (of blijft een LED geen constante weerstand) En wat houd nou de sperspanning (5V) in? Mag ik hoe dan ook niet over die 5V heen gaan?
Ik zou eerst eens gaan inlezen in wat een led juist is, je blijft maar met spanningen werken, maar bij leds moet je met stromen rekenen. Een led heeft geen lineaire stroom spanning karakteristiek zoals bij een weerstand.
Dus ofwel maak je een stroombron die rechtstreeks de stroom door de led bepaald of je neemt een spanningsbron die een hogere waarde heeft als de voorwaartse spanningsval van je led, en je zet er een weerstand mee in serie waarvan de weerstandswaarde de stroom door de schakeling bepaald.

Dit is bv een redelijke start: http://www.circuitsonline.net/artikelen/view/32.

Die beschrijving wilt volgens mij zeggen dat je de led gedurende 1ms mag belasten met 180mA als je die daarna 20ms uit zet.

De sperspanning van een led is de spanning die je op de led moet zetten in de 'verkeerde' richting om de led te laten geleiden, en is voor dit niet van toepassing. Een led is een diode dus daarop kan je ook zoeken voor specifieke termen als sperspanning te begrijpen.

Acties:
  • 0 Henk 'm!

  • kwinvdv
  • Registratie: Maart 2009
  • Laatst online: 14-07 23:18
kluyze schreef op zaterdag 07 augustus 2010 @ 00:41:
[...]
Dus ofwel maak je een stroombron die rechtstreeks de stroom door de led bepaald of je neemt een spanningsbron die een hogere waarde heeft als de voorwaartse spanningsval van je led, en je zet er een weerstand mee in serie waarvan de weerstandswaarde de stroom door de schakeling bepaald.

Dit is bv een redelijke start: http://www.circuitsonline.net/artikelen/view/32.
[...]
Ik wil mijn voeding als spanningsbron gebruiken dus wordt denk ik lastig om een stroombron daaruit te verkrijgen, maar een hogere spanning er op zetten kan echter wel, maar hoe kan ik dan de I/U te weten komen dan deze rgb leds. Als ik naar de grafiek kijk van de link dan zie ik dat die na de 20mA ongeveer dezelfde steilheid behoud, maar een raaklijn daar langs niet door het 0 punt zal gaan, dus het is zeker geen Ohmse weerstand. Maar in de schakeling waarin ik deze leds ga gebruiken is elke kleur maximaal 1/6 dan de tijd aan (in korte pulsen) dus 5/6 van de tijd uit. Zou je dan hier uit kunnen afleiden dat er dan maximaal 45mA op mag staan (20/5=4; 180/4=45) en dat wil zeggen dat ik voor alle kleuren wel wat weerstanden moet gebruiken om de 5V van de voeding wil kunnen gebruiken.

Acties:
  • 0 Henk 'm!

  • 3xhaas
  • Registratie: Februari 2002
  • Laatst online: 26-09-2024
kwinvdv schreef op zaterdag 07 augustus 2010 @ 00:24:
[...]

Volgens mij begrijp jij niet wat ik bedoelde. etc
Ik had je inderdaad verkeerd begrepen, maar je moet je wel realiseren dat je zonder latch wel eerst pin 0 t/m 4 hoog maakt als je alleen pin 5 hoog wilt maken dan.

Verder kun je met een transistor(npn) heel gemakkelijk een stroombron maken.
Je maakt spannignsdeler naar de basis toe en bepaalt de stroom door weerstand tussen emitter en ground.
De led(s) zet je dan tussen voeding en collector. Zo kun je dus ook meerdere leds in serie gebruiken zonder dat je de sterkte varieert. Je moet er dan wel opletten dat de forward voltage drop van de leds niet boven het spanningsverschil tussen de collector - voedings spanning komt

Ik vond trouwens een maxim ic wat het wel erg makkelijk maakt.
http://datasheets.maxim-ic.com/en/ds/DS2413.pdf
Dat is een 1 wire port expander, welke een uniek adress heeft. Verder kan hij 20mA per poort aan. Het is wel open drain dus even goed opletten bij de aansluiten van je ledjes.
Btw. ik ga er vanuit dat andere fabrikanten vergelijkbare producten maken.

Acties:
  • 0 Henk 'm!

  • Elkoe
  • Registratie: September 2006
  • Laatst online: 15-07 16:51
Mocht je nog steeds op zoek zijn naar een oplossing, hier heb ik een voorbeeld voor arduino met schuifregisters:

http://www.picano.nl/micr...ontrol-many-leds-with-pwm

Dit is een voorbeeld wat ik heb geschreven voor Industrial Design studenten, dus met veel uitleg en eenvoudig gehouden.

Zelf ben ik een geavanceerdere versie aan het maken, waarbij ik ook timer0 gebruik om een PWM signaal op de output enable input van de schuifregisters te zetten, met een periode equivalent aan 1 bit van de outputs. Dit geeft een onafhankelijke totale brightness control, omdat ik 24 3W RGB leds gebruik lijkt me dat wel nodig. (LED's komen deze week binnen). Door de output enable lijn te gebruiken, heb ik ook op lagere brightness nog steeds 128 levels.
Pagina: 1