Autor |
25 Rgb Leds per PWM regeln? Suche nach: rgb (2405) pwm (3620) |
|
|
|
|
BID = 621615
Harald73 Schreibmaschine
Falsches Format *.gif oder *.jpg verwenden!
Beiträge: 1016
|
|
Für sowas gibt es fertige ICs, z.B. von NXP (products->interface->I2C LED Driver) mit bis zu 24 8bit-PWM-Kanälen (PCA9626). Ob und zu welchem Preis man die privat kaufen kann...??
Maxim hat auch einen ganzen Sack voll. (->LED-Lighting...)
Ein System mit "verteilter Intelligenz" könnte auch Vorteile bei Verkabelungsaufwand haben.
Gruß
Harald
_________________
*..da waren sie wieder, meine 3 Probleme: 1)keiner 2)versteht 3)mich
* Immer die gültigen Vorschriften beachten und sich keinesfalls auf meine Aussagen verlassen! |
|
BID = 621961
Lupin III. Schriftsteller
Beiträge: 616 Wohnort: Salzburg
|
|
Also mit einem ATmega8 habe ich bei 20MHz 16 Kanäle bei 8 bit hinbekommen (der µC hat dabei die Werte für den Ablauf nach wählbarem Programm selbst berechnet; Maximum waren 100 Helligkeitswechsel/s, was notwendig war, da es sich um Dimm-Effekte handelte). Das ist so ziemlich das Limit, das ich erreichen konnte. Mit einer höheren Programmiersprache kannst du das ganze allerdings gleich vergessen. Ich hab's zuerst mit C probiert, und da war soweit ich mich erinnere schon bei 4 LEDs Schluss. Seitdem schreibe ich alles in Assembler.
Eventuell würde sich das Vorhaben mit einem Steuer-µC und ein paar kleinen "Farbwandler-µControllern" (z. B. jeweils ein ATtiny mit 3 Schieberegistern für bis zu 8 - je nachdem, was sich ausgeht - RGB-LEDs) lösen lassen. Das ist zumindest leicht erweiterbar, fängt aber schon an zum IC-Grab zu werden. Mit einem dieser fertigen PWM-ICs bist du am Ende sicher besser bedient (woher man sie bekommt, weiß ich aber leider auch nicht). |
|
BID = 621965
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Das Ganze sollte aber in Verbindung mit einer Matrix passieren. Dann sieht es schon ganz anders aus! Wie gesagt, meines ist eine 6*8 Matrix, mit 5 Bit PWM. Der relevante Teil ist in Assembler kodiert und wird zum C-Programm-Teil hinzugelinkt. Und da ist noch seehr viel Platz für mehr, nur brauche ich nicht mehr. Daher sollte man es mal durchrechnen, was maximal nötig ist und ggf. die PWM-Auflösung oder die Zeilenfrequenz nach unten korrigieren. Solange das alles passt und noch ein paar µs Reserve sind, um z.B. per I²C oder SPI einfache Kommandos entgegenzunehmen sehe ich da kein Problem.
_________________
|
BID = 624473
H3llGhost Neu hier
Beiträge: 40 Wohnort: Löningen
|
Ich habe mir den ganzen Thread mal durchgelesen, da ich was ähnliches realisieren möchte, aber erstmal halt testweise ...
Es müsste doch möglich sein mit PWM eine RGB-LED zu kontrollieren oder?
Jetzt hatte ich mir noch Gedanken zum Anschluss solch einer LED gemacht und bin zum Schluss gekommen, dass man anscheinend mit der simulierten Spannung an den LED-Anschlüssen auch niedrige Helligkeitsgrade realisieren muss, aber wie kann ich die Farbe beibehalten, wenn ich den Helligkeitsgrad niedriger einstellen möchte?
@DonComi:
Du hast geschrieben, dass du bei deinem Wecker Assembler als Hauptbestandteil benutzt und damit unter anderem ein DCF77-Signal dekodierst.
Deswegen würde mich interessieren, was du für einen µC nutzt und wie ich am Besten so eine Matrix aufbauen kann wie du, denn ich hatte sowas auch vor ...
Danke im Vorraus ...
|
BID = 624488
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Hallo,
Es handelt sich bei meiner Matrix um keine RGB-LEDn, dennoch ändert das nicht viel.
Aufgebaut ist sie folgendermaßen:
Sechs Pins (allesamt am PortC) schalten sechs PNP-Transistoren. Diese widerum schalten die gemeinsame Anode eines Siebensegmentdisplays auf 5V.
Die Daten für die Anzeige kommen aus dem PortD, welcher wiederum über einen ULN2804 die Segmente auf Masse zieht, wenn sie eingeschaltet werden sollen.
Ist im Prinzip also recht simpel aufgebaut. Die Anoden takte ich 600 mal in der Sekunde durch, aktiviere also jedes Segment 100 Mal in der sekunde erneut und lege dazu die entsprechenden Bitmuster an die Kathoden.
Will ich eine PWM zusätzlich erzeugen, muss ich die AN-Zeiten der Anoden verkürzen, jedoch nicht gleich das nächste aktivieren, sondern warten, bis eine Periodendauer der Zeilenfrequenz vorbei ist (geht mit einem Zähler).
Also alles rein softwaremäßig geregelt.
Man könnte auch eine PWM mit recht hoher Frequenz jeweils mit den Leitungen, die die Segmentanoden auswählen, modulieren. So könnte man sich die Software-PWM ersparen.
Es arbeitet ein Mega8.
_________________
|
BID = 624687
pg-zonk Gelegenheitsposter
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 66 Wohnort: CH
|
Hi
Ein Lösungsvorschlag währe wie schon angetönt per I2C. Zum Beispiel mit dem PCA9531D von Phillips. Er ist privat erhältlich (Da ich nicht weiss wie ihr das mit der Schleichwerbung handhabt verzichte ich mal auf eine Verlinkung) und hat 8 PWM Ausgänge, was dann bei dir dann 10 Stück bedeuten würde ohne Matrix. So hättest du sogar noch 5 Ausgänge die du für sonst was brauchen kannst.
Allerdings gibts das Teil nur in SMD, was einen aber nicht abschrecken sollte. Ein Weiteres Problem könnte sein das die Lampe nicht besonders schnell ihre Farbe wechseln wird. Allerdings kann man das ganze mit ein paar Kniffen noch etwas verschnellern. Aber ich denke du willst nicht gerade eine Disco eröffnen....
_________________
Gruss
pg-zonk
PS: Seid lieb zueinander!
|
BID = 624688
bastelheini Schriftsteller
Beiträge: 618 Wohnort: Sachsen
|
zur Teit warte ich noch auf Platinen....dann kann ich erst weitertesten
_________________
-----------------------------
---MfG Bastelheini---
-----------------------------
|