mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4 Leitungen, 5 LEDs


Autor: Michael \0 (pixelmonster) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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:
LED 1 2 3 4 5
    O O O O O
    X O O O O
    X X O O O
    X X X O O
    X X X X O
    O O O O X

X...Leuchtet
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

Autor: Bernhard Spitzer (b_spitzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael \0 (pixelmonster) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Tabelle war so geplant:
Eingänge LEDs
1 2 3 4  1 2 3 4 5
0 0 1 1  X O O O O
0 1 1 0  X X O O O
0 1 0 1  X X X O O
0 1 1 1  X X X X O
1 0 0 0  O O O O X

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

Autor: Michael \0 (pixelmonster) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bernhard Spitzer (b_spitzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Sascha Weber (sascha_w)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael \0 (pixelmonster) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
EIN      LED
1 2 3 4 | 1 2 3 4 5
--------|----------
1 0 0 0 | X O O O O
1 1 0 0 | X X O O O
1 1 1 0 | X X X O O
1 1 1 1 | X X X X O
0 0 0 1 | O O O O X
Das wäre auf jeden Fall sehr einfach, dankeschön!

Nur wozu dient D1?

- Michael

Autor: Sascha Weber (sascha_w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael B. schrieb:
> An Sascha:
> Ich habe das mal so gelesen:
>
> EIN      LED
> 1 2 3 4 | 1 2 3 4 5
> --------|----------
> 1 0 0 0 | X O O O O
> 1 1 0 0 | X X O O O
> 1 1 1 0 | X X X O O
> 1 1 1 1 | X X X X O
> 0 0 0 1 | O O O O X
> 
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

Autor: Michael \0 (pixelmonster) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sascha Weber (sascha_w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Sascha

Autor: Nachtaktiver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie wäre es mit Decoderbausteinen?

Autor: Michael \0 (pixelmonster) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sascha Weber (sascha_w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.