PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 16 LEDS an 3 pins?!



2tobi7
20.02.2010, 13:35
hi

ich möchte 16 leds einzeln a und ausknipsen können
meine frage ist, wie ich diese leds an nur 3 pins unterbringen kann bzw. mit welcher schaltung?
meine idee dazu:

wenn ich wie im binärsystem an pin a0 a1 a2 eine 0 0 1 ausgebe, dann soll led 2 leuchten bei 1 1 1 led 15 bei 1 0 0 led 8 usw...

im vorraus vielen dank für eure ideen

PICture
20.02.2010, 13:50
Hallo 2Tobi7!

Mit 16 LED's an 3 I/O Pins geht es nicht mit einem Dekoder, da es dafür 4 Bits/Pins nötig sind. Es ist möglich per Schieberegister mit 2 Pins beliebige Anzahl LED`s anzusteuern, es ist jedoch wegen serieller Datenubertragung langsamer als direkt per Dekoder.

MfG

2tobi7
20.02.2010, 14:35
hi

und wie sähen dann die schaltungen mit encoder oder schieberegister aus??

Kampi
20.02.2010, 14:56
Du nimmst ein 16 Bit Schieberegister und schließt an die zwei Eingänge E0 und E1 jeweils einen Pin vom Controller an. An die Ausgänge A0-A15 schließt du jeweils den Pluspol einer LED an (Vorwiderstand nicht vergessen!!!!) und legst den Minus zusammen mit allen anderen auf GND. Wenn du nun auf den Eingang E0 ein High legst schaltest du die erste LED an. Wenn dudann eine Pause machst und dann wieder ein High legst geht die erste aus und die zweite an usw.

2tobi7
20.02.2010, 17:12
könntet ihr mir da irgendeinen preiswerten empfehlen??

PICture
20.02.2010, 17:31
Einen 16-bitigen Schieberegister kann man einfach aus zwei 8-bitigen z.B. 74XX164 bauen.

MfG

Besserwessi
20.02.2010, 17:39
Mit den einfachen schieberegistern kreigt man beim Durchschieben leichte Geisterbilder. Wenn das zu sehr stört oder die LEDs sich oft ändern, z.B. weil man auch noch die Helligkeit per PWM steuern will, sollte man Schieberegister mit Latch nehmen, z.B .74HC595. Man braucht aber einen zusätlichen Pin fürs Latch.

Kampi
20.02.2010, 17:41
Vielleicht hilft dir das ja weiter:

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister

2tobi7
20.02.2010, 17:42
nein ich will einfach nur 16 leds einzeln an und aus machen ohne pwm
aber wenn es dein kann, dass die leds einfach manchmal aus gehen wenn sie nicht sollen wär das nicht gut.
könnte mir vielleicht jemand eine kleine schaltung für die ansteuerung entwerfen ?? ich bin da leider nicht so der pro drin :P

PICture
20.02.2010, 18:08
Ohne Latch werden alle LEDs für die Zeit vom Einschieben des Musters immer kurz blinken. Die Zeit des Blinkens muss man entschprechend der Taktfrequenz des µCs ausrechnen und abschätzen, ob es stören wird.

Im von Kampi gepostetem Link sind schon Schaltpläne.

MfG

Kampi
20.02.2010, 18:08
Ja dann nimm doch ein Schieberegister. Ist am einfachsten und PWM musste ja auch nicht benutzen das wird nur zur Helligkeitssteuerung benutzt und ruft bei solchen Registern Probleme hervor. Für einfaches Ein und Ausschalten reicht das Register vollkommen aus. Und so ein Register aus Transistoren aufbauen, glaub mir das willst du dir nicht antun :D.

Besserwessi
20.02.2010, 18:09
Einen Plan findet man z.B. hier :
http://www.rn-wissen.de/index.php/Portexpander_am_AVR

Das Problem ist weniger ein versehentliches ausgehen der LEDs. Bei den Schieberegistern ohne Latch leuchten für kurze Zeit auch mal ein paar andere LEDs als gewünscht, wenn man gerade neue Daten reichschreibt. Das ist aber nur ganz kurz und kaum sichtbar, wenn man es schnell genug macht.

2tobi7
20.02.2010, 21:06
thhhhhhx^^
wenn die leds nur kurz flackern ist das kein problem
aber ich muss ja 16 leds ansteuern wie krieg ich dann das 2. schieberegister dadran? und wie muss ich den code verändern und das allerwichtigste wiekann ich mir eine einfache funktion basteln die so ähnlich aussieht:
led_on(nummerderled)
und
led_off(nummerderled)

vielen dank im vorraus

lg tobi

Kampi
20.02.2010, 21:30
Wie du zwei Register miteinander verbindest steht in meinem Link.

2tobi7
20.02.2010, 21:41
ohh sry
zu klären bleibt dann wohl nur noch wie ich das in eine schicke funktion verpackn kann... :P

PICture
21.02.2010, 10:32
Hallo!

Die Frage solltest du in einem Softwareforum entsprechend deinem µC und Programmiersprache stellen, da hier nur Hardware behandelt wird.

MfG

Richard
21.02.2010, 11:46
Anstatt Schieberegister könnte man auch Analogmultiplexer nehmen, Da nur
3 Adressleitungen frei sind müsste man halt erst einen mit 8 Bit und dahinter
dann einen 16 Bit verschalten. Dann können auch noch mehr LED'S geschaltet
werden.

Gruß Richard

2tobi7
21.02.2010, 12:12
und wie sähe dann eine schaltung mit einem multiplexer aus??
(ich weiß das ich euch nerve aber ich kanns net :P)

lg tobi

Kampi
21.02.2010, 12:36
Die Schaltung sieht gleich aus. Der Unterschied ist der das du bei einem Schieberegister wie der Name schon sagt die Daten (hier 1 und 0) schieben musst damit sie weitergegen werden, was bedeutet du musst jedesmal einen Puls drauf geben um z.B. von LED 1 auf 2 und danach auf 3 zu wechseln.
Bei einem Multiplexer legst du die Bits an und durch die Benutzung der Steuerleitungen sagst du dem Multiplexer dann an welche Ausgänge die Bits geschickt werden sollen.

Link:
http://www.elektronik-kompendium.de/sites/dig/0710101.htm

Andree-HB
22.02.2010, 04:45
...dieses Projekt habe ich auch mit Schieberegistern umgesetzt :
http://www.pixelklecks.de/projekteii/pixelschwert/index.html

Läuft mit 32 LED`s...

2tobi7
22.02.2010, 13:41
dann werde ich mir wohl schiebe register holen hat jemand eine empfehlung?

lg tobi

fhartz
24.02.2010, 08:48
Verschiedene Ansteuermöglichkeiten von Schieberegistern
mfg F.Hartz


http://www.ees-hartz.de/P64_HLP/