Guten Abend!
Folgende Problemstellung:
Schieberegister mit 8 Ausgängen, davon 4 bereits belegt;
Die anderen 4 Ausgänge sollen 5 LEDs schalten.
Ein zweites Register einzuplanen wäre (vermutlich) zu aufwendig.
(Es werden 40 Schieberegister in Reihe geschaltet)
Ich habe mir gedacht, das man dieses Problem "einfach" mit einem
Logikbaustein löst (4xAND, 2xEingang) und dann durch Kombinationen von 3
Leitungen 4 LEDs schaltet und durch die 4. Leitung die 5. LED.
Es sollen nur 6 Zustände möglich sein:
1
LED 1 2 3 4 5
2
O O O O O
3
X O O O O
4
X X O O O
5
X X X O O
6
X X X X O
7
O O O O X
8
9
X...Leuchtet
10
O...Leuchtet nicht
Im Anhang habe ich das Schaltbild von meiner Idee, aber ich bin mir
nicht sicher, ob man das Problem so lösen kann.
Bitte um eine Kontrolle und wenn etwas falsch ist um eine andere Idee
oder Verbesserungsvorschläge.
Falls noch Fragen offen sind werde ich diese schnellstmöglich
beantworten.
Mit freundlichen Grüßen,
Michael
Autsch... LED4 wird nie leuchten, weil Pin 11 nur dann '1' sein kann,
wenn auch Pin 13 auf '1' ist. Dann liegt an der LED keine Spannung. Wenn
Pin 13 '0' ist, dann ist Pin 11 auch '0', also wieder keine Spannung.
Und wenn Pin 13 '1' ist und Pin 12 auf '0', dann ist Pin 11 auf 0 und
die Diode ist in Sperrrichtung geschaltet.
Wenn Du noch die ermittelten Bitkombinationen der Signale 2,3,4
verrätst, könnte man Dir auf die Sprünge helfen. Ein formaler Entwurf
mit Funktionstabelle käme mit nur 3 Eingangssignalen für alle 5 LEDs
aus, aber die Schaltung wird umfangreicher als Dein Versuch (dafür würde
es funktionieren).
Andere Idee: die LEDs 1 und 5 werden antiparallel mit einem gemeinsamen
Vorwiderstand zwischen 2 Ausgänge geschaltet. Damit Leuchtet LED 1 bei
1-0, LED 5 bei 0-1 und beide sind aus, wenn beide Ausgänge gleich sind.
Bleiben 2 Ausgänge a,b und 3 LEDs:
Aus LED
a b 2 3 4
O O O
0 0 O O O = erste Zeile
0 1 X O O
1 0 X X O
1 1 X X X
O O O = erste Zeile
Die LED 2 wird mit 2 Dioden (Wired OR, Anoden an a und b) an beide
Ausgänge geschaltet. Die LED 3 wird nur an den Ausgang a geschaltet, die
LED 4 braucht ein logisches AND von a und b. Oder /LED4 braucht ein
logisches OR von /a und /b. Dazu wird der Vorwiderstand von LED4 an VCC
geschaltet, LED4 kommt mit Kathode an GND und 2 Dioden kommen mit der
Anode an den Knoten Widerstand/Anode LED. Die Dioden kommen mit Kathode
zu den Ausgängen. Bei einer 0 an einem der Ausgänge stiehlt dann die
Diode der LED den Strom. Nachteil: auch wenn alle LEDs aus sind braucht
LED4 Strom.
Damit das alles die Ausgänge des Registers nicht überlastet, sollten nur
Low-Current LEDs verwendet werden.
Aber klar, warum sollte der Strom durch Pin13 fließen, wenn er über die
LEDs gegen Masse abfließen kann. Denkfehler von mir, sorry.
Die LEDs sind bereits als Low-Current geplant (2mA), deswegen ist auch
R1 so groß dimensioniert, wenn 5V Betriebsspannung geplant sind.
Deine Lösung gefällt mir gut, nur leider gibt es ein paar Probleme:
1) Sehr komplex; Noch mehr Bauteile -> nur wenig Platz auf der Platine
(25x50mm)/Platine
2) Das Gerät wird mit Batterien betrieben, deswegen kommt es schon auf
kleine Ströme an, da ein paar Stunden Betrieb möglich sein sollen und
immerhin 40 von diesen Feldern und dann auch noch die Hauptplatine, ...
Aber schonmal ein riesiges Danke an Dich, du hast mir damit sehr
geholfen!
- Michael
Leider kann ich den obigen Beitrag nicht mehr bearbeiten.
Ich werde das ganze wohl mit 2 Schieberegistern lösen, denn dann kann
ich auch noch eine andere Idee in das Projekt einfließen lassen.
Wenn jemand doch noch eine andere Lösung hat, dann bitte trotzdem
posten!
Dankeschön,
Michael
> Deine Lösung gefällt mir gut, nur leider gibt es ein paar Probleme:> 1) Sehr komplex; Noch mehr Bauteile -> nur wenig Platz auf der Platine
na ja, die LEDs und Widerstände brauchst du eh. Dann sind hier nur 4
Si-Dioden notwendig statt 1 14-Pin IC. Doppel-Dioden in SOT23 oder SC70
brauchen wirklich keinen Platz. Die passen noch unter das SRG.
> (25x50mm)/Platine
Auf die Fläche passt ein kompletter Rechner mit Ethernet, 32MB RAM und
32MB Flash - Ist dann aber High-Tech...
> 2) Das Gerät wird mit Batterien betrieben, deswegen kommt es schon auf> kleine Ströme an, da ein paar Stunden Betrieb möglich sein sollen und> immerhin 40 von diesen Feldern und dann auch noch die Hauptplatine, ...
Wenn man für die LED1 die Ausgänge (jetzt mal c und d genannt) auf 1-0
setzt kann man die LED4 statt an VCC auch an Ausgang C anhängen. Dann
fließt nur unnötig Strom, wenn auch LED1 angeschaltet ist und LED4 nicht
leuchtet.
Maximal 4 leuchtende LEDs je 2mA + das drumherum mach unter 10mA pro
Modul. Davon 40 Stück sind 400mA. Mit 4 Mignon-Akkus (mind. 2000mAh)
sollte das Teil also mindestens 5 Stunden laufen. Eher länger, weil ja
nicht immer alle 4 x 40 LEDs an sein werden.
unn tschuess
Bernhard
Hallo,
einfacher wird's kaum noch,
LED5 leuchtet wenn Ausgang 4=High und Ausgang 3=LOW, T1 sorgt dafür, das
LED4 nur leuchtet wenn auch LED3 leuchtet.
Sascha
An Bernhard:
>> (25x50mm)/Platine>Auf die Fläche passt ein kompletter Rechner mit Ethernet, 32MB RAM und>32MB Flash - Ist dann aber High-Tech...
Einseitig? :)
Kannst Du mir mal bitte eine Skizze anfertigen, denn ich kann dir leider
nicht wirklich folgen.
An Sascha:
Ich habe das mal so gelesen:
1
EIN LED
2
1 2 3 4 | 1 2 3 4 5
3
--------|----------
4
1 0 0 0 | X O O O O
5
1 1 0 0 | X X O O O
6
1 1 1 0 | X X X O O
7
1 1 1 1 | X X X X O
8
0 0 0 1 | O O O O X
Das wäre auf jeden Fall sehr einfach, dankeschön!
Nur wozu dient D1?
- Michael
genau
> Das wäre auf jeden Fall sehr einfach, dankeschön!>> Nur wozu dient D1?
um die Sperrspannung der LED (ca. 5V) nicht zu überschreiten, aber bei
5V Betriebsspannung geht's auch ohne.
Sascha
An Sascha:
Ich hab ein kleines Problem gefunden: (Glaube ich zumindest)
Wenn man das Bitmuster 0 0 1 0 anlegt fließt doch auch über T1 ein
Strom, der ihn durchschaltet. Damit würde dann auch LED 4 leuchten.
Sehe ich das richtig?
- Michael
Sascha Weber schrieb:
>nein, dann ist ja Ausgang 4=Low und damit kann die LED die ja über T1>nach Masse geht auch nicht leuchten - egal ob T1 leitet.
Tut leid, habe mich vertippt. Ich meinte das Muster 0 0 0 1
Dann fließt im ersten Moment der Strom von PIN4 (VCC) über LED5, dann
über D1 und nach PIN3 (GND). Ein Teil fließt dann aber auch über T1 und
dieser schaltet dann durch, sodass LED4 und LED5 leuchten, oder?
R5 groß genug dimensionieren?
Bei den Low Current LEDs fließen grade mal 2mA. Bei einer
Stromverstärkung für T1 gehe ich mal von ~20 aus, ergibt einen
Basisstrom von 100uA. Nehme ich jetzt die 5V Betriebsspannung minus 0.7V
dann kommen 43mOhm heraus.
=> Kein Widerstand
Oder hab ich was falsch gemacht?
Nachtaktiver schrieb:
>Und wie wäre es mit Decoderbausteinen?
Kannst du das mal bitte genauer erläutern? Ich höre sowas zum ersten
mal.
Michael B. schrieb:> Sascha Weber schrieb:>>nein, dann ist ja Ausgang 4=Low und damit kann die LED die ja über T1>>nach Masse geht auch nicht leuchten - egal ob T1 leitet.>> Tut leid, habe mich vertippt. Ich meinte das Muster 0 0 0 1>> Dann fließt im ersten Moment der Strom von PIN4 (VCC) über LED5, dann> über D1 und nach PIN3 (GND).> Ein Teil fließt dann aber auch über T1 und
der Ausgang liefert doch ein LOW-Signal, da müsste durch die LED schon
soviel Strom fließen das das Potential über die ca. 0.6V gezogen wird.
> dieser schaltet dann durch, sodass LED4 und LED5 leuchten, oder?
wenn das wirklich passiert, was ich bei 2mA nicht glaube, kannst du dem
Widerstand R5 noch eine Diode in Reihe schalten, die die Schwellspannung
noch mal um 0.6V anhebt
> R5 groß genug dimensionieren?
ich würd mal 4.7k - 10k nehmen
> Bei den Low Current LEDs fließen grade mal 2mA. Bei einer> Stromverstärkung für T1 gehe ich mal von ~20 aus, ergibt einen> Basisstrom von 100uA. Nehme ich jetzt die 5V Betriebsspannung minus 0.7V> dann kommen 43mOhm heraus.
???
> => Kein Widerstand
sicher nicht
> Oder hab ich was falsch gemacht?
auf jeden Fall
nehmen wir mal an der Ausgang deines Treibers hätte bei LOW-Pegel einen
Innenwiderstand von 100 Ohm, dann würde daraus bei 2mA Last (LED) ein
Spannungsabfall von 0.2V entstehen. D.h. am Ausgang sind dann nicht 0V
sondern 0.2V zu messen, für T1 noch viel zu wenig.
Sascha