PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RGB LED Steuern



luxor
04.12.2005, 13:40
Hallo,
ich würde gerne Folgendes machen:
Ich habe hier ein Platine mit 50 RGB LED`S. Jetzt würde ich gerne diese 50 LED´s mit ihren Insgesamt 150 pins für die Farben vom PC steuern. in C++ bin ich einigermaßen Fit das soll daher nicht das Problem werden. mehr Problem macht mir die Elektronik. Da ich nicht genau weiß wie ich das machen soll, weil ich das ganze auch gerne Digital machen würde Falls mal es mal mehr Platinen werden.
Ich würde mir das so Vorstellen. Ich hab einen Chip mit 150 Ausgängen. An jedem Ausgang hängt eine Farbe dran. Nun gebe ich den Chip eine Art Adresse (über ein Jumper oder so) Und dann Sende ich vom PC aus über ein Port (das ist mir egal ob USB oder Druckerport) welche z.B. so aufgebaut ist:

CHIPADRESSE#PORT#ZUSTAND

Erklärt sich ja fast selber.
CHIPADRESSE = Die eingestellte Chip Adresse
PORT = den Port am Chip
ZUSTAND= Strom an oder aus

Kann man so was machen???
Ein Chip muss ja auch keine 150 Ausgänge haben. Es Reich im Grunde ja 3. Dann bekommt jede LED einen eigenen Chip. Wobei um so weniger Chips um so besser.
Schon mal ganz großen Dank für eure Hilfe!

Philipp

P.S: ich bin mir nicht ganz sicher ob ich hier richtig bin, Falls nicht bitte in das Richtige Forum verschieben oder schließen.

x-ryder
04.12.2005, 13:59
ja passt schon, das mit dem forum, aber wie issn das, mit dem rgb, du willst doch warscheinlich das ganze farbspektrum haben oda, dann kanns dir passieren, das die chips nicht schnell genug sind, immer wieder an und auszuschalten, und so das ganze anfängt zu flackern, was für chips sind das?

luxor
04.12.2005, 14:05
naja das ganze farbspektrum ist ja relativ. Pro Port gibt es ja nur Eine Farbe Rot oder eben nicht Rot. Daher kämme die Farbmischung durch das zusammen schalten von Verschieden Farben.
Und was ist für ein Chip nehme das weiß ich ja Grade nicht.

x-ryder
04.12.2005, 14:09
ach du stellst dir das nur vor ^^ also es gibt chips, die haben bis ca. 53 ports, das ist der größte den ich so kenne, davon brauchste natürlich noch nen paar für die busleitung, also denke ich du würdest mit 4 chips ganz gut im rennen liegen, wäre das ok?

luxor
04.12.2005, 14:11
ja bis jetzt sind es nur gedanken in meinem kopf und erste kleine C++ Programme. 4 Chips wären okay. Was sind das den für Chips?

x-ryder
04.12.2005, 14:13
atmega128, von atmel, der hat sehr viele ports, und kostet auch nicht unbedingt die welt, braucht ne geringe aussenschaltung, aber man müsste ihn noch programmieren

luxor
04.12.2005, 14:25
über die programmierung würde man den chips die adresen geben richtig?
Mhh gibt es eni HowTo wie man die Chips einbaut? Würde es dann erst mal mit 10 LEDs zum üben machen.

x-ryder
04.12.2005, 14:27
ne, nicht wirklich, damit musst du dich dann schon richtig auseinandersetzen, oder einen fragen ders kann, aber bitte nicht mich, ich hab zu viel stress momentan ^^ wie willst du überhaupt die platine machen, wenn du alle leitungen einzeln machst, dann wirst du unglaublich viel platz brauchen denke ich

luxor
04.12.2005, 15:00
also Platz ist weniger das Problem.
Mhh zeit ist leider bei mir auch Mangel. Dann Starte ich hier einfach mal einen Aufruf. Ich suche jemand der ein Demo Platine Lötet an die ich 50 RGB LED´s anlöten kann. Dazu gehört auch die Programmierung der Chips (also Adressen zuweisung). Wer Interesse hat kann sie bei mir melden über email oder icq (167-903-520)

Philipp

askazo
05.12.2005, 07:32
Was genau hast Du eigentlich mit den RGB-LEDs vor?
Wenn Du damit eine Art Bildschirm basteln willst, musst Du auch noch die Helligkeit der einzelnen LEDs steuern können. Und das geht dann nicht mehr so einfach mit einem µC....


also es gibt chips, die haben bis ca. 53 ports, das ist der größte den ich so kenne, davon brauchste natürlich noch nen paar für die busleitung, also denke ich du würdest mit 4 chips ganz gut im rennen liegen, wäre das ok?
Wenn man mal die µC-Welt verlässt und nebenan bei den FPGAs reinschaut, bekommt man auch Chips mit über 400 frei Programmierbaren I/Os. Allerdings wird man in der Hobbywerkstatt wohl kaum ein BGA-Gehäuse löten können... Aber zumindest bis 147 I/Os geht's auch im QFP-Gehäuse (bei Lattice FPGAs, bei anderen Herstellern vielleicht auch mehr).

askazo

luxor
05.12.2005, 07:55
Wenn Du damit eine Art Bildschirm basteln willst, musst Du auch noch die Helligkeit der einzelnen LEDs steuern können. Und das geht dann nicht mehr so einfach mit einem µC....


nein das soll es nicht werden. Es sollen einfach Felder werden die Verschieden Farben anzeigen können.
Welcher Chip wäre das mit den 147 I/O? Weill das würde genau für ein 7X7 Feld reichen und das wären 49 RGB´s.

Philipp

askazo
05.12.2005, 08:42
Ok, dann reichen digitale Ausgänge.

Das angesprochene FPGA mit den 147 I/Os wäre das EC6 von Lattice.
Allerdings würdest Du damit leider nicht auskommen, denn Du brauchst noch mindestens 2 Leitungen, um mit dem PC zu komunizieren, also gehen dafür auch 2 I/Os drauf... :(
Außerdem wird der Baustein wohl nicht soviel Leistung haben, dass er 147 LEDs gleichzeitig mit Strom versorgen kann...

Zudem wird das Ding mit Abel oder VHDL programmiert. Wird nicht leicht sein, jemanden zu finden, der das mal eben nebenbei programmiert.

Wenn Du wirklich genug Platz hast, würde ich einen kleinen µC + 19 Bustreiber 74244 nehmen. Das wäre am leichtesten zu realisieren, denke ich. Wobei Du für diese Lösung auch schon wieder 27 I/Os am µC brauchst...

askazo

luxor
05.12.2005, 08:46
also mit 27 µC + 19 Bustreiber habe ich nicht das Problem.
Wie würde so eine lösung aussehen mal ganz einfach gefragt. Also jetzt keine Anleitung sonder eher ein überblick.
Und wo bekomme ich die 27 Chips am besten her? Reichelt?

askazo
05.12.2005, 09:22
Erst mal habe ich Blödsinn geschrieben - Dur brauchst keine Bustreiber, sondern D-FlipFlops 74273.

Zweitens hast Du mich falsch verstanden:
Du brauchst einen µC mit 27 I/Os und 19 D-Latches. Also insgesammt 20 ICs.

Als µP würde ein ATMega 16 ausreichen, den gibts für 4,15 EUR bei Reichelt. Die FlipFlops gibt's ebenfalls bei Reichelt für 0,31 EUR das Stück.

Zur Funktion:
8 I/Os des µC werden als Datenbus genommen, an ihnen hängen alle 19 FlipFlops parallel. Dann bekommt jedes FF noch eine seperate Steuerleitung, mit der man dem FF sagen kann, dass es vom Datenbus angesprochen wird.

Somit kannst Du 19*8=152 einzelne LEDs bzw. 50 RGB LEDs ansteuern.
Um das komplette Feld neu zu beschreiben, würde der Controller dann 19 Schreibzugriffe (auf jedes FF einen) benötigen.

Der Zugriff vom PC ist am leichtesten über RS232 zu erledigen. USB würde schon wieder zu kompliziert werden und Parallel ist irgendwie altbacken... Für die RS232 brauchst Du dann allerdings IC Nr. 21: einen RS232-Treiber (MAX232, 1,95 EUR bei Reichelt) und ein wenig Außenbeschaltung.

Soweit klar?

askazo

x-ryder
05.12.2005, 11:12
das mit den 19 einzelsignalen zuzr steuerung könnte man noch durch nen dezimalzähler verbessern

luxor
05.12.2005, 12:48
@askazo: joa soweit klar. Mhh ob das gut geht bei meinem wissen :-)
Aber was mache ich jetzt wenn ich mal mehr als 50 Steuern möchte? Geht das da auch mit den Adressen der Chips?

@askazo: wo für ein dezimalzähler?

steveLB
05.12.2005, 13:04
mahlzeit
also so was ähnliches wie die das machen willst hab ich schon gemacht.
nämlich 144 led (normale, keine rgb) ansteuern , wenn man das durch 3 teilt sind schon fast 50 :), und zwar mit schieberegister

das ganze ding hängt am parallelport und wird per software gesteuert.
Bauanleitung hatte ich von blinkenlights, das was mal ein projekt vom computer chaos club
link dazu : http://www.blinkenlights.de/links.de.html
sucht mal dort nach blinkenLEDs

askazo
05.12.2005, 13:13
Im Prinzip ist das System beliebig erweiterbar, es wird nur halt langsamer, weil mehr Bausteine angesprochen werden müssen. Wobei "langsam" im Mikro- bis Millisekunden-Bereich liegt. Begrenzt wirst Du sonst nur durch die Anzahl der I/Os am µC.

@x-ryder: das mit dem Dezimalzähler ist auch keine schlechte Idee.
Damit spart man sich jede Menge I/O's, indem man einen I/O als Clock benutzt und mit jedem Clock ein anderer Ausgang des Zählers auf High gesetzt wird. So kann man der Reihe nach jedes FlipFlop mit Daten versorgen. Dann würdest Du auch locker mit einem Mega8 hinkommen.

Was willst Du eigentlich damit machen? Ein Mood-Light oder so?


Mit Schieberegistern geht's natürlich auch. Dann ist das Interface zwischen µC und LEDs nicht parallel, sondern seriell. Das spart wieder ein paar I/Os, macht das ganze allerdings auch wieder etwas langsamer.


askazo

luxor
07.12.2005, 14:38
Im Prinzip ist das System beliebig erweiterbar, es wird nur halt langsamer, weil mehr Bausteine angesprochen werden müssen. Wobei "langsam" im Mikro- bis Millisekunden-Bereich liegt. Begrenzt wirst Du sonst nur durch die Anzahl der I/Os am µC.


Ja also ein Paar Millisekunden wäre wohl Grade so okay :-)
Ich werde das wohl dann nach der Art machen wie du es beschrieben hast.

Philipp

P.S: Ich suche immer noch Jemand der ein kleine Demo Platine macht. Es würde für 9 RGB LED´s reuchen (also 27 port) Das ganz werden ich dan über RS232 steuern.

nestandart
08.12.2005, 00:52
... wenn man einige serial-in parralel-out (74xx595?) registern nimmt ...
dann braucht man enen µC, der gar nicht so viele beine hat...

askazo
08.12.2005, 07:05
Klar, mit Schieberegistern würde man mit 4 I/Os für das ganze Spielchen hinkommen. Dann wird allerdings die Programmierung etwas aufwändiger.

askazo

stegr
08.12.2005, 08:57
Wenn das ganze in Zeilen und Spalten aufgeteilt ist, braucht man nur eine entsprechend große Zahl an Multiplexern und sonst nix - vorausgesetzt, dass die Wiederholrate hoch genug ist.
Alternative wäre ein Display-Controller und der übernimmt dann die Ansteuerung, während du ihm die Daten per I²C rüberschiebst. Problem ist dabei, dass du typischerweise keinen Text ausgeben willst (wenn ich das richtig verstanden habe) und daher die meisten kleinen Controller nicht sinnvoll einsetzen kannst.
Was du bräuchtest, wäre eigentlich die Ansteuerung für ein Color-LCD-Display - da hast du genau das, was du brauchst: 3 Farben je Punkt (=1 LED), Zeilen und Spalten - allerdings ist das Interface von den Teilen mal vorsichtig gesagt "böse"... ;)