Hallo, ich bin noch relativer Anfänger und habe vor einiger Zeit mit
meinem ersten "sinvolleren" Projekt begonnen. Naja leider muss ich nun,
um mein Projekt zu verbessern eine 3x3 Matrix an RGB Leds auf mein
Breadboard zaubern, die ich allesamt ansteuern will/muss.
Leider ist das ganze (Stichwort Charlieplexing) für mich noch ein wenig
zu hoch, da ich ja wie gesagt mich noch nicht so lange damit
beschäftige.
Ohne diesen Fortschritt kann ich jedoch nicht an meinem Projekt
weiterarbeiten.
Daher meine Frage, ob jemand vielleicht zufällig genau soetwas schonmal
gemacht hat, bzw. mir vielleicht mit einer Fritzing Grafik(das wäre
klasse!) helfen kann ?
Wäre toll wenn mir hier im Forum jemand helfen kann, damit ich mein
Projekt in ferner Zukunft auch mal fertigstellen kann :)
Vielen Dank!
David
Willst du es wirklich charlieplexen oder nicht doch eher eine
gewöhnliche LED-Matrix-Schaltung wählen? Für 3x3 brauchst du beim
Charlieplexing 4 Pins und einen Strom vom 9fachen des normalen
LED-Stroms, um gleich hell zu sein wie eine nicht gemultiplexte LED. Mit
einer normalen LED-Matrix brauchst du 6 Pins und den 3fachen normalen
Strom. Charlieplexing mit einem AVR (20 mA am Pin) macht deine LEDs also
so hell wie bei ca. 2 mA, Matrix-Schaltung hingegen so hell wie bei ca.
6 mA.
David schrieb:> Fritzing Grafik
Was zum Teufel ist eine Fritzing Grafik? ;-)
Naja aber geht es überhaupt ohne Charlieplexing ? Ich habe ja dann 9 RGB
LED's für die ich dann insgesamt 3x9 = 27 Pins brauche. Und soviel hat
mein Arduino UNO eben nicht...
Vielleicht um das nochmal etwas klarer zu machen: Ich muss jede der 9
LED's einzeln ansteuern können. BSP: LED1 rot leuchten
LED2:grün....LEDn:gelb (z.B) das heißt jede RGB hat 4 Anschlüsse.
1Ground und 3 jeweils für rot,gelb und grün. Daraus folgt ja das ich für
jede einzelne RGB LED 3 Pins besetzen muss... und das ist nun mein
Problem.
>das heißt jede RGB hat 4 Anschlüsse.
Ich glaube dann geht Charlieplexing nicht.
>Ich muss jede der 9 LED's einzeln ansteuern können.
Wieso musst du das?
Stichwort: Schieberegister
naja weil jeder der leds entweder grün,rot oder gelb anzeigen soll
(stell es dir wie bei einem einarmigen banditen vor...nur eben anstatt
symbolen farben der leds)
Danke fürs Stichwort das schau ich mir mal an.
Ja :) Habe gerade das hier gefunden :
http://alan-parekh.vstore.ca/product_info.php/cPath/4_9/products_id/88
Sieht mir nach einer RGB Led mit nur 2 Leads aus... kann das überhaupt
sein ? BZW wenn ja kann ich die dann überhaupt richtig ansprechen, so
wie ich mir das vorstelle ? Weil dann bestell ich mir die jetzt :)
EDIT: Dumme Idee, ohne nachzudenken gepostet ;)
Also wenn ich das soweit jetzt richtig verstanden habe, habe ich die
Möglichkeit die einzeln anzusteuern, indem ich all rot "leads" jeweils
verschalte, alle grün leads miteinander verschalte etc... kommt das so
ungefähr hin ?
Charlieplexing geht gut, wenn jeweils nur wenige, bis etwa 5 LED
gleichzeitig leuchten sollen.
Sollen mehr LEDs gleichzeitig Leuchten geht eine klassische LED Matrix
besser. Das braucht ein paar mehr Pins, aber dafür weniger Spitzenstrom
je LED und einfachere Treiber, falls der Strom der IO Pins nicht reicht.
Für 9 RGB LEDs könnte man z.B. eine Matrix mit 3 x 9 nutzen, das braucht
dann 3+9 = 12 IO Pins. Für die eine Seite der Matrix braucht man meist
noch Treiber, weil da der Strom von mehreren LEDs gleichzeitig drüber
fließen muss. Sofern man 12 IO Pins zur Verfügung hat reichen 3 einfache
Treiber (Transistoren für 200 mA) um die LEDs mit knapp 20 mA für ein
Drittel der Zeit zu versorgen - das entspräche rund 6 mA im
Dauerbetrieb.
Alternativ könnte man die Matrix auch als 6 x 5 wählen, wobei dann 3
mögliche RGB LEDs nicht belegt sind. Da wären es dann nur 11 Pins, aber
5 mal mit Treiber.
Schieberegister sind ein weitere Alternative: für je 8 LEDs reicht da
ein IC wie 74HC595. Die maximal rund 8 mA die man damit je LED liefern
darf reichen in aller Regel aus. Für 27 LEDs wären das 4 ICs und 3 IO
Pins zur Steuerung. Mit 3 LEDs direkt an IOs würde auch schon 3 ICs
ausreichen.
David schrieb:> Naja aber geht es überhaupt ohne Charlieplexing ? Ich habe ja dann 9 RGB> LED's für die ich dann insgesamt 3x9 = 27 Pins brauche. Und soviel hat> mein Arduino UNO eben nicht...
Für eine Matrixschaltung brauchst Du 3+9 = 12 Pins (geht auch mit 5+6=11
Pins, dann aber eventuell etwas kreativ verdrahtet).
Für Charlieplexing brauchst Du 6 Pins, brauchst dann aber RGB-LED bei
denen Kathode und Anode für jede Farbe einzeln herausgeführt sind.
Viele Grüße,
Simon
Simon Budig schrieb:> Für eine Matrixschaltung brauchst Du 3+9 = 12 Pins (geht auch mit 5+6=11> Pins, dann aber eventuell etwas kreativ verdrahtet).
Und die solltest du ja frei haben, oder?
Eventuell brauchst du dann noch Treiber. ICs oder einzelne Transistoren.
David schrieb:> Ah ok verstehe.> Das mit dem 74HC595 sieht ja eigentlich sehr einfach aus. Ich schätze> da werde ich einfach diese Lösung bevorzugen...
Schau mal ins Datenblatt ob ein 595 genug Strom für deine Bedürfnisse
bereit stellen kann.
Ansonsten ist es relativ einfach, etwas mehr Kabelsalat :)
Willst du nur an/aus oder die LEDs auch dimmen?
Ok, wenn an/aus reicht reduziert das deinen Programmieraufwand. Du
könntest allerdings auch die einzelnen Farben dimmen um so insgesamt
mehr Farben anzuzeigen. Das kannst du aber auch später noch einfügen
wenn dir danach ist dein Projekt etwas zu erweitern.
Worauf bezieht sich dein "Achso nö" ? Kann ich das ganze doch nicht mit
dem 74HC595 lösen ?
Falls doch : Wie spreche ich die einzelnen LEDS an ?
Angenommen der 1. der 3. 595 hängt an I/O Pin 13 und an dem PIN 2 vom
595 wiederum z.B das "lead" (wie nennt man das eig. auf deutsch ;)) für
die Einstellung Rot von der LED.
Mache ich dann sowas wie digitalWrite(pin13,HIGH); und dann
digitalWrite(pin2,HIGH); ?
Somit wird doch der Pin 2 vom Arduino und nicht von dem 595 angesprochen
?
PS: Ich hoffe wirklich das "Achso nö" bezieht sich nicht darauf das es
mit dem 595 nicht funktionieren kann...
Also normale LEDs betreibt man mit 20mA, weniger geht natürlich auch
aber mehr idr. nicht. Deine RGB LED besteht ja eigentlich aus 3 LEDs,
jede von denen kriegt dann 20 mA. An jedem 74HC595 hängen dann acht
einzelne LEDs oder, wenn du so willst 8/3 RGB LEDs ;)
Das macht dann pro 595 160 mA (8*20 mA). Das ist zuviel für das IC!
(siehe Datenblatt)
Du kannst das ganze natürlich trotzdem mit 595ern realisieren allerdings
dann nicht mehr mit maximaler Helligkeit.
Bei deinem konkreten Programm kann ich dir nicht helfen da ich mich von
dem Arudino zeugs fern halte. Was aber machen musst ist folgendes: Dein
Bitmuster in die Schieberegister schieben dann latchen und du bist schon
fertig.