Hallo, ich habe 10 LEDs, die ich alle einzeln ansteuen will,jedoch muss dafuer der Programmcode so klein wie nur möglich sein, ich habe dafür kaum noch Speicherplatz. Ich hatte vor das mit einem Schieberegister zu machen, aber das ist so Codeaufwendig, lieber waere mir auf einem Port des Atmels 4 Bit zu senden und das dann extern ausgewertet wird, was leuchten soll. Wie baue ich so eine Schaltung am besten?
Hi Mit 4 Bit kannst du keine 10LED's unabhängig steuern. Wo soll auch die fehlende Information herkommen? Eine C-Routine zur Ansteuerung eines Schieberegisters (74HC164) mit zwei Pins kompiliert hier zu 24 Byte Code. Wenn das nicht kompakt ist weiß ich auch nicht. Matthias
4Bit muesste doch reichen, wenn man ein Treiber IC mit vor die LEDs schaltet. 2^4 = 16, also sind doch mit 4Bit 16 verschiedene Werte möglich. Das sollte dann ja eigentlich ausreichen. Die Frage ist nur was gibt es für ICs die man nehmen kann.
Mit der Überlegung 2^4 = 16 kannst du genau eine von 16 Leds einschalten. Für zehn unabhängige Leds brauchst du 10 Bit. Und wenn du mit den 4 Bit multiplexend steuern willst brauchst du weit mehr source-code als für die Schieberegister-Ansteuerung. grüsse leo9
Mit 10 Leds kannst du aber weit mehr als 16 verschiedene Möglichkeiten haben. Es sind schon allein 10 Möglichkeiten, wenn zur gleichen Zeit nur je eine LED leuchten soll. Sollen alle Kombinationen möglich sein, sind das dann 2^10 Möglichkeiten -> du benötigst also 10 Bit. Flite
Gibt es denn keinen IC, dem man z.B in einem Takt 4 Bit übergibt (vielleicht noch einen Takt warten) und dann im nächsten Takt wieder 4Bit. So kann man die LEDs zwar nur z.B. alle 3-Takte (3x4Bit) aktualisieren, müsste aber doch reichen. Serh viel Code dürfte es dann ja auch nicht sein. Habe aber keine Ahnung ob es sowas gibt. mfg Manuel
Hallo Und wenn es den Chip nicht geben sollte, kannst du dir den ja mit einem kleinen AVR selbst bauen. Ist doch das schöne an den Dingern, das sie meistens das machen, was man will. in diesem Sinne MFG Dieter
an könnte ja auch, wenn man nicht kontinuierlich aktualisieren will, 1.Port (Bit) zum start auf 1 setzen, dann 4 Takte lang je 3Bit senden (=12Bit) dann den 1. wieder auf 0. mfg
@Manuel, "So kann man die LEDs zwar nur z.B. alle 3-Takte (3x4Bit) aktualisieren" es ist egal, ob 3*4Bit oder 10*1bit. Ob Du nun eine Schleife 3* oder 10* durchläufst, ändert nichts an der Codegröße. Peter
Nicht gleich schlagen... Aber wie wär's mit einem größeren Controller. Je nachdem welchen du einsetzt, tut's vielleicht der nächstgrößere. Ich meine, falls das dann kein mechanisches Platzproblem wird.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.