PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Flip-Flop



Das Quadrom
01.06.2011, 16:37
Hallo zusammen!

Ich bin neu hier und habe gleich etwas Kompliziertes vor. Kennt sich jemand mit RS-Flip-Flops aus?

Es gibt viele Multiplexer (wie der C-MOS IC 4051 DIP (http://circuits.datasheetdir.com/168/MAX4051-pinout.jpg)), mit denen man durch nur 3 (Binär-)Eingänge ganze 8 Ausgänge ansteuern kann. Der Nachteil dabei ist, dass immer nur durch einen der 8 Ausgänge zur selben Zeit Strom fließen kann. Ich möchte allerdings alle 8 Ausgänge gleichzeitig in Betrieb nehmen können.

Beispiel mit acht LEDs:
Multiplexer am Arduino (http://img442.imageshack.us/img442/1442/4051mehreremultiplexer.jpg)
Immer nur eine der acht LEDs leuchtet. Um fürs menschliche Auge scheinbar alle LEDs gleichzeitig aufleuchten zu lassen, muss in wenigen Millisekunden reihum jede LED kurz aufblitzen. Sie wird dabei leider nur ein achtel so hell wahrgenommen. Da ich mit mehreren Multiplexer hintereinander (http://tomekness.files.wordpress.com/2007/05/4051_examples_72dpi.jpg) arbeite, ist das für mich keine Option mehr (wegen einer Leuchtkraft von nur 1/64 der Originalkraft).

Meine Idee: An jedem der 8 Ausgangskanäle möchte ich einen bestimmten Flip-Flop anschließen, der wie ein Stromstoßschalter (Bistabiles Relais) fungiert. Der Flip-Flop soll ab dem kurzen Zeitpunkt wo durch den Kanal Strom fließt so lange einen Stromkreis aufrechterhalten bis ein erneuter Stromschub erfolgt. So könnte ich alle 8 LEDs tatsächlich gleichzeitig betreiben.
Mit welchem RS-FlipFlop ist das möglich? Wie muss ich ihn anschließen? Bei Conradt meinten Sie, ich solle es mit einem JK-Flip-Flop versuchen...

Vielen Dank schon im Voraus für eure Hilfe!

Viele Grüße

Quadrom

Besserwessi
01.06.2011, 16:50
Die etwas einfachere Lösung für 8 LEBs wäre ein Schieberegister IC wie 74HC595. Unter Porterweiterung ist das im RN-Wissen ganz gut beschrieben. Mit 3 Leitungen kann man da mit einem IC 8 LEDs ansteuern und ggf. auch noch ein paar mehr der ICs hintereinanderschalten. Die Ansteuerung kann z.B. über das SPI Interface des µC erfolgen ist damit auch recht schnell und einfach zu programmieren.

Bei sehr vielen LEDs bietet sich sonst auch noch eine LED Matrix an. Auch dazu gibt es was im RN-Wissen unter 7-Segmentanzeigen.

BMS
01.06.2011, 17:29
Hallo,
falls es unbedingt Flip-Flops sein müssen: entweder T-Flip-Flops (T steht für "Toggle"=umschalten) oder JK-Flipflops, bei dem du den J und K-Eingang miteinander verbindest (JK steht für Jump-Kill). Würde aber recht aufwändig werden, da du den Multiplexer sowie 8 Flipflops (meist sind 4 in einem IC) brauchst. Das wären 3 ICs.
Sonst: wie von Besserwessi vorgeschlagen, das Schieberegister verwenden, oder du nimmst eine Porterweiterung über I2C, z.B. PCF8574.
Grüße,
Bernhard

EDIT: Außerdem müsste sich bei der Flipflop-Variante der Mikrocontroller stets merken, welchen Ausgangszustand die FF haben, außerdem wie siehts aus mit dem Anfangszustand der FF beim Einschalten. Ist das definiert oder zufällig? Dann bräuchte man noch eine Reset-Leitung.

Das Quadrom
01.06.2011, 17:47
Danke für deine Antwort. Einen Multiplexer wie den vorgeschlagenen "IC 74HC595" möchte ich auf jeden Fall nehmen für die acht LEDs.
Nur um das oben beschriebene Problem mit der geringen Helligkeit zu vermeiden, möchte ich zusätzlich zwischen Multiplexer und LED jeweils einen weiteren Flip-Flop einbauen um alle 8 LEDs gleichzeitig in maximaler Helligkeit leuchten zu lassen. (Ich werde deshalb 8 zusätzliche Stromkreise für die LEDs installieren).

Eine LED Matrix kommt für meine Zwecke leider nicht infrage, da ich so etwas Ähnliches wie einen LED-Ventilator (http://www.zie.nl/profile/Maciver/opmerkelijk/Moderne-klok/m1gz4lxfi0ab) baue. Außerdem ist nicht die Ansteuerung der vielen LEDs mein Problem, sondern dass ich nur 54 Ausgänge auf dem Arduino MEGA (http://www.watterott.com/de/Arduino-Mega-2560) habe. Dafür nehme ich aber Multiplexer, was mich zu dem oben beschriebenen Problem führt.

EDIT: Gibt es nicht bei dem "Schieberegister IC wie 74HC595" und bei der "Porterweiterung über I2C, z.B. PCF8574" das selbe Problem wie bei anderen Multiplexer, dass immer nur ein Kanal pro Zeiteinheit angesteuert werden kann?

For example:
If S0 and S1 are HIGH and S2 is LOW pin y3 is selected (1+2+0 = 3).
If S0 and S2 is HIGH and S1 LOW pin y5 is selected (1+0+4 = 5).
It is not possible to read or write more than one pin on the 4051 at the same time, because you can only select one pin at a time. But you can read and write to the pins quite fast.
http://www.arduino.cc/playground/Learning/4051

Besserwessi
01.06.2011, 18:14
Für die Anwendung wird man vermultlich sogar mehr als die sonst üblichen 20 mA pro LED brauchen. Auch wird da die Geschwindigkeit des Zugriffs hoch sein müssen - deshalb fällt die LED Matrix wirklich aus. Das Schieberegister (über Hardware SPI angesteuert) sollte noch gehen - sonst halt ein µC mit mehr Pins und dann doch je LED ein IO Pin. Ggf. halt sogar mehr als ein µC.

Wenn man am 75HC595 8 LEDs mit knapp 20 mA Strom betreiben will, muss die Hälfte gegen GND und die Hälfte gegen VCC geschaltet werden - damit umgeht man das Limit von 70 mA für die VCC und GND-anschlüsse. Von TI gibt es auch eine ähnliche Version mit stärkeren internen Treibern.

Das Quadrom
01.06.2011, 23:50
Hey Besserwessi, vielen Dank schon mal! Entschuldigung, aber wie meinst du das: "Das Schieberegister (über Hardware SPI angesteuert) sollte noch gehen"? Ich kenne mich noch nicht so aus. Was ist ein SPI (wo gibt es den käuflich zu erwerben) und lässt sich der Schieberegler dann auch so nutzen, dass nicht nur ein Ausgang pro Binärcode angeteuert wird (z.B. bei allen drei Eingängen aktiv 1+2+4 = nur Kanal 7) sondern alle 8 Kanäle gleichzeitig? :confused:
Wenn du mit "µC" Mikrocontroller wie das Arduino meinst, dann habe ich leider noch kein geeignetes Gerät mit genügend Ausgängen gefunden. Ich möchte um die 1000 LEDs ansteuern.
Was ist denn ein IO Pin? Sry bin echt ein Neuling.
Eigentlich wollte ich mit 5V und ausschließlich mit Batterien arbeiten.

Lieber Bernhard, wenn ich mich für was Günstiges wie den Flip Flop JK-Type Pos-Edge Dual 16-Pin (http://www.mercateo.com/p/108A-662(2d)8086P/Flip_Flop_JK_Type_Pos_Edge_Dual_16_Pin_Herst_Teile _Nr_SN74HC109DRG4.html?showSimplePage=NO&utm_source=product-search&utm_medium=web&utm_campaign=74HC) entscheide, bräuchte ich dann zwei oder sogar vier von denen für die acht LEDs? (Um aus drei Kanälen acht zu machen nehme ich zusätzlich noch einen nicht inbegriffenen RS-Flip-Flop).
Eine Reset-Leitung wäre eh ziemlich hilfreich auch fürs Programmieren. Dann müsste ich jede Rotorstellung nur das gezielte Anmachen der LEDs einberechnen wenn im Takt regelmäßig resettet wird - und nicht noch das Ausmachen. Wie lässt sich so eine Reset-Leitung am einfachsten anschließen? Muss ich jeden Flip-Flop an einen einzelnen Resetkreis anschließen?

Thx schon mal!

Richard
02.06.2011, 06:12
Für die Anwendung wird man vermultlich sogar mehr als die sonst üblichen 20 mA pro LED brauchen.

Womit eigentlich schon alles erledigt sein dürfte. :-) Gepulste LED's können je nach Pulslänge/Zeit auch mal mit einigen A betrieben werden. Allerdings muss das (Zeit/A) dann auch sicher gestellt sein oder die LED's fackeln ab. :-(

Gruß Richard

Richard
02.06.2011, 07:13
Ich möchte um die 1000 LEDs ansteuern.
Was ist denn ein IO Pin? Sry bin echt ein Neuling.
Eigentlich wollte ich mit 5V und ausschließlich mit Batterien arbeiten.



1000 x 0,02 A = 20A was für Batterien willst Du da nehmen.....I/O steht für IN (Eingang) OUT (Ausgang) und einen µC mit 1000 I/O Pins (Anschlüssen) wirst Du nicht finden! Aber es gibt spezielle Bausteine IC's welche 256 RGB = 3 Farben LED's ansteuern können wobei die Helligkeit jeder LED programmiert werden kann. Leider habe ich vergessen wie die Teile genannt werden, war hier aber vor kurzem im Forum (wo?) zu lesen. Ob ein Anfänger solche Bauteile noch Löten kann? Mit Schieberegister als Matix angeortnet kann man so etwas bauen, die Reset Anschlüsse z.B. bekommen alle (eine) gemeinsame Leitung ist also nicht so aufwändig. √1000 = ca 32 8 Bit Schieberegister sollten reichen, aber das wird eine Menge Arbeit.......Google "LED matrix treiber" hilft sicher auch. :-)

Gruß Richard

Besserwessi
02.06.2011, 08:33
@Richard:
So viel höher als den Nennstrom von 20 mA kann man bei den meisten LEDs auch nicht gehen. Bei den meisten LEDs geht es noch ganz gut bis zum etwa 10 fachen Strom (also 200 mA) - darüber ist nur noch bei sehr kurzen Pulsen und sehr geringem Tastverhältnis möglich. Um bei sehr vielen ( z.B. 1000) LEDs noch genug Helligkeit zu bekommen kann man die also nur in Gruppen bis vielleicht 10, höchstens 20 Ansteuern. Von 1000 LEDS sind dann immer 100 zur gleichen Zeit Ausgewählt. Als Matrix braucht man dazu auch schon 100 Ausgänger für z.B. 100 mA und 10 Ausgänge für 10 A.
Als Neuling sollte man auch eher kleiner Anfangen, z.B. mit 25 oder 64 LEDs - das bleibt auch finanziell noch im Rahmen. Bei einer 5x5 Matix geben 20 mA an Strom auch noch eine Annehmbare Helligkeit. So sind dann Software Fehler nicht mehr schädlich für die Hardware und es wird vom Aufbau deutlich einfacher.

@Das Quadrom:
SPI ist eine Schnittstelle, die eigentlich alle der AVR µCs (und fast alle anderen µCs) haben. Die Schnittstelle kann man aber auch einfach in Software realisieren. In der Regel sind die PINs für SPI mit Hardware Unterstützung beim den AVRs die Pins für den Programmieranschluss (ISP). Es macht aber in der Regel nichts wenn da auch noch die zusätzlichen eigenen Schieberegister dran hängen. Es ist auch möglich die Schaltung einfach an den ISP Stecker anzuschließen - man muss dann nur zum Programmieren umstecken.

Das Schieberegister (74HC595) verhält sich dann ähnlich wie zusätzliche Anschlüsse am µC. Man kann da also an den 8 Ausgängen beliebige Kombinationen ausgeben, also auch mehrere LEDs. Einfach unter http://www.rn-wissen.de/index.php/Portexpander_am_AVR nachlesen. Das Schieberegister ist etwas anderes als eine Multiplexer.

Klebwax
02.06.2011, 10:43
Meine Idee: An jedem der 8 Ausgangskanäle möchte ich einen bestimmten Flip-Flop anschließen, der wie ein Stromstoßschalter (Bistabiles Relais) fungiert. Der Flip-Flop soll ab dem kurzen Zeitpunkt wo durch den Kanal Strom fließt so lange einen Stromkreis aufrechterhalten bis ein erneuter Stromschub erfolgt. So könnte ich alle 8 LEDs tatsächlich gleichzeitig betreiben.
Mit welchem RS-FlipFlop ist das möglich? Wie muss ich ihn anschließen? Bei Conradt meinten Sie, ich solle es mit einem JK-Flip-Flop versuchen...

Könnte ein HC(T)259 "8-bit addressable latch" hier passen?

MfG Klebwax

Das Quadrom
02.06.2011, 16:36
Jetzt so langsam verstehe ich einige Dinge^^


Mit 3 Leitungen kann man da mit einem IC 8 LEDs ansteuern und ggf. auch noch ein paar mehr der ICs hintereinanderschalten. Die Ansteuerung kann z.B. über das SPI Interface des µC erfolgen ist damit auch recht schnell und einfach zu programmieren.

SPI ist eine Schnittstelle [...] Es macht aber in der Regel nichts wenn da auch noch die zusätzlichen eigenen Schieberegister dran hängen. Es ist auch möglich die Schaltung einfach an den ISP Stecker anzuschließen - man muss dann nur zum Programmieren umstecken.
Super =) Ich möchte die ICs wie im linken Bild hintereinanderschalten: http://tomekness.files.wordpress.com/2007/05/4051_examples_72dpi.jpg
Inwiefern bringt mir das "SPI Interface" einen Vorteil? Es geht doch auch ohne, oder?


Wenn man am 75HC595 8 LEDs mit knapp 20 mA Strom betreiben will, muss die Hälfte gegen GND und die Hälfte gegen VCC geschaltet werden - damit umgeht man das Limit von 70 mA für die VCC und GND-anschlüsse. Von TI gibt es auch eine ähnliche Version mit stärkeren internen Treibern.Ui, das habe ich noch nicht so ganz verstanden. Gibt es einen Schaltplan für den IC 74HC595? Hier komme ich ganz durcheinander: http://www.rn-wissen.de/images/5/59/Portexpander_74595_an_AVR.png
Wie ist es eigentlich bei so vielen LEDs; kann ich die ICs an den Arduino-µC anschließen und die LEDs an eine externe Quelle? Oder packt es das Arduino auch alleine?


Mit Schieberegister als Matix angeortnet kann man so etwas bauen, die Reset Anschlüsse z.B. bekommen alle (eine) gemeinsame Leitung ist also nicht so aufwändig. √1000 = ca 32 8 Bit Schieberegister sollten reichen, aber das wird eine Menge Arbeit.......Google "LED matrix treiber" hilft sicher auch. :-)

Gruß RichardIch bin auch noch ein Programmier-Neuling - Sry ;-). In unserem Seminar arbeiten wir mit Arduino. Für mich logischer nachzuvollziehen ist die Programmierung für die Schaltung im linken Bild (http://tomekness.files.wordpress.com/2007/05/4051_examples_72dpi.jpg).
Empfiehlst du trotzdem die LED Matrix wie im rechten Bild (http://tomekness.files.wordpress.com/2007/05/4051_examples_72dpi.jpg)? Hat sie auch keinen Interrupt-Programmier-Nachteil? Ich habe von den ganzen Treibern null Ahnung, da ich nur erste Grundkenntnisse in Arduino und Processing habe...


Als Neuling sollte man auch eher kleiner Anfangen, z.B. mit 25 oder 64 LEDs - das bleibt auch finanziell noch im Rahmen.Meine Idee lässt sich leider nur mit vielen LEDs realisieren. Es handelt sich um einen 360°-Bildschirm. Doch ich möchte testweise erstmal mit einer kleinen Menge anfangen und es aber dann erweitern.


Könnte ein HC(T)259 "8-bit addressable latch" hier passen?

MfG Klebwax

Was ist denn besser: "8-bit addressable latch" oder "IC 74HC595D"?

Ich wundere mich über die hohen Preisspannen vor allem bei den Latchs und auch den IC 74HC595 z.B. zwischen 84 Cent (http://www.mercateo.com/p/139-1201269/74HC_CMOS_SMD_74HC595_SOIC16_Typ_74HC595D.html?sho wSimplePage=NO&utm_source=product-search&utm_medium=web&utm_campaign=74HC) und 11 Cent (http://www.karo-electronics.de/shop/product_info.php?products_id=2102). Gibts auch welche die ich aus irgendwelchen Gründen nicht nehmen darf? Sonst kaufe ich mir einfach die billigsten.

Besserwessi
02.06.2011, 18:01
Für die Programmierung ist das Schieberegister einfacher. Als etwa gleichwertige (bei langen Leitungen sogar eher besser, aber wohl schwächere Ausgänge) Alternative gibt es noch 74HC4094.
Es gibt die ICs in 2 Verschiedenen Gehäusen (SMD oder DIP) da muss man halt wissen was man haben will. Dann gibt es noch die verschiedenen Ausführungen hinsichtlich Geschwindigkeit und Stromverbrauch, da kommen eingentlich nur HC oder HCT in Frage, das sollten aber ohnhine die gängigsten und günstigsten sein. 74AC... oder 74VHC... sind unnötig schnell und damit eher störempfindlicher dafür haben die ggf. minimal stärkere Ausgänge. Die alten TTL Familien wie LS, S, F brauchen einfach zu viel Strom - ob es da den 595 überhaupt gibt weiss ich nicht.

Das Hardware SPI Interface hat den Vorteil, das das Programm da schneller die Daten rüber schicken kann. an einem beliebigen Pin per Software dauert das etwa 3-10 mal länger (je nach Sprache).

Den extra Multiplexer zu den Schieberegistern braucht man eigentlich nicht. Also mehr die Schaltung vom unteren Plan. Dabei kann man R2 und R3 in der Regel auch weglassen, eher schon Widerstände in die Leitungen zu den Schieberegistern (s.u.). Die LEDs kommen dann an die Ausgänge, je 4 mal mit Widerstand nach GND und 4 mal mit Widerstand nach VCC. Damit verteilt sich der Strom auf die VCC und GND Pins und man kann fast 20 mA je Pin nutzen. Die eine Hälfte der LEDs leuchten dann aber bei einer 1 die andere Hälfte bei einer 0.

Wie die Stromversorgung beim Arduino aussieht, kann ich nicht sagen. Für 20 LEDs sind das aber auch nur rund 400 mA, bei 20 mA je LED. Man kann eine eigene Stromversorgung nehmen. Dann sollten aber zwischen µC und die Schieberegister ein paar Widerstände (z.B. 330 Ohm) für den Fall das die Versorgung der Schieberegister nicht aktiv ist wenn der µC läuft.

Richard
03.06.2011, 11:10
Wie die Stromversorgung beim Arduino aussieht, kann ich nicht sagen. Für 20 LEDs sind das aber auch nur rund 400 mA, bei 20 mA je LED. Man kann eine eigene Stromversorgung nehmen. Dann sollten aber zwischen µC und die Schieberegister ein paar Widerstände (z.B. 330 Ohm) für den Fall das die Versorgung der Schieberegister nicht aktiv ist wenn der µC läuft.

Was mich hier schon immer etwas verwundert, das üblicher Weise immer noch 20 mA Typen eingesetzt werden? Zugegeben die 2 mA Typen sind teurer aber der geringe Strom Verbrauch zahlt sich doch schnell aus. Es ist doch ein Unterschied ob man eine oder 10 LED's pro Pin Treiben kann. Zugegeben, ich musste im Beruf keine LED's selber bezahlen und habe daher schon seit zig Jahren nur 2 mA Typen eingesetzt. Die dafür nötigen Treiber danken es durch lange Haltbarkeit und geringem Strom Verbrauch.

Gruß Richard

Das Quadrom
03.06.2011, 17:47
@Besserwessi
Vielen Dank für deine Wissensvermittlung!
Ich habe mich entschieden zunächst ohne das Hardware SPI Interface zu arbeiten, weil die Zeit langsam drängt und für mich die Einarbeitung in dieses Neuland eine zu große Hürde ist.

Ich möchte mir mal einen Schaltplan malen. Wie schließe ich die IC's überhaupt an meinen Arduino-µC ohne SPI? Pin 10 an den 5-Volt-Ausgang und Pin 13 an den Ground? Was ist mit den restlichen Pins 11 - 16? Was sind "SS, MOSI, MISO, SCK" links im oberen Bild (http://www.rn-wissen.de/images/5/59/Portexpander_74595_an_AVR.png) für Anschlüsse? Die sehe ich auf meinem Arduino nicht; sind das SPI-Anschlüsse?
Ohje, auf dem folgenden Bild sind auch noch die Pins ganz anders verteilt z.B. 8 GND und 16 VCC:
http://circuits.datasheetdir.com/188/74HCT595-pinout.jpg

Vielen Dank für deine Geduld bisher! Hoffentlich überreize ich sie nicht! ;-)


Den extra Multiplexer zu den Schieberegistern braucht man eigentlich nicht. Also mehr die Schaltung vom unteren Plan. Dabei kann man R2 und R3 in der Regel auch weglassen, eher schon Widerstände in die Leitungen zu den Schieberegistern (s.u.).
Man kann eine eigene Stromversorgung nehmen. Dann sollten aber zwischen µC und die Schieberegister ein paar Widerstände (z.B. 330 Ohm) für den Fall das die Versorgung der Schieberegister nicht aktiv ist wenn der µC läuft.Bei 1000 LEDs und nur 54 Ausgängen werde ich eine Menge IC's in ca 50 Reihen nutzen. Kann ich einfach Pin 14 (SER) an Pin 9 (QH*) des nächsten IC's ohne Widerstand löten? Und vor diese Reihe kommt dann ein 330-Ohm-Widerstand?


Die LEDs kommen dann an die Ausgänge, je 4 mal mit Widerstand nach GND und 4 mal mit Widerstand nach VCC. Damit verteilt sich der Strom auf die VCC und GND Pins und man kann fast 20 mA je Pin nutzen.Du meinst den GND und VCC (5 Volt) vom µC, oder? In meinem Fall wäre das der Minus- und Pluspol einer externen Quelle, oder irre ich mich?


Wie die Stromversorgung beim Arduino aussieht, kann ich nicht sagen. Für 20 LEDs sind das aber auch nur rund 400 mA, bei 20 mA je LED.Ich möchte aus optischen Gründen gerne mit 32 LEDs beginnen. Dabei überschreite ich schon die 500 mA Grenze des USB-Ports. Deshalb werde ich mir einen Akku kaufen. Später möchte ich die LEDs in 32er-Blöcken auf eine Anzahl von 1024 ergänzen.


Was mich hier schon immer etwas verwundert, das üblicher Weise immer noch 20 mA Typen eingesetzt werden? Zugegeben die 2 mA Typen sind teurer aber der geringe Strom Verbrauch zahlt sich doch schnell aus.Wie sind denn deine Erfahrungen mit den 2mA-LEDs: sind sie genauso hell wie die 20mA-LEDs?

Richard
03.06.2011, 20:11
Wie sind denn deine Erfahrungen mit den 2mA-LEDs: sind sie genauso hell wie die 20mA-LEDs?

Eher heller, es gibt auch extra superhelle die machen sich gut bei Außenanzeigen und Sonnenschein. :-)

Zum IC, immer schön das Datenblatt beachten, auch wenn das nicht einfach zu lesen ist. Alles Andere nennt sich "Blindflug" und endet meist auch so. :-( Es gibt auch I²C 16 Bit Porterweiterungen damit lassen sich 16 LED's pro IC über einen 2 Drat BUS + Vcc/GND steuern/Programmieren. Mit 8 möglichen Adressen wären das 128 LED's (theoretisch) wie das in der Praxis aussieht ????? Die wollen ja auch adressiert und beschrieben werden was natürlich Zeit kostet...Der Vorteil jede Der 16 Bit Platienen ist gleich, nur die Adresse wird per Dip Schalter zugeordnet. Man kann also mit 16 LED's anfangen und einfach nur die Grundschaltung Kopieren. :-)

http://www.nxp.com/documents/data_sheet/PCA9555.pdf

Gruß Richard



Gruß Richard

Besserwessi
03.06.2011, 20:23
Bei 1000 LEDs würde ich schon über eine Matrix und auch über Effektive LEDs oder ggf. 2 mA LEDs nachdenken. Die 2 mA LEDs sind im Prinzip auch nur etwas effektivere LEDs die nicht unbedingt die sonst üblichen 20 mA aushalten. Es gibt ähnliche LEDs auch in einer Ausführung die bis etwa 20 oder 30 mA spezifiziert sind, da ist man dann auf der sicheren Seite.

Wie viel Strom man für die LEDs braucht hängt auch sehr stark davon ab wie hell es in der Umgebung ist. Das können 20 mA im Freien sein, aber auch 0,1 mA in einem relativ dunklen Raum. Der Unterschied zwischen billigen Funzeln und super hellen LEDs kann auch ähnlich groß sein.

Je nach Strom kann man die Ausgänge der HC595 auch noch für eine Matrix nutzen - da gehen dann aber alle LEDs in die gleiche Richtung und man hat knapp 10 mA als Limit. Wenn man mit 2 mA mittleren Strom Auskommt, reicht das immerhin noch für ein 4 bis 5 faches Multiplexing als LED Matrix. Das Multiplexing geht dann aber nicht über den OE Eingang wie oben links, sondern so wie in der Schaltung oben rechts als Matrix. Dabei werden die gemeinsamen Leitungen aber wohl extra Treiber für mehr Strom brauchen, denn da gehen dann mehr LEDs (z.B. 1/4 der LEDs) ran. Das Multiplexer IC braucht man dagegen bei 4 oder 5 Leitungen nicht unbedingt.

Die Pins SS, MOSI, MISO, SCK sind die für das Hardware SPI Interface. Wobei MOSI, MISO, SCK auch für SPI benötigt wird, und SS ein fast beliebiger IO Pin ist. Wenn man Hardware SPI nicht nutzen will, nimmt man da 3 IO Pins. Das können auch die Pins für Hardware SPI sein. Die kann man auch für die Softwarelösung nutzen. Man legt sich also da noch nicht fest.
Falls der µC noch den TX Pin der USART frei hat, kann man auch die USART als hardware SPI nutzen - das geht ähnlich wie das extra SPI Interface.
Wenn man viele LEDs als Matrix hat, ist es schon hilfreich wenn man da Hardware Unterstüzung hat, man muss die ja nicht gleich nutzen.

Die Belegung des HC595 ist oben schon gezeigt - nur die Versorgung ist weggelassen.

PICture
05.06.2011, 09:25
Hallo!

Die Lösung für Steuern um 1000 LED's ist vor allem von der annehmbarer Zeit fürs Wechseln der allen Zustände abhängig (Taktfrequenz). Am einfachsten zu verkabeln (falls annehmbar), sind kaskadierte Schieberegister, die nur 4 Leitungen benötigen (VCC, GND, Data und Clock). ;)

Richard
06.06.2011, 08:53
Inwiefern bringt mir das "SPI Interface" einen Vorteil? Es geht doch auch ohne, oder?




Weil Du Dich dann nicht um die Hartware/Software Ansteuerung der schnitt stelle kümmern musst. Du sagst der nur was übertragen werden soll. Einn Du das selber Programmieren willst und eine hablwegs flüssige Anzeige haben willst, wirst Du die Datenausgabe in Assembler machen müssen. Was in diesem Fall (wenn man es kann) aber relativ einfach ist. Bei schiebe Registern muss man allerdings immer alle (hier 1000) Stellen neu durch schieben, auch wenn nur LED 955 ihren Zustand ändern soll......Bei z.B. I²C Port expander können die LED's einzeln angesprochen/geändert werden, es mussen also nur die Änderungen gesendet werden.

Gruß Richard

Das Quadrom
11.06.2011, 20:50
Hallo!

Die Lösung für Steuern um 1000 LED's ist vor allem von der annehmbarer Zeit fürs Wechseln der allen Zustände abhängig (Taktfrequenz). Am einfachsten zu verkabeln (falls annehmbar), sind kaskadierte Schieberegister, die nur 4 Leitungen benötigen (VCC, GND, Data und Clock). ;)Hallo
ich war ne Weile off um mich in die Thematik "Kaskadieren" und "ICs" ein wenig einzulesen. Ich versuche es so mit den SN74HC595N umzusetzen, allerdings weiß ich noch nicht wie schnell ich bei dem hohen Stromverbrauch an die Grenzen meines Mikrocontrollers stoße. Ich habe mir jetzt den "Arduino Mega (http://arduino.cc/en/Main/ArduinoBoardMega)" bestellt.
Die ICs zu einer LED-Matrix zu multiplexen, wie zum Beispiel Besserwessi vorgeschlagen hat, kommt für mich leider nicht infrage. Denn meine LEDs werden vielleicht jetzt schon zu dunkel sein - auch für optimale Bedingungen. Denn ich habe vor einen LED-Ventilator zu bauen. Dabei rotiert ein Streifen (zunächst mit 8 LEDs) und soll alle 2 Grad jeweils einen Pixel setzen. Die LEDs werden bei 360°/2 also ca nur 1/180tel so hell erscheinen, wie original! Das ist schon ein natürliches Multiplexing der übelsten Sorte!
Deshalb mache ich mir Gedanken über die maximale Pulsauslastung von den LEDs und vor allem von den ICs! Wie weit kann man mit Mikrocontrollern denn gehen?


Die LEDs kommen dann an die Ausgänge, je 4 mal mit Widerstand nach GND und 4 mal mit Widerstand nach VCC. Damit verteilt sich der Strom auf die VCC und GND Pins und man kann fast 20 mA je Pin nutzen. Die eine Hälfte der LEDs leuchten dann aber bei einer 1 die andere Hälfte bei einer 0.Ich habe mir nun testweise 10 IC SN74HC595N bestellt. Sind die auch speziell was Pulsströme angeht auf 70 mA pro Pol beschränkt? Ich möchte folgende LEDs daran anschließen: http://www.conrad.de/ce/de/product/153392/LED-CHIP-LED-GELB-LYR976-0805/?ref=reco (2V, 20mA, Lichtstärke IV 60mcd, 160°)
Meinst du man kann den SN74HC595N kurzzeitig mit ein wenig mehr Strom durchfluten? Oder gibt es alternative Bauteile, oder irgendwelche Tricks?

Was mich hier schon immer etwas verwundert, das üblicher Weise immer noch 20 mA Typen eingesetzt werden? Zugegeben die 2 mA Typen sind teurer aber der geringe Strom Verbrauch zahlt sich doch schnell aus.Auch wenn ich schon 250 LEDs gekauft habe, suche ich schwer nach neuen 2mA SMD LEDs. Ich vermute dass mir anderes nicht übrig bleibt. Die sind aber gar nicht so leicht zu finden, und bestimmt teurer als meine 5Cent-Dinger.

Besserwessi
11.06.2011, 23:21
Es müssen nicht 2 mA typen sein - die effizienten 20 mA Typen sind bei 2mA fast gleich, teils sogar besser und sind zusätzlich auch für 20mA erlaubt.

Es gibt Bausteine ähnlich den HC595, aber mit mehr Strombelastbarkeit. Ein Beispiel ist TPIC6C595 - ist aber nicht PIN - kompatibel.

Für den rotiernden Streifen wird man um effiziente LEDs nicht herumkommen. Da die LED aber für einen Kreis die ganze Zeit an ist, darf man da nicht über den Dauerstrom gehen. Da wird man also eher helle LEDs, ggf. auch für mehr als 20 mA nehmen müssen, z.B. Osram Power TopLed. Die LEDs sind schon mal 100-1000 fach heller als die billig LEDs.