LEDs an Atmel Controller

Gast #68054
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?
Gast #68055
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
Gast #68056
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.
Gast #68057
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
Gast #68058
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
Gast #68060
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
Gast #68062
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
Gast #68063
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
Gast #68066
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.