Brauche hilfe bei LED Board bauen (LED Matrix, ansteuern, etc)

hallo, wie vielleicht ein paar von euch schon gemerkt haben bin ich noch ziemlich unerfahren wenn es um Arduins und Hardware im Allgemeinen geht.

Darum brauch ich wieder Hilfe bei meinem aktuellen Projekt und hoffe ihr könnt mir helfen: Ich möchte gerne ein kleines Ledboard bauen.(Also ein kleines brett mit einigen LED's darauf) Ich möchte auf dem Board ca. 20 -30 Leds anbringen und diese auch einzeln ansteuern können.

Ein Freund hat mir gesagt das dies mit einer LED Matrix ginge, ich habe auch schon etwas versucht mich einzulesen, aber ich versteh das nicht ganz. Könnte mir hier jemand erklären wie ich , sagen wir mal 20 Leds, ungefähr zusammenhängen muss und wie ich sie dann am besten ansteuere? Oder kennt hierzu jemand ein gutes Tutorial?

Ps: Ich habe vor die Leds vorne auf einem kleinen Holzbrett zu platzieren und durch kleine löcher mit der Rückseite zu verbinden wo sie miteinader verbunden werden.

Also es gibt mehrere möglichkeiten eine solche matrix zu bauen, wenn dir 4x5 LEDs ausreichen und du nichts weiteres an dein arduino (uno) anschließen willst, geht das ohne zusätzliche hardware. wenn du mehr ansteuern willst müsstest du )ggf. mit einem transistor pro zeile) mehrere zeilen multiplexen, hier sind auch möglichkeiten über schieberegister möglich, woran besteht denn das interesse? ich glaube zum thema matrix und multiplexing gab es mal nen schönen beitrag bei mikrocontroler.net, den könnt ich nochmal raussuchen, ansonsten kenne ich ein halbwegs brauchbares (englisches) tutorial, welches shiftregister benutzt: http://www.instructables.com/id/810-LED-Matrix-with-4017/

Vielen dank für deine schenlle Antwort :) Ich denke das was ich brauche ist die erste, die 4x5 LEDs Variante.

Das Tutorial hab ich mir mal angesehen, aber da braucht man noch einen chip dazu oder?

ja, da wird noch ein 4017 shiftregister verwendet (bekommt man für unter 50 cent) und ein paar schalt-transistoren. für die 5x4 variante reicht es eigentlich an jeden pin des arduino eine LED anzuschließen... für eine größere variante hilft dir vielleicht dieses bild weiter:

du schließt die kathoden spaltenweise, die anoden zeilenweise zusammen, und legst nun jede zeile und jede spalte auf einen pin deines arduino (14 digitale plus 6 analoge macht 20 pins, also ist theoretisch 10x10 möglich) wenn du nun eine LED aus haben möchtest, so muss der entsprechende anoden-pin, also der der zeile auf HIGH sein und der kathoden-pin auf LOW, wenn eine LED aus sein soll muss entweder der anoden-pin auf LOW oder der Kathodenpin auf HIGH stehen, wenn du immer nur einzelne pixel ansteuern willst reicht das schon vollkommen aus, wenn du aber mehr darstellen möchtest solltest du die zeilen (oder spalten) multiplexen, das heißt ausnutzen das dein auge träge ist und etwa im millisekundentakt (oder schneller) immer nur eine spalte anzeigen, das müsstest du dann auch softwareseitig lösen. zum thema multiplexing finden sich auch sehr viele tutorials

derder: ja, da wird noch ein 4017 shiftregister verwendet

Da irrt ihr euch, das ist ein Dekadenzähler. Dieser hat einen Clock eingang und schaltet einfach einen Ausgang weiter, davon hat er (wie der Name schon sagt) 10 Stück.

oh sorry, mein fehler, hatte ein anderes projekt im kopf... ja, dort benutz er einen dekadenzähler zum multiplexing... aber mit shiftregistern kann man notfalls auch noch arbeiten, wenn man größere matritzen möchte ;)

Vergeßt die Vorwiderstände nicht!! Und berechnet diese damit pro PIN des Arduinos max 40mA und alle PIN's zusammen maximal 200mA fließen. Grüße Uwe

Darf ich dir den MAX7221 an Herz legen mit dem kannst du über SPI einfach mit Libary bis zu 8*8 Matrixen ansteuern incl Dimmen sagen wir mal 16 Helligkeitsstufen ansteurn. Du kannst auch animieren etc (wenn du SPI nutzt)

volvodani: Darf ich dir den MAX7221 an Herz legen mit dem kannst du über SPI einfach mit Libary bis zu 8*8 Matrixen ansteuern incl Dimmen sagen wir mal 16 Helligkeitsstufen ansteurn. Du kannst auch animieren etc (wenn du SPI nutzt)

Irre ich mich oder war der MAX7221 nicht für 7-Segment-Anzeigen? Er will doch ne LED-Matrix?

eine 7-Segment Anzeige ist auch nur eine Matrix

Der MAX7221/MAX7219 (das serielel Interface ist verschieden) hat 2 Modi, einen 7 Segment mit Dezimalpunkt Modus und einen Matrix-Modus. Im Matrix-Modus entspricht jedes Bit einer Byte Zahl einer LED. Es gibt für beide Moduse Arduino Bibiotheken. Grüße Uwe

Es ist genau wie Uwe sagt es gibt da zwei Modis Vorteil des MAX ist das du keine Vorwiderstände etc brauchst. Du stellst mit einem Widerstand (1/10 des Nennstroms) an einem Pin den Strom ein, man steuert einfach den Max an mit den "Bits"bzw LED die Leuchten sollen und um den Rest musst du dich nicht kümmern kein Flackern und so.

Gruß Daniel

Zweiter Vorteil ist, daß der MAX7221/7219 selbständig das Multiplexen übernimmt und somit nicht vom Controller gesteuert werden muß, wie zB der TLC5940. Grüße Uwe

Hm, ich denke den MAX7221/7219 brauch ich (vorerst) eher nicht. Und ehrlichgesagt hätte ich dafür auch gerade kein Geld (der kostet ja ca 10 -20 €, was ich bei ebay gesehen habe).

Ich habe jetzt angefangen das Board mit einer einfachen LED-Matrix zu machen.

uwefed: Vergeßt die Vorwiderstände nicht!! Und berechnet diese damit pro PIN des Arduinos max 40mA und alle PIN's zusammen maximal 200mA fließen. Grüße Uwe

War das auf das mit dem shiftregister und den multiplexen bezogen oder auch auf die einfache Led Matrix? Den mit Wiederständen kenne ich mich wenig bis kaum aus und ich habe auch gerade keine im Haus :(

also vorwiderstände brauchst du bei allen genannten möglichkeiten, außer bei der mit dem MAX... wenn du allerdings nicht solchen wert darauf legst das es wenig strom verbaucht und du dir die LEDs regelmäßig zerjagst kannst du es auch mal ohne probieren, die meisten LEDs kommen ja mit 20mA klar und aus einem arduino-pin kommen ja maximal 40mA... ich weiß ich werde dafür sicher gleich von vielen seiten verprügelt, aber man kann sich da was einfallen lassen. ich habe zum beispiel gerade eine gemultiplexte LED-anzeige, bei der ich den Strom nur über den multiplexingfaktor reguliere... bisher bekommt es den LEDs ganz gut, auf lange sicht ist das allerdings sicher nichts sauberes und wenn deine Bude abbrennt übernehme ich da auch sicher keine haftung... wenn du in einer stadt mit nem conrad wohnst sind widerstände recht schnell aufgetrieben, die dinger kosten ja nicht die welt, die versandkosten sind nur sonst immer ärgerlich, vielleicht findest du aber auch andere elektronikmärkte in deiner nähe, zum thema vorwiederstandsberechnung findet man in der regel über google hunderte von tutorials (suchbegriff LED vorwiderstand berechnen)

derder: also vorwiderstände brauchst du bei allen genannten möglichkeiten, außer bei der mit dem MAX... wenn du allerdings nicht solchen wert darauf legst das es wenig strom verbaucht und du dir die LEDs regelmäßig zerjagst kannst du es auch mal ohne probieren, die meisten LEDs kommen ja mit 20mA klar und aus einem arduino-pin kommen ja maximal 40mA... ich weiß ich werde dafür sicher gleich von vielen seiten verprügelt, aber man kann sich da was einfallen lassen. ich habe zum beispiel gerade eine gemultiplexte LED-anzeige, bei der ich den Strom nur über den multiplexingfaktor reguliere... bisher bekommt es den LEDs ganz gut, auf lange sicht ist das allerdings sicher nichts sauberes und wenn deine Bude abbrennt übernehme ich da auch sicher keine haftung... wenn du in einer stadt mit nem conrad wohnst sind widerstände recht schnell aufgetrieben, die dinger kosten ja nicht die welt, die versandkosten sind nur sonst immer ärgerlich, vielleicht findest du aber auch andere elektronikmärkte in deiner nähe, zum thema vorwiederstandsberechnung findet man in der regel über google hunderte von tutorials (suchbegriff LED vorwiderstand berechnen)

Also heißt das ich könnte auf die Widerstände(vorübergehend) verzichten, riskiere damit aber das manche LEDs kapputgehen?

btw. ich hätte da noch eine Frage: Ich will versuchen die Leds von einer alten Handytastatur zu verwenden. (Sind so ähnliche wie das Led auf dem Arduino) Würden die mehr mA vertragen/brauchen als die normalen (also die größeren)? Weil die kommen mir irgendwie viel stärker vor. Oder sind die gleich nur das die einen leds kleiner sind?

Sry, falls das ne dumme Frage ist, aber wie gesagt: Ich kenne mich da eher noch nicht so gut aus.

LEDs nur vorrübergehend ohne Vorwiderstand zu betreiben ist in meinen Augen auch keine Lösung. Ich mache das zugegebener maßen auch, um schnell mal zu teste, ob irgendwo Spannung drauf ist. Zum Wiedereinbau in andere Beschaltungen würde ich diese aber nicht mehr verwenden, es gibt irreversible Schäden, die im günstigsten Fall verminderte Leuchtstärke, schlechtestenfalls Verschiebungen im Farbspektrum sind. Einige meiner roten "Test-LEDs" leuchten eher orange... :D

Die LEDs auf deinem Handy-Tastenfeld sind SMD-LEDs, ohne Datenblatt wird es schwierig, da konkrete Aussagen zu treffen. Du könntest dich ausgehend von einem Vorwiderstand von 1kOhm nach unten arbeiten (vielleicht über ein Poti) und Leuchtstärke abschätzen und Stromstärke dabei messen. Prinzipiell würde ich von maximal 20mA ausgehen, wenn dir die Leuchtstärke bei weniger auch reicht (z.B. als Status-LED), ist es um so besser.

Wenn Du LED ohne Vorwiderstände verwendest betreibst Du die LEd und das Bauteil, das die LED ansteuert, außerhalb ihrer Spezifikation. Du reskiest, daß die LED und der Arduino Schaden nimmt.
Viele Grüße Uwe

ok, dann lege ich das ledboard mal vorübergehend beiseite.... btw. da das starter kit welches ich kaufen wollte aus Hong Kong geleifert werden würde und da es über 22 € kostet (und daher verzollt gehört) habe ich jetzt vor mir mein zubehör einzeln zusammenzukaufen.

Welche Widerstände würde ich den jetzt für ein projekt wie ein Ledboard brauchen? Ich hab schon ein auge auf ein Paket mit jeweils 100 1k, 10k und 100k wiederständen geworfen. Würde das reichen oder brauche ich da noch weitere? (Einen Poti habe ich auch schon gesucht aber bei eBay scheinen die, die ich suche ziemlich teuer zu sein)

Vorwiderstände sind grundsätzlich anhand der Daten des Verbrauchers zu bemessen, als exemplarisches Beispiel:

Eine rote LED hat 1,8V bei 20mA (gemäß Datenblatt der LED, einfach mal vorausgesetzt). Sie soll an 5V betrieben werden. Wenn man nun die LED in Serie zum Widerstand schaltet, müssen an diesem 3,2V abfallen (5V-1,8V=3,2V). Der Strom ist in der Reihenschaltung stets konstant, liegt also bei 20mA=0,02A. Aus R=U/I ergibt sich ein Wert für R=3,2V/0,02A=160Ohm.

Mit dem Set aus Widerständen 1k, 10k und 100k hättest du also gerade mal die Chance, die LED schwach leuchten lassen zu können. Das reicht in vielen Anwendungen zwar aus, aber eben nicht immer. Ein richtiges Widerstandssortiment ist da schon praktischer, wenngleich auch teurer. Es kommt eben immer drauf an, ob man sich auch weiterhin und nebenbei mit Elektronik beschäftigen will oder immer nur projektbezogen einkaufen will oder kann.