LED Matrix
Moderator: T.Hoffmann
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
Hallo,
ich möchte 4 mal 8*8 LED-Matrizen bauen. Ich möchte diese mit Hilfe mehrerer Shiftregister ( 74HC595 ) so anschließen, dass ich pro Matrix nur 3 Pins am Arduino benötige, also insgesamt nur 12 pins für alle 4*64 LEDs brauche. Ich weiß nur leider nicht wie dieses genau funktinieren soll.
Es wäre ein super Hilfe, wenn ihr mir erklären könntet wie ich ein 8*8 LED Matrix so mit mehrern Shiftregister, dass ich wie gesagt nur drei Pins vom Arduino brauch.
Viielen Dank schon einmal im vorraus.
ich möchte 4 mal 8*8 LED-Matrizen bauen. Ich möchte diese mit Hilfe mehrerer Shiftregister ( 74HC595 ) so anschließen, dass ich pro Matrix nur 3 Pins am Arduino benötige, also insgesamt nur 12 pins für alle 4*64 LEDs brauche. Ich weiß nur leider nicht wie dieses genau funktinieren soll.
Es wäre ein super Hilfe, wenn ihr mir erklären könntet wie ich ein 8*8 LED Matrix so mit mehrern Shiftregister, dass ich wie gesagt nur drei Pins vom Arduino brauch.
Viielen Dank schon einmal im vorraus.
Wenn Du unter Google die Suchbegriffe "74HC595" und "datasheet" eingibst, kommst Du auf die Seite datasheetcatalog.com, dort kannst Du kostenlos die Datenblätter des ICs herunterladen. Dort findest Du Anschlußbelegung, technische Daten und Zeitdiagramme.
Mit 3 Leitungen je Matrix wirst Du nicht auskommen. Für die Kathodenseite und die Anodenseite der Matrix benötigst Du ja je 1 IC. Um Daten in das IC zu schreiben brauchst Du 3 Anschlüsse:
Pin 14, SI ist der serielle Dateneingang
Pin 11, SCK ist der serielle Clock-Eingang, hier wird das Taktsignal angelegt, das die Daten ins Schieberegister schreibt
Pin 12, RCK ist der Storage Register Clock. nach dem Einlesen der 8 Bit werden hiermit die Daten aus dem Schieberegister ins Ausgangsregister übernommen
SCK und RCK kannst Du an beiden ICs parallel schalten. Da Du in die beiden ICs aber unterschiedliche Daten schreiben können mußt, werden hier 2 getrennte Datenleitungen erforderlich. Alternativ könntest Du RCK über einen Inverter mit SCK verbinden, dann wird aber auch der Schreibvorgang auf der Matrix sichtbar, was zu einem Flimmern der Anzeige führen dürfte.
Zur Berechnung des Widerstandes: bei einer Betriebsspannung von 5 V können die Ausgänge der ICs maximal 6 mA liefern, und zwar sowohl im HIGH als auch im LOW-Zustand. Der HIGH-Pegel liegt in diesem Fall bei 4,13 V, der Low-Pegel bei 0,33 V. Um eine LED leuchten zu lassen, muss die Anode auf HIGH, die Kathode gleichzeitig auf LOW liegen. Daraus ergibt sich eine verfügbare Potentialdifferenz von 4,13 V - 0,33 V = 3,8 V. Hiervon muss die LED-Spannung abgezogen werden: 3,8 V - 2,2 V = 1,6 V
Der Widerstand muss jetzt so bemessen werden, dass bei einer Spannung von 1,6 V ein Strom von 6 mA fließt. Gemäß Ohmschen Gesetz gilt: R = U / I = 1,6 V / 0,006 A = 266,7 Ohm. Der nächstgrößere Normwert ist 270 Ohm, das ergibt dann einen LED-Strom von 5,9 mA.
Mit 3 Leitungen je Matrix wirst Du nicht auskommen. Für die Kathodenseite und die Anodenseite der Matrix benötigst Du ja je 1 IC. Um Daten in das IC zu schreiben brauchst Du 3 Anschlüsse:
Pin 14, SI ist der serielle Dateneingang
Pin 11, SCK ist der serielle Clock-Eingang, hier wird das Taktsignal angelegt, das die Daten ins Schieberegister schreibt
Pin 12, RCK ist der Storage Register Clock. nach dem Einlesen der 8 Bit werden hiermit die Daten aus dem Schieberegister ins Ausgangsregister übernommen
SCK und RCK kannst Du an beiden ICs parallel schalten. Da Du in die beiden ICs aber unterschiedliche Daten schreiben können mußt, werden hier 2 getrennte Datenleitungen erforderlich. Alternativ könntest Du RCK über einen Inverter mit SCK verbinden, dann wird aber auch der Schreibvorgang auf der Matrix sichtbar, was zu einem Flimmern der Anzeige führen dürfte.
Zur Berechnung des Widerstandes: bei einer Betriebsspannung von 5 V können die Ausgänge der ICs maximal 6 mA liefern, und zwar sowohl im HIGH als auch im LOW-Zustand. Der HIGH-Pegel liegt in diesem Fall bei 4,13 V, der Low-Pegel bei 0,33 V. Um eine LED leuchten zu lassen, muss die Anode auf HIGH, die Kathode gleichzeitig auf LOW liegen. Daraus ergibt sich eine verfügbare Potentialdifferenz von 4,13 V - 0,33 V = 3,8 V. Hiervon muss die LED-Spannung abgezogen werden: 3,8 V - 2,2 V = 1,6 V
Der Widerstand muss jetzt so bemessen werden, dass bei einer Spannung von 1,6 V ein Strom von 6 mA fließt. Gemäß Ohmschen Gesetz gilt: R = U / I = 1,6 V / 0,006 A = 266,7 Ohm. Der nächstgrößere Normwert ist 270 Ohm, das ergibt dann einen LED-Strom von 5,9 mA.
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
Vielen Dank schon einmal.
Deine Berechnung mit den Wiederständen ist sehr verständlich. Jetzt habe ich aber als LED- Strom ja nur 5,9 mA, obwohl diese ja eigentlich 20mA Vertragen können. Gibt es eine Möglichkeit diese 5,9mA zu erhöhen, weil sonst wären die LEDs ja ziehlich dunkel wenn all 8 Gleichzeitig an wären, oder irre ich mich da?
Nocheinmal zu Sicherheit ich muss den Wiederstand vor die Anode setzten, also keinen vor die Kathode.
Noch einmal dazu, dass drei Ausgänge vom Arduino nicht reichen. Also ich verstehe die Logik die hinter deinen Gedanken steht. Noch mal Danke dafür. Allerdings habe ich Schaltungen wie diese https://picasaweb.google.com/1066301381 ... 6369729106 gefunden, in denen sogar eine 8*8 RGB LED Matrix mit nur 3 Pins des Arduinos angesteurt werden. Ist es also möglich 2 oder mehr Register so zu kombinieren, dass ich doch nur 3 Ausgänge benötige ?
Deine Berechnung mit den Wiederständen ist sehr verständlich. Jetzt habe ich aber als LED- Strom ja nur 5,9 mA, obwohl diese ja eigentlich 20mA Vertragen können. Gibt es eine Möglichkeit diese 5,9mA zu erhöhen, weil sonst wären die LEDs ja ziehlich dunkel wenn all 8 Gleichzeitig an wären, oder irre ich mich da?
Nocheinmal zu Sicherheit ich muss den Wiederstand vor die Anode setzten, also keinen vor die Kathode.
Noch einmal dazu, dass drei Ausgänge vom Arduino nicht reichen. Also ich verstehe die Logik die hinter deinen Gedanken steht. Noch mal Danke dafür. Allerdings habe ich Schaltungen wie diese https://picasaweb.google.com/1066301381 ... 6369729106 gefunden, in denen sogar eine 8*8 RGB LED Matrix mit nur 3 Pins des Arduinos angesteurt werden. Ist es also möglich 2 oder mehr Register so zu kombinieren, dass ich doch nur 3 Ausgänge benötige ?
Ob Du die Widerstände in die Anodenleitung oder die Kathodenleitung schaltest, ist völlig egal. Nur entweder 8 x in die Anode oder 8 x in die Kathode.
5,9 mA ist vollkommen ausreichend, wenn die LEDs hell genug sind. Es müssen hierzu noch nicht einmal ultrahelle sein. Solche LEDs wären z.B. vollkommen ausreichend:
http://www.leds.de/Standard-LEDs/LEDs-3 ... -2-1V.html
Eine solche Matrix wird normalerweise immer gemultiplext, das heißt, die LEDs werden in einer ganz bestimmten zeitlichen Reihenfolge nacheinander abgetastet. In diesem Fall ist immer nur maximal eine LED an. Ein zeilenweises Abtasten funktioniert hier nicht, da jeder Ausgang immer nur eine LED treiben kann.
Die Möglichkeit, mit drei Leitungen auszukommen, gibt es in der Tat, ich hab nur auf die Schnelle nicht dran gedacht.
Wenn Du Pin 9 (QH', serieller Ausgang) des ersten Registers mit dem Dateneingang des zweiten Registersverbindest, hast Du die beiden Register sozusagen zu einem 16-Bit-Register in Reihe geschaltet. Die beiden Register werden dann einfach mit einem seriellen 16-Bit-Datenwort programmiert. Damit brauchst Du also nur 3 Leitungen.
Theoretisch wäre es auf diese Art sogar möglich, alle 8 Register mit nur 3 Leitungen anzusteuern.
5,9 mA ist vollkommen ausreichend, wenn die LEDs hell genug sind. Es müssen hierzu noch nicht einmal ultrahelle sein. Solche LEDs wären z.B. vollkommen ausreichend:
http://www.leds.de/Standard-LEDs/LEDs-3 ... -2-1V.html
Eine solche Matrix wird normalerweise immer gemultiplext, das heißt, die LEDs werden in einer ganz bestimmten zeitlichen Reihenfolge nacheinander abgetastet. In diesem Fall ist immer nur maximal eine LED an. Ein zeilenweises Abtasten funktioniert hier nicht, da jeder Ausgang immer nur eine LED treiben kann.
Die Möglichkeit, mit drei Leitungen auszukommen, gibt es in der Tat, ich hab nur auf die Schnelle nicht dran gedacht.
Wenn Du Pin 9 (QH', serieller Ausgang) des ersten Registers mit dem Dateneingang des zweiten Registersverbindest, hast Du die beiden Register sozusagen zu einem 16-Bit-Register in Reihe geschaltet. Die beiden Register werden dann einfach mit einem seriellen 16-Bit-Datenwort programmiert. Damit brauchst Du also nur 3 Leitungen.
Theoretisch wäre es auf diese Art sogar möglich, alle 8 Register mit nur 3 Leitungen anzusteuern.
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
Super vielen Dank.
Gut zu wissen, dass es theoretisch möglich ist alle 4 Matrizen mit drei Ausgängen zu steuern. Allerdings warum diese Mühe machen, wenn der Arduino doch 14 Pins hat. Von denen kann ich dann ja auch 12 bentzen.
Noch mal zu den LEDs ich habe mir diese ausgeguckt. Wären die hell genug?
http://de.mouser.com/Search/ProductDeta ... 4-WP7113GD
Eigentlich sollten die hellgenug sein, oder?
Gut zu wissen, dass es theoretisch möglich ist alle 4 Matrizen mit drei Ausgängen zu steuern. Allerdings warum diese Mühe machen, wenn der Arduino doch 14 Pins hat. Von denen kann ich dann ja auch 12 bentzen.
Noch mal zu den LEDs ich habe mir diese ausgeguckt. Wären die hell genug?
http://de.mouser.com/Search/ProductDeta ... 4-WP7113GD
Eigentlich sollten die hellgenug sein, oder?
Würde ich nicht empfehlen, mit 20 mcd bei 20 mA ist das doch etwas wenig. Wenn es denn grüne 5 mm LEDs sein sollen, nimm besser diese hier:
http://www.leds.de/Standard-LEDs/LEDs-5 ... -2-3V.html
Die sind bei einem sogar etwas geringeren Preis sechs mal so hell.
Kleiner Tip: Frag über den Link "Die Beschreibung beantwortet Ihre Frage nicht? Fragen Sie unseren Produktservice!" auf der Produktseite einfach mal nach einem Mengenrabatt für 256 LEDs mit dem Hinweis, dass Du sie für ein Schulprojekt benötigst. Da wird Lumitronix sicher was machen können.
http://www.leds.de/Standard-LEDs/LEDs-5 ... -2-3V.html
Die sind bei einem sogar etwas geringeren Preis sechs mal so hell.
Kleiner Tip: Frag über den Link "Die Beschreibung beantwortet Ihre Frage nicht? Fragen Sie unseren Produktservice!" auf der Produktseite einfach mal nach einem Mengenrabatt für 256 LEDs mit dem Hinweis, dass Du sie für ein Schulprojekt benötigst. Da wird Lumitronix sicher was machen können.
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
danke für den Tipp, habe ich auch schon gemacht 
Ich habe aber auf Größere Mengen anfragen geklickt.
Ich habe aber auf Größere Mengen anfragen geklickt.
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
nocheinaml eine andere Frage:
Woher weißt du die genauen Spannungen für HIGH und LOW . Ich finde nämlich immer nur 0Volt und 5 Volt. Also nicht das ich denke das deins falsch ist nur ich muss leider immer Quellenangbaen liefern. Da wird einem doch der ganze Spaß am Projekt verdorben...
Woher weißt du die genauen Spannungen für HIGH und LOW . Ich finde nämlich immer nur 0Volt und 5 Volt. Also nicht das ich denke das deins falsch ist nur ich muss leider immer Quellenangbaen liefern. Da wird einem doch der ganze Spaß am Projekt verdorben...
Wie ich weiter oben schon sagte: googeln! Suchbegriffe für ein Datenblatt immer "datasheet" und Typenbezeichnung des Bauteils. Einer der ersten Treffer bringt Dich normalerweise auf die Seite "datasheetcatalog.com". Dort einfach das Datenblatt runterladen, da steht alles drin. Hier der Link fürs Register:
http://www.datasheetcatalog.com/datashe ... C595.shtml
Ich habe die Daten aus dem Datenblatt von ST Microelectronis. Die Werte, die ich genommen habe, sind die typischen Werte. Leichte Abweichungen sind möglich, haben auf die Funktion der Schaltung aber keinen Einfluss.
http://www.datasheetcatalog.com/datashe ... C595.shtml
Ich habe die Daten aus dem Datenblatt von ST Microelectronis. Die Werte, die ich genommen habe, sind die typischen Werte. Leichte Abweichungen sind möglich, haben auf die Funktion der Schaltung aber keinen Einfluss.
- Achim H
- Star-Admin

- Beiträge: 13067
- Registriert: Mi, 14.11.07, 02:14
- Wohnort: Herdecke (NRW)
- Kontaktdaten:
Datasheetcatalog.com: 74HC595Woher weißt du die genauen Spannungen für HIGH und LOW .
Datenblätter von: Philips, ST Microelectronics, ON Semiconductor (Onsemi), Mototola.
Wenn eine Seite mit Datenblättern von verschiedenen Herstellern vorliegen, dann auch mal andere Datenblätter anschauen. Die Datenblätter sind etwas abweichend geschrieben worden, nicht überall sind gleiche Informationsinhalte vorhanden.
Die Pegel
VIH (Input High [gemessen in V])
VIL (Input Low [gemessen in V])
VOH (Output High [gemessen in V])
VOL (Output Low [gemessen in V])
sind abhängig von der Höhe der Versorgungsspannung (VCC).
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
Okay dann noch einmal vielen Dnak für die ganzen Hilfen.
Ja ich wusste nicht genau welcher der Daten jetzt relevant sind oder nicht also welche aus dem Datasheets.
So jetzt gehe ich aber schlafen... habe morgen ja noch Schule
Ja ich wusste nicht genau welcher der Daten jetzt relevant sind oder nicht also welche aus dem Datasheets.
So jetzt gehe ich aber schlafen... habe morgen ja noch Schule
Du solltest vielleicht schrieben was Du damit vorhast, denn das ist entscheidend wenn man so was designed.
Sprich ist es nur nen Labor Experiment, oder willst Du es später einsetzten, evt sogar bei hellem Sonnenschein.
Du mußt die 20mA nicht ausnutzen, je nach LED reichen auch viel weniger um im Zimmer eine brauchbare Helligkeit zu erreichen. Geht es ums Prinzip wie man so etwas ansteuert, oder soll nachher auch was konkret angezeigt werden? Wenn ja, Animationen oder stehende Bilder. Bei Animationen, je nach Aufwand brauchst du Rechenleistung um sie zu errechnen, bei statischen Bildern kannst du die ganze Rechenleistung, fürs multiplexen verbraten.
Die Rechnung die oben gemacht wurde gilt natürlich nur wenn du nicht multiplext und R ist natürlich auch abhängig von VCC. Sprich wenn du für jede LED auch ein Schieberegister Ausgang nimmst, für 4* 8x8 brauchst du dann 32 Mal den 595. Du kannst sie im Prinzip alle hintereinander schalten, so das du mir 3 µC Pins auskommst. Clock und load mußt du allerdings nochmal extra treiben.
Wenn Du mutiplext brauchst du höhere Ströme um die gleiche Helligkeit zu erreichen. Auf hohe Impulsbelastbarkeit achten. evt lohnt es da auch sich den 138 anzuschaun.
Wenn du auf die 595 verzichtest, kannst du es auch mit 4 LEDmatrixtreiberics (z.B. MAX7219) erledigen. in jedem der ICs ist dann alles drin was du für ne mutiplexte 8x8 Matrix brauchst, incl Stromquelle, dimmen, usw.
BTW wenn du LEDs bestellst, nimm ein paar mehr als 256. Je nachdem wie gut du löten kannst, geht schon mal eine kaput, ist dann gut wenn du etwas Redundanz hast
Du solltest erst bestellen, wenn du den Schaltplan erstellt und durchgerechnet hast.
Sprich ist es nur nen Labor Experiment, oder willst Du es später einsetzten, evt sogar bei hellem Sonnenschein.
Du mußt die 20mA nicht ausnutzen, je nach LED reichen auch viel weniger um im Zimmer eine brauchbare Helligkeit zu erreichen. Geht es ums Prinzip wie man so etwas ansteuert, oder soll nachher auch was konkret angezeigt werden? Wenn ja, Animationen oder stehende Bilder. Bei Animationen, je nach Aufwand brauchst du Rechenleistung um sie zu errechnen, bei statischen Bildern kannst du die ganze Rechenleistung, fürs multiplexen verbraten.
Die Rechnung die oben gemacht wurde gilt natürlich nur wenn du nicht multiplext und R ist natürlich auch abhängig von VCC. Sprich wenn du für jede LED auch ein Schieberegister Ausgang nimmst, für 4* 8x8 brauchst du dann 32 Mal den 595. Du kannst sie im Prinzip alle hintereinander schalten, so das du mir 3 µC Pins auskommst. Clock und load mußt du allerdings nochmal extra treiben.
Wenn Du mutiplext brauchst du höhere Ströme um die gleiche Helligkeit zu erreichen. Auf hohe Impulsbelastbarkeit achten. evt lohnt es da auch sich den 138 anzuschaun.
Wenn du auf die 595 verzichtest, kannst du es auch mit 4 LEDmatrixtreiberics (z.B. MAX7219) erledigen. in jedem der ICs ist dann alles drin was du für ne mutiplexte 8x8 Matrix brauchst, incl Stromquelle, dimmen, usw.
BTW wenn du LEDs bestellst, nimm ein paar mehr als 256. Je nachdem wie gut du löten kannst, geht schon mal eine kaput, ist dann gut wenn du etwas Redundanz hast
- CRI 93+ / Ra 93+
- Auserwählter

- Beiträge: 2801
- Registriert: So, 19.10.08, 23:56
- Wohnort: Hannover
Ah, nicht nur mir fällt das auf...Suntrader hat geschrieben:Du solltest vielleicht schrieben was Du damit vorhast, denn das ist entscheidend wenn man so was designed
Bei gemultiplextem Betrieb müsste man bei 1/8 T_on pro gemultiplexter LED-Reihe den 8fachen (theoretisch, praktisch noch mehr, da der Wirkungsgrad ein wenig sinkt) Strom für gleiche Helligkeit wie Dauerstrom pro einzelner LED nutzen. Und es müssten LEDs sein, die so einen hohen Pulsstrom vertragen. UND es muss sichergestellt sein, dass das Multiplexing nicht "stehenbleibt" und dadurch einzelne LEDs überlastet werden (daher sollte das im Microcontroller Interrupt-Gesteuert erfolgen)
Wenn beliebige LEDs einzeln angesteuert werden sollen, kommt man bei der gegebenen Matrix-Verschaltung nicht um ein Multiplexen herum!
Da es sich um ein Schulprojekt handelt, denke ich aber eher, dass Multiplexing nicht gefordert ist* oder evtl. in einem zweiten Schritt kommt.
*weil: Schieberegister sind dazu doch eher ungeeignet, bzw. überflüssige performance-Fresser, wenn man sie dann per Controller ansteuert. Wenn man MCU-Pins sparen will, dann böte sich eigentlich eher ein 3-zu-8-Decoder an.
Zuletzt geändert von CRI 93+ / Ra 93+ am Do, 06.10.11, 11:50, insgesamt 1-mal geändert.
- Achim H
- Star-Admin

- Beiträge: 13067
- Registriert: Mi, 14.11.07, 02:14
- Wohnort: Herdecke (NRW)
- Kontaktdaten:
Im Datenblatt von ST Microelectronics (siehe Seite 4) beträgt der maximale Strom an jedem parallelen Ausgang (QA - QH) +-35mA. An jedem Ausgang sollen aber (das ist eine 8x8 Matrix, siehe diesen Fred) bis zu 8 Leds parallel betrieben werden. Die 35mA teilen sich auf die Leds auf, die gleichzeitig angesteuert werden. Bei 1 Led sind das 35mA, bei 8 Leds sind das nur noch 4,375mA je Led.ustoni hat geschrieben:Zur Berechnung des Widerstandes: bei einer Betriebsspannung von 5 V können die Ausgänge der ICs maximal 6 mA liefern, und zwar sowohl im HIGH als auch im LOW-Zustand. Der HIGH-Pegel liegt in diesem Fall bei 4,13 V, der Low-Pegel bei 0,33 V. Um eine LED leuchten zu lassen, muss die Anode auf HIGH, die Kathode gleichzeitig auf LOW liegen. Daraus ergibt sich eine verfügbare Potentialdifferenz von 4,13 V - 0,33 V = 3,8 V. Hiervon muss die LED-Spannung abgezogen werden: 3,8 V - 2,2 V = 1,6 V
Der Widerstand muss jetzt so bemessen werden, dass bei einer Spannung von 1,6 V ein Strom von 6 mA fließt. Gemäß Ohmschen Gesetz gilt: R = U / I = 1,6 V / 0,006 A = 266,7 Ohm. Der nächstgrößere Normwert ist 270 Ohm, das ergibt dann einen LED-Strom von 5,9 mA.
Kurze Info:
MeinKekse ist wohl ein Schüler, der versehentlich (oder aus Unkenntnis) sein eigentliches Anliegen auf 2 Threads verteilt hatte. Den ersten Post im Thread"Wiederstände von einer 8*8 Matrix" lesen, dann wird der Zusammenhang klarer. Er stellt hier eine Anfrage im Zusammenhang mit einem Schulprojekt.
MeinKekse ist wohl ein Schüler, der versehentlich (oder aus Unkenntnis) sein eigentliches Anliegen auf 2 Threads verteilt hatte. Den ersten Post im Thread"Wiederstände von einer 8*8 Matrix" lesen, dann wird der Zusammenhang klarer. Er stellt hier eine Anfrage im Zusammenhang mit einem Schulprojekt.
Hallo, Achim!
Deine Erklärung ist nicht ganz richtig. Die 35 mA je Ausgang hast Du aus den Absolute Maximum Ratings. Diese Parameter haben aber nichts mit dem realen Betrieb zu tun. Zur Dimensionierung im realen Betrieb sind die Parameter unter DC Specifications auf Seite 5 maßgebend. Die Spannungswerte die ich in meiner Widerstandsberechnung verwendet habe findest Du als VOH und VOL unter den Betriebsbedingungen VCC=4,5 V und I=6mA. Bei 5 V wären diese Werte natürlich eine Idee höher, aber so ist man auf jeden Fall auf der sichern Seite.
Die LEDs sind als Matrix verschaltet. Bei dieser Verschaltung ist es nicht möglich, mehr als eine LED gleichzeitig definiert anzusteuern. Wenn man auf dieser Matrix beliebige Zeichen darstellen möchte, müssen die LEDs gemultiplext werden. Hierbei werden alle 64 LEDs in einem bestimmten Zeitfenster nacheinander angesteuert. Setzt man das Zeitfenster z.B. auf eine Millisekunde, wird jede LED 15,625 Mikrosekunden lang angesteuert. Innerhalb dieser 15,625 usec kann die LED entweder an oder aus sein. Zu jeder anderen Zeit innerhalb des Zeitfensters ist die LED aus. Deshalb spielt es dann auch keine Rolle, wieviele LEDs an sein sollen, die Helligkeit aller LEDs erscheint immer gleich.
Hierzu ist auch keine ultrahelle Leuchtstärke der LEDs erforderlich, es geht ja nur um eine Anzeige, nicht um eine Beleuchtung.
Ähnliche Schaltungen habe ich schon vor über 20 Jahren aufgebaut, damals noch mit selbstgebautem Einplatinencomputer mit 6809 Prozessor und entsprechenden I/O-Ports, programmiert in Assembler. Damals konnte man froh sein, wenn man LEDs mit 2 mcd hatte, funktioniert hats trotzdem.
Deine Erklärung ist nicht ganz richtig. Die 35 mA je Ausgang hast Du aus den Absolute Maximum Ratings. Diese Parameter haben aber nichts mit dem realen Betrieb zu tun. Zur Dimensionierung im realen Betrieb sind die Parameter unter DC Specifications auf Seite 5 maßgebend. Die Spannungswerte die ich in meiner Widerstandsberechnung verwendet habe findest Du als VOH und VOL unter den Betriebsbedingungen VCC=4,5 V und I=6mA. Bei 5 V wären diese Werte natürlich eine Idee höher, aber so ist man auf jeden Fall auf der sichern Seite.
Die LEDs sind als Matrix verschaltet. Bei dieser Verschaltung ist es nicht möglich, mehr als eine LED gleichzeitig definiert anzusteuern. Wenn man auf dieser Matrix beliebige Zeichen darstellen möchte, müssen die LEDs gemultiplext werden. Hierbei werden alle 64 LEDs in einem bestimmten Zeitfenster nacheinander angesteuert. Setzt man das Zeitfenster z.B. auf eine Millisekunde, wird jede LED 15,625 Mikrosekunden lang angesteuert. Innerhalb dieser 15,625 usec kann die LED entweder an oder aus sein. Zu jeder anderen Zeit innerhalb des Zeitfensters ist die LED aus. Deshalb spielt es dann auch keine Rolle, wieviele LEDs an sein sollen, die Helligkeit aller LEDs erscheint immer gleich.
Hierzu ist auch keine ultrahelle Leuchtstärke der LEDs erforderlich, es geht ja nur um eine Anzeige, nicht um eine Beleuchtung.
Ähnliche Schaltungen habe ich schon vor über 20 Jahren aufgebaut, damals noch mit selbstgebautem Einplatinencomputer mit 6809 Prozessor und entsprechenden I/O-Ports, programmiert in Assembler. Damals konnte man froh sein, wenn man LEDs mit 2 mcd hatte, funktioniert hats trotzdem.
- Achim H
- Star-Admin

- Beiträge: 13067
- Registriert: Mi, 14.11.07, 02:14
- Wohnort: Herdecke (NRW)
- Kontaktdaten:
Das stimmt allerdings.Die LEDs sind als Matrix verschaltet. Bei dieser Verschaltung ist es nicht möglich, mehr als eine LED gleichzeitig definiert anzusteuern.
Ist das denn das, was MeineKekse vorhat? Diese Annahme habe ich bisher nur von Dir und von CRI 93+ / Ra 93+ gelesen.Wenn man auf dieser Matrix beliebige Zeichen darstellen möchte, müssen die LEDs gemultiplext werden.
Ein Schieberegister schiebt mit jedem Takt aber immer nur 1 weiter. Wenn die Informationen für die beiden 74HC595 seriell als ein 16 Bit Datenwort übertragen werden und die Matrix 8 Zeilen + 8 Spalten hat, müssen in Summe 128 Bit gesendet werden, um 64 össelige Leds anzusteuern.
Geht das nicht auch einfacher?
Wenn LEDs als Matrix verschaltet werden, kann nur Multiplexen Sinn machen. Ansonsten hätte man kein Anzeigeelement, sondern eine Effektbeleuchtung, sprich 8fach-Lichterkette.
Was die Ansteuerung betrifft: es ist sogar noch viel schlimmer. Wenn Du in die Register ein 16-Bit-Datenwort geschrieben hast, hast Du genau eine LED addressiert. Um alle LEDs einer 8x8-Matrix auch nur ein einziges mal anzusteuern, sind 8 x 8 x 16 = 1024 Bit nötig.
Und zur letzten Frage: Nein, das ist schaltungstechnisch die Minimallösung. Software, also die Ansteuerung kostet praktisch nichts, Hardware schon.
Was die Ansteuerung betrifft: es ist sogar noch viel schlimmer. Wenn Du in die Register ein 16-Bit-Datenwort geschrieben hast, hast Du genau eine LED addressiert. Um alle LEDs einer 8x8-Matrix auch nur ein einziges mal anzusteuern, sind 8 x 8 x 16 = 1024 Bit nötig.
Und zur letzten Frage: Nein, das ist schaltungstechnisch die Minimallösung. Software, also die Ansteuerung kostet praktisch nichts, Hardware schon.
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
Also vielen Dank für die ganze Mühe.
Also ich erkläre mein Projekt noch mal ein wenig genauer. Ich bin Schüler in der 11ten Klasse und habe als Seminarfach Technische Informatik gewählt.
Mein Projekt, mit einem Partner zusammen, wird sein, dass ich vier 8*8 LED Matrix bauen werden und diese mit einem Arduino steuern möchte. Möglich wäre auch 2 Arduinos zu benutzen, dazu müssten diese allerdings untereinander kommunizieren.
Wir werden dann ca 3 Taster an den Arduino anschließen und ein Spiel programmieren. Erst etwas einfaches wie zum Beispiel ein Spiel , wo mann einfach "Punkten" ausweichen muss. Wenn wir dies geschaftt haben wollen wir Tetris darauf programmieren, was wahrscheinlich multiplexing fordert.
Wenn ihr noch weiter Fragen bezüglich meines Projektes habt dann stellt sie einfach.
Mein momentanen Probleme sind:
1. Welche LEDs
Ich habe durch den Tipp von ustoni diese im Auge.
http://www.leds.de/Standard-LEDs/LEDs-3 ... -2-1V.html
2. Wie groß mein Vorwiederstand sein soll
Mir wurdes dies gesagt und von meinem Lehrer bestätig. Vielen Dank dafür.
Die Frage ist warum sollte dies nicht fürs Multiplexen gelten?
Zur Berechnung des Widerstandes: bei einer Betriebsspannung von 5 V können die Ausgänge der ICs maximal 6 mA liefern, und zwar sowohl im HIGH als auch im LOW-Zustand. Der HIGH-Pegel liegt in diesem Fall bei 4,13 V, der Low-Pegel bei 0,33 V. Um eine LED leuchten zu lassen, muss die Anode auf HIGH, die Kathode gleichzeitig auf LOW liegen. Daraus ergibt sich eine verfügbare Potentialdifferenz von 4,13 V - 0,33 V = 3,8 V. Hiervon muss die LED-Spannung abgezogen werden: 3,8 V - 2,2 V = 1,6 V
Der Widerstand muss jetzt so bemessen werden, dass bei einer Spannung von 1,6 V ein Strom von 6 mA fließt. Gemäß Ohmschen Gesetz gilt: R = U / I = 1,6 V / 0,006 A = 266,7 Ohm. Der nächstgrößere Normwert ist 270 Ohm, das ergibt dann einen LED-Strom von 5,9 mA.
3. Wiesoe brauch ich den 595 32 mal?
Zuletzt will ich noch schreiben, wie auch bereit erwähnts, dass ein wenig problembehaftet Software- Lösung mir lieber ist als teuere Hardware, da ich ja ein Schüler bin.
Ich werde mich noch mal ranmachen einen Schaltplan mit mehr Detail zu erstellen, wird wahrscheinlich heute abend noch fertig.
Also ich erkläre mein Projekt noch mal ein wenig genauer. Ich bin Schüler in der 11ten Klasse und habe als Seminarfach Technische Informatik gewählt.
Mein Projekt, mit einem Partner zusammen, wird sein, dass ich vier 8*8 LED Matrix bauen werden und diese mit einem Arduino steuern möchte. Möglich wäre auch 2 Arduinos zu benutzen, dazu müssten diese allerdings untereinander kommunizieren.
Wir werden dann ca 3 Taster an den Arduino anschließen und ein Spiel programmieren. Erst etwas einfaches wie zum Beispiel ein Spiel , wo mann einfach "Punkten" ausweichen muss. Wenn wir dies geschaftt haben wollen wir Tetris darauf programmieren, was wahrscheinlich multiplexing fordert.
Wenn ihr noch weiter Fragen bezüglich meines Projektes habt dann stellt sie einfach.
Mein momentanen Probleme sind:
1. Welche LEDs
Ich habe durch den Tipp von ustoni diese im Auge.
http://www.leds.de/Standard-LEDs/LEDs-3 ... -2-1V.html
2. Wie groß mein Vorwiederstand sein soll
Mir wurdes dies gesagt und von meinem Lehrer bestätig. Vielen Dank dafür.
Die Frage ist warum sollte dies nicht fürs Multiplexen gelten?
Zur Berechnung des Widerstandes: bei einer Betriebsspannung von 5 V können die Ausgänge der ICs maximal 6 mA liefern, und zwar sowohl im HIGH als auch im LOW-Zustand. Der HIGH-Pegel liegt in diesem Fall bei 4,13 V, der Low-Pegel bei 0,33 V. Um eine LED leuchten zu lassen, muss die Anode auf HIGH, die Kathode gleichzeitig auf LOW liegen. Daraus ergibt sich eine verfügbare Potentialdifferenz von 4,13 V - 0,33 V = 3,8 V. Hiervon muss die LED-Spannung abgezogen werden: 3,8 V - 2,2 V = 1,6 V
Der Widerstand muss jetzt so bemessen werden, dass bei einer Spannung von 1,6 V ein Strom von 6 mA fließt. Gemäß Ohmschen Gesetz gilt: R = U / I = 1,6 V / 0,006 A = 266,7 Ohm. Der nächstgrößere Normwert ist 270 Ohm, das ergibt dann einen LED-Strom von 5,9 mA.
3. Wiesoe brauch ich den 595 32 mal?
Ich will doch nur alle 8 LEDs an einen Ausgang verbinden und 3 Pins für jede 8*8 Matrix verwenden, wieviele brauche ich dann.(Im anhang noch mal ein Schaltplan.)Sprich wenn du für jede LED auch ein Schieberegister Ausgang nimmst, für 4* 8x8 brauchst du dann 32 Mal den 595.
Zuletzt will ich noch schreiben, wie auch bereit erwähnts, dass ein wenig problembehaftet Software- Lösung mir lieber ist als teuere Hardware, da ich ja ein Schüler bin.
Ich werde mich noch mal ranmachen einen Schaltplan mit mehr Detail zu erstellen, wird wahrscheinlich heute abend noch fertig.
- Achim H
- Star-Admin

- Beiträge: 13067
- Registriert: Mi, 14.11.07, 02:14
- Wohnort: Herdecke (NRW)
- Kontaktdaten:
Aus meinem Verständnis heraus würden 8 ICs notwenig sein: 1 IC für die Spalten und 1 IC für die Zeilen. Da Du aber nicht nur 1 Brett mit 64 Leds ansteuern willst, sondern 4, das Ganze dann 4x.3. Wiesoe brauch ich den 595 32 mal?Ich will doch nur alle 8 LEDs an einen Ausgang verbinden und 3 Pins für jede 8*8 Matrix verwenden, wieviele brauche ich dann.(Im anhang noch mal ein Schaltplan.)Sprich wenn du für jede LED auch ein Schieberegister Ausgang nimmst, für 4* 8x8 brauchst du dann 32 Mal den 595.
1 + 1 = 2
2 x 4 = 8
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
Naja ich möchte ja aber pro LED Matrix nur 3 Pins am Arduino benutzen. Brauch ich dann nicht 3 IC für jede Matrix, also 12 insgesamt?Aus meinem Verständnis heraus würden 8 ICs notwenig sein: 1 IC für die Spalten und 1 IC für die Zeilen. Da Du aber nicht nur 1 Brett mit 64 Leds ansteuern willst, sondern 4, das Ganze dann 4x.
1 + 1 = 2
2 x 4 = 8
- Achim H
- Star-Admin

- Beiträge: 13067
- Registriert: Mi, 14.11.07, 02:14
- Wohnort: Herdecke (NRW)
- Kontaktdaten:
Ich denke, man kriegt das sogar mit nur 4 ICs (16 Spalten + 16 Zeilen) hin.
Ich bin allerdings kein Informatiker, daher sind meine Denkweisen möglicherweise falsch und meine Antworten sollten daher mit Vorsicht betrachtet werden.
Um die 4 ICs anzusteuern braucht man 12 Leitungen.
Leitung --> Funktion
01 --> seriell. Da alle ICs auch einen seriellen Ausgang besitzen, brauchen die 4 ICs doch nur in Reihe geschaltet werden. Das Datenwort muss dann allerdings 32 Bit lang sein.
02 --> Clock
03 --> Storage Register Clock Input Nr. 1
04 --> Storage Register Clock Input Nr. 2
05 --> Storage Register Clock Input Nr. 3
06 --> Storage Register Clock Input Nr. 4
07 --> Output Enable Input Nr. 1
08 --> Output Enable Input Nr. 2
09 --> Output Enable Input Nr. 3
10 --> Output Enable Input Nr. 4
11 --> +5V
12 --> GND
Storage Register Clear braucht man nicht (denke ich). Wenn das nächste 32 Bit Datenwort gesendet wird, wird die alte Information automatisch rausgeschoben.
Ich bin allerdings kein Informatiker, daher sind meine Denkweisen möglicherweise falsch und meine Antworten sollten daher mit Vorsicht betrachtet werden.
Um die 4 ICs anzusteuern braucht man 12 Leitungen.
Leitung --> Funktion
01 --> seriell. Da alle ICs auch einen seriellen Ausgang besitzen, brauchen die 4 ICs doch nur in Reihe geschaltet werden. Das Datenwort muss dann allerdings 32 Bit lang sein.
02 --> Clock
03 --> Storage Register Clock Input Nr. 1
04 --> Storage Register Clock Input Nr. 2
05 --> Storage Register Clock Input Nr. 3
06 --> Storage Register Clock Input Nr. 4
07 --> Output Enable Input Nr. 1
08 --> Output Enable Input Nr. 2
09 --> Output Enable Input Nr. 3
10 --> Output Enable Input Nr. 4
11 --> +5V
12 --> GND
Storage Register Clear braucht man nicht (denke ich). Wenn das nächste 32 Bit Datenwort gesendet wird, wird die alte Information automatisch rausgeschoben.
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
Also ich habe mal einen Schaltplan für eine 8*8 LED Matrix erstellt.
Dazu noch ein paar Fragen, wo wird Ground angeschlossen. Ist das einfach ein Kontakt zur Erden. Und woher bekomme ich die 5 Volt von einer externen Spannungswuelle oder dem Arduino?
Und meine Hauptfrage funktioniert das ganze so ?
Dazu noch ein paar Fragen, wo wird Ground angeschlossen. Ist das einfach ein Kontakt zur Erden. Und woher bekomme ich die 5 Volt von einer externen Spannungswuelle oder dem Arduino?
Und meine Hauptfrage funktioniert das ganze so ?
Mit 16 Zeilen und Spalten wird das sicherlich funktinieren. Da ich aber 4 8*8 Matrizen baue nicht da ich dann ja sozusagen 32 Zeilen und 32 Spalten hätte ginge es mit minimal 8 oder ?Ich denke, man kriegt das sogar mit nur 4 ICs (16 Spalten + 16 Zeilen) hin.
-
MeineKekse
- Super-User

- Beiträge: 72
- Registriert: Mi, 05.10.11, 17:31
Ich kann doch mit folgendem Netzteil den Arduino versorgen oder?
http://www.leds.de/LED-Zubehoer/Strom-u ... xid-2.html
http://www.leds.de/LED-Zubehoer/Strom-u ... xid-2.html

