Hey,
ich versuche gerade einen 3x3x3 Cube zu basteln, aber das ist gar nicht
so leicht. Meine Idee ist es, mit 5 shift-register alle 27 LEDs einzeln
anzusteuern(ich weiß, es geht auch anders, aber ich wollte es mal so
versuchen).
Ich benutze das shift-register M74HC595B1 und habe ein Arduino Uno.
Das Programmieren sollte nicht das Problem sein, aber wie ich die
Hardware jetzt genau Aufbau ist mir noch etwas unklar. Kann das
überhaupt so funktionieren?
Im Datenblatt vom shift-register steht: Icc(supply current) = 70mA.
Bedeutet das, dass ich max. 70mA/8=8,75mA pro Ausgang bekomme für das
erste shiftregister(falls alle LEDs an sind)? Muss ich das durch 8 oder
9 teilen, wenn ich den Pin Q7S auch noch benutzen will?
Beim Arduino Uno steht im Datenblatt beim 3,3V Ausgang: max. Strom liegt
bei 50mA. Das dürfte zu wenig sein, oder?
Den max. Strom bei 5V finde ich leider nicht. Ich bräuchte dann 70mA *
5shift-Register = 350mA. Oder sehe ich das falsch? Schafft das mein
Arduino Uno?
Falls ja, wie mache ich das dann mit den Vorwiderständen?
Mein Strom schwankt ja dann zwischen 8,75mA(falls man den so berechnen
kann wie oben beschrieben) und 35mA(Io output max. current bei pin Qn),
falls nur eine LED an ist.
blubb123 schrieb:> Hey,>> ich versuche gerade einen 3x3x3 Cube zu basteln, aber das ist gar nicht> so leicht. Meine Idee ist es, mit 5 shift-register alle 27 LEDs einzeln> anzusteuern(ich weiß, es geht auch anders, aber ich wollte es mal so> versuchen).
Kopfkratz.
Das wird eine Drahtorgie.
> Das Programmieren sollte nicht das Problem sein, aber wie ich die> Hardware jetzt genau Aufbau ist mir noch etwas unklar.
Was genau ist dir unklar.
die 595 sind kaskadierbar. D.h. programmtechnisch hast du ein
Schieberegister mit 5*8 gleich 40 Bits.
> Im Datenblatt vom shift-register steht: Icc(supply current) = 70mA.> Bedeutet das, dass ich max. 70mA/8=8,75mA pro Ausgang bekomme für das> erste shiftregister(falls alle LEDs an sind)?
Ganz genau.
Aber es gibt einen Trick.
Die Hälfte der LED leuchten, wenn der Pin auf 0 ist und die andere
Hälfte leuchtet wenn der Pin auf 1 ist.
D.h. du hast nur noch maximal 4 LED, die über Vcc vom 595 versorgt
werden müssen, die anderen 4 LED 'schicken' ihren Strom über die GND
Leitung des 595.
> Muss ich das durch 8 oder> 9 teilen
8
Du hast nur 8 Ausgänge.
>, wenn ich den Pin Q7S auch noch benutzen will?
Den Pin brauchst du, weil dort der nächste 595 beim Kaskadieren
angschlossen wird.
> Beim Arduino Uno steht im Datenblatt beim 3,3V Ausgang: max. Strom liegt> bei 50mA. Das dürfte zu wenig sein, oder?
Beim maximal 27 gleichzeitig leuchtenden LEDs, ist es das wohl. Mit rund
2mA wird das eher nichts. Obwohl. Du könntest Low-Current LED nehmen.
Die sind auch mit 2mA schon zufrieden. Und das würd eauch gleichzeitig
dein 595 'Problem' entschärfen.
> Falls ja, wie mache ich das dann mit den Vorwiderständen?
Na ja. Berechnen halt.
> Mein Strom schwankt ja dann zwischen 8,75mA(falls man den so berechnen> kann wie oben beschrieben) und 35mA(Io output max. current bei pin Qn),> falls nur eine LED an ist.
Das interessiert dich nicht.
Wieviele Volt kommen aus dem Ausgang raus. Wieviele VOlt fallen an der
LED ab. Die Differenz ist die Anzahl der Volt, die über dem Widerstand
abfallen sollen. Wieviele Milliampere spendierst du der LED. Ohmsches
Gesetz: die Volt über dem Widerstand geteilt durch die Ampere ergibt die
Größe des Widerstands.
> Mein Strom schwankt ja dann zwischen 8,75mA(falls man den so berechnen kann wie
oben beschrieben)
Ampere werden gezogen.
D.h. der Verbraucher (in deinem Fall die LED) nimmt was sie kriegen
kann, bzw. was ihr (durch den Vorwiderstand) zugestanden wird.
Die Quelle muss nur liefern können.
Im Falle deines 595 lautet das dann eben: Welches ist der Worst Case?
Der liegt dann vor, wenn alle LED leuchten. Das IC hat eine Vorgabe
wieviel Strom es maxcimal abgeben kann. Und der muss für alle 8 LED
genügen. Ob die dann tatsächlich eingeschaltet sind oder nicht. WEnn
weniger LED brennen, dann muss das IC auch weniger Strom liefern. Aber
der Fall ist für dich so nicht relevant. Relevant sind die
schlimmst-möglichen Werte.
Erstmal danke für die schnelle Antwort! :)
Karl Heinz Buchegger schrieb:> blubb123 schrieb:>> Hey,>>>> ich versuche gerade einen 3x3x3 Cube zu basteln, aber das ist gar nicht>> so leicht. Meine Idee ist es, mit 5 shift-register alle 27 LEDs einzeln>> anzusteuern(ich weiß, es geht auch anders, aber ich wollte es mal so>> versuchen).>> Kopfkratz.> Das wird eine Drahtorgie.
Allerdings. Ich habe mir schon ein 3x3 auf ein Steckbrett aufgebaut um
ein wenig zu testen. Das sieht jetzt schon ziemlich unübersichtlich
aus..
>> Das Programmieren sollte nicht das Problem sein, aber wie ich die>> Hardware jetzt genau Aufbau ist mir noch etwas unklar.>> Was genau ist dir unklar.> die 595 sind kaskadierbar. D.h. programmtechnisch hast du ein> Schieberegister mit 5*8 gleich 40 Bits.
Naja, wie oben geschrieben habe ich ein 3x3 schon hinbekommen. D. h.
hier werde ich (hoffentlich) keine Probleme haben
>> Im Datenblatt vom shift-register steht: Icc(supply current) = 70mA.>> Bedeutet das, dass ich max. 70mA/8=8,75mA pro Ausgang bekomme für das>> erste shiftregister(falls alle LEDs an sind)?>> Ganz genau.> Aber es gibt einen Trick.> Die Hälfte der LED leuchten, wenn der Pin auf 0 ist und die andere> Hälfte leuchtet wenn der Pin auf 1 ist.> D.h. du hast nur noch maximal 4 LED, die über Vcc vom 595 versorgt> werden müssen, die anderen 4 LED 'schicken' ihren Strom über die GND> Leitung des 595.
Ich versteh hier nicht ganz, was du meinst.
>> Mein Strom schwankt ja dann zwischen 8,75mA(falls man den so berechnen kann wie> oben beschrieben)>> Ampere werden gezogen.> D.h. der Verbraucher (in deinem Fall die LED) nimmt was sie kriegen> kann, bzw. was ihr (durch den Vorwiderstand) zugestanden wird.> Die Quelle muss nur liefern können.>> Im Falle deines 595 lautet das dann eben: Welches ist der Worst Case?> Der liegt dann vor, wenn alle LED leuchten. Das IC hat eine Vorgabe> wieviel Strom es maxcimal abgeben kann. Und der muss für alle 8 LED> genügen. Ob die dann tatsächlich eingeschaltet sind oder nicht. WEnn> weniger LED brennen, dann muss das IC auch weniger Strom liefern. Aber> der Fall ist für dich so nicht relevant. Relevant sind die> schlimmst-möglichen Werte.
Wenn ich Vcc=5V habe, ist das auch meine Spannung am Ausgang des 595,
oder? D.h mein Vorwiderstand ist R=(5V-U(led))/8,75mA.
blubb123 schrieb:> Den max. Strom bei 5V finde ich leider nicht. Ich bräuchte dann 70mA *> 5shift-Register = 350mA. Oder sehe ich das falsch? Schafft das mein> Arduino Uno?
Habe gerade ein einem anderen Forum gelesen, dass es bis 400mA
geht(abhängig vom Art der Stromversorgung des Arduino). Der Strom sollte
also für mein Projekt reichen :)
blubb123 schrieb:>> Ganz genau.>> Aber es gibt einen Trick.>> Die Hälfte der LED leuchten, wenn der Pin auf 0 ist und die andere>> Hälfte leuchtet wenn der Pin auf 1 ist.>> D.h. du hast nur noch maximal 4 LED, die über Vcc vom 595 versorgt>> werden müssen, die anderen 4 LED 'schicken' ihren Strom über die GND>> Leitung des 595.>> Ich versteh hier nicht ganz, was du meinst.
Die 70mA Beschränkung kommen daher, weil der Vcc Pin des 585 nicht
stärker 'belastet' werden darf. Wenn alle 8 LED leuchten, aber nur 4
davon vom Vcc Pin des 595 versorgt werden, dann hast du für diese 4
jeweils 70/4 = 17mA zur Verfügung.
4 LED werden so verschaltet, dass sie vom Pin nach GND führen (sie
leuchten dann wenn der Pin auf 1 ist) und 4 LED werden so verschaltet,
dass die vom Pin nach Vcc führen (sie leuchten dann wenn der Pin auf 0
ist). Denn: der GND Pin vom 595 kann ebenfalls 70mA transportieren.
1
+--------+
2
Vcc o o----- R ------|<------- Vcc
3
| |
4
GND o o----- R ------|<------- Vcc
5
| |
6
| o----- R ------|<------- Vcc
7
| |
8
| o----- R ------|<------- Vcc
9
| |
10
| |
11
| o----- R ------>|------- GND
12
| |
13
| o----- R ------>|------- GND
14
| |
15
| o----- R ------>|------- GND
16
| |
17
| o----- R ------>|------- GND
18
+--------+
Du kannst auf die Art 8 LED mit 17mA leuchten lassen, ohne das du über
das 70mA Limit des Vcc Pins des 595 kommst.
> Wenn ich Vcc=5V habe, ist das auch meine Spannung am Ausgang des 595,> oder? D.h mein Vorwiderstand ist R=(5V-U(led))/8,75mA.
Jep.
Oder eben 17mA bei 4-4 Beschaltung. Wobei man nicht unbedingt bis ans
IC-Limit von 70mA gehen sollte.