Forum: Mikrocontroller und Digitale Elektronik Charlieplexing


von David (Gast)


Lesenswert?

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

von P. M. (o-o)


Lesenswert?

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? ;-)

von holger (Gast)


Lesenswert?

Welche Anschlussbelegung haben deine RGB Leds?

von Mirko H. (m1rk0)


Lesenswert?

P. M. schrieb:
> Was zum Teufel ist eine Fritzing Grafik? ;-)

http://fritzing.org/

Mirko

von David (Gast)


Lesenswert?

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...

von David (Gast)


Lesenswert?

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.

von holger (Gast)


Lesenswert?

>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

von David (Gast)


Lesenswert?

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.

von Eumel (Gast)


Lesenswert?

David schrieb:
> Arduino UNO

Ach, daher weht der Wind...

von David (Gast)


Lesenswert?

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 :)

von holger (Gast)


Lesenswert?

>Ja :) Habe gerade das hier gefunden :
>http://alan-parekh.vstore.ca/product_info.php/cPat...

Vergiss es.

von David (Gast)


Lesenswert?

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 ?

von Ulrich (Gast)


Lesenswert?

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.

von Simon B. (nomis)


Lesenswert?

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

von Eumel (Gast)


Lesenswert?

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.

von David (Gast)


Lesenswert?

Ah ok verstehe.
Das mit dem  74HC595 sieht ja eigentlich sehr einfach aus. Ich schätze 
da werde ich einfach diese Lösung bevorzugen...

von Eumel (Gast)


Lesenswert?

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?

von David (Gast)


Lesenswert?

an/aus reicht vollkommen aus. Ja ins Datenblatt schaue ich mal, sollte 
aber passen denke ich.

von Eumel (Gast)


Lesenswert?

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.

von Eumel (Gast)


Lesenswert?

David schrieb:
> sollte
> aber passen denke ich.

Achso, nö.

von David (Gast)


Lesenswert?

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...

von Eumel (Gast)


Lesenswert?

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.

von David (Gast)


Lesenswert?

ja habe hier was gefunden auf der Arduino Seite. Also danke an euch, 
werde das ganze jetzt dank eurer Hilfe hinbekommen ;)

Closed

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.