Forum: Mikrocontroller und Digitale Elektronik LED Ansteuerung


von Sven Scholz (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich würde gerne mit meinem Atmega8 etwa 50 LED´s ansteuern. (siehe
Anlage) Ich weiß leider nur nicht, wie ich das genau machen soll, bei
nur 3 Ports. Ich muss wirklich jede LED zu jeder Zeit genau bestimmen
können, ob diese nun leuchten soll oder eben nicht.

Ich bräuchte dafür sicherlich eine erweiterte digitale Schaltung, die
ich wederum mit meinem Atmega8 anspreche. Gibt es da hilfreiche IC´s???
Die 50 Led sind in 3 Gruppen eingeteilt. Habe schon gedacht, dass ich
einfach einen binären Wert über einen der Ports rausschicke, der
angibt, wieviele LED in der ansprechende Gruppe leuchten soll.
Also etwa an Port.B 1000 --> soll heißen 8 LED sollen gleichzeitig
leuchten. Natürlich müsste die 1000 wiederrum von einer digitalen
Schaltung verarbeitet werden.

Hat jemand vielleicht eine konstruktive Idee für mich? Gibt es gute
Seiten im Internet darüber? DANKE sehr.

Das ganze soll mal eine Art Uhr werden.
Beispiel:

Bei 10:35:45

leuchten etwa

10 rote LEDs
16 gelbe LEDs
und
18 grüne LEDs

von TOM (Gast)


Lesenswert?

Gibt mehrere Möglichkeiten (wie immer):
- Schieberegister, dann brauchst du gerade mal 3 Portpins
- z.B. 7x8-Matrix multiplexen -> brauchst du 15 Port pins
- ...

Gabs schon oft hier im Forum, such mal nach "LED multiplex" oder
"LED Schieberegister"

Ohh, da fällt mir ein die Suche wurde ja abgeschaltet (immer noch?)

Gruß

Thomas

von TOM (Gast)


Lesenswert?

Hab jetzt erst dein Bild angeschaut, da reichen ja 48 LEDs, also
6x8-Matrix.

aber von 10:35:45

auf

10 rote LEDs
16 gelbe LEDs
und
18 grüne LEDs
zu kommen, versteh ich nicht.

Gruß

TOM

von Thomas Melinat (Gast)


Lesenswert?

@Sven

ich denke das ganze ließe sich über Software realisieren
(Multiplexen)....

Es würden 9 Ports benötigt, 6 davon für max. 64 LED´s, und die anderen
3 zur Auswahl der Gruppe. So könnte ich mir´s vorstellen...

Gruß, Thomas.

von Hubert.G (Gast)


Lesenswert?

Wenn du jeweils nur 12 LEDs nimmst könntest du einen 4040 verwenden. Du
hast dann bei nur drei Ausgänge keine Korrekturmöglichkeit, es sei denn
du verwendest je Gruppe wieder einen µC und fütterst den bei jedem
Wechsel mit der gesamten Information

von Hagen (Gast)


Lesenswert?

für 56 LEDs reicht ein 8Bit Port ohne extra Hardware aus.

Gruß Hagen

von TOM (Gast)


Lesenswert?

Ohne extra Hardware 8Bit? Wie das?
Bitte um Erklärung.

Danke

Gruß

Thomas

von Sebastian Heyn (Gast)


Lesenswert?

mit wenig hardware könnte man sogar 60 leds an nem 8 bit port
multiplexen..

Baust du das auf lochraster auf? wenn ja dann multiplex es lieber - da
ist der aufwand geringer

von Hagen (Gast)


Lesenswert?

>>Ohne extra Hardware 8Bit? Wie das?
>>Bitte um Erklärung.

zwischen jeden Pin des Port kommen 2 LEDs antiparallel.

2 Pins 2 LEDs, 50% Dutycycle
3 Pins 6 LEDs, 33% Dutycycle
4 Pins 12 LEDs, 25% Dutycycle
5 Pins 20 LEDs, 20% Dutycycle
6 Pins 30 LEDs, 17% Duty
7 Pins 42 LEDs, 14% Duty
8 Pins 56 LEDs, 13% Duty

Jeder Pin kann dabei 3 Zustände annehmen GND, Vcc, High-Z.

Beispiel 2 Pins mit 2 antiparallelen LEDs.
Pin 0 = High-Z oder Pin 1 = High-Z beide LEDs sind dunkel.
Pin 0 = GND Pin 1 = Vcc nur LED1 leuchtet.
Pin 0 = VCC Pin 1 = GND nur LED2 leuchtet.

Möchte man nun beide LEDs leuchten lassen so müssen beide Pins
abwechseln von GND->VCC geschaltet werden, ergo multiplext.

Bei 8 Pins sind so 56 LEDs möglich die dann aber mit 1/49'tel
gemultiplext werden. Das würde mit Lowcurrent LEDs gerade noch so
gehen.

Hier in der CodeLib habe ich schonmal ein Beispielsource samt Schemata
für einen ATTiny15 gepostet. Mit dem wurden 20 LEDs angesteuert an 5
Pins, genauer gesagt 10 zweifarbige LEDs rot/grün.

Gruß hagen

von Hagen (Gast)


Angehängte Dateien:

Lesenswert?

Schemata

von Hagen (Gast)


Angehängte Dateien:

Lesenswert?

source

von Sven Scholz (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die vielen Anregungen...

Habe hier noch etwas:
Kann ich nicht einfach das Ganze über ein simples Schieberegister
verwirklichen, mit dem ich die einzelnen LED-Gruppen nacheinander
aktiviere? Dann bräuchte ich für z.B. 6 Gruppen nicht 6 Portpins,
sondern halt nur einen, der das Schieberegister anstößt. (siehe
Anlage)
Oder ist das totaler Quatsch?

-----------
Mein obiges Beispiel sollte wirklich nur ein grobes Beispiel sein. Wie
die genaue LED-Aufteilung der Anzeige zur Uhrzeit aussieht, muss ich
noch überdenken...
-----------
Wo bekomme ich ein kostengünstiges DCF77-Modul her? Was ist, wenn ich
die Uhrzeit über den UART einstelle, wie genau läuft die Uhrzeit weiter
ohne Funkmodul? (wie oft müsste ich die Uhrzeit korrigieren?)
Eigentlich sollte doch ein Quarz recht präzise sein?

von TOM (Gast)


Lesenswert?

Für ein Schieberegister wären 3 Pins schon hilfreich (Takt, Daten und
Latch). Oder du meinst einen Zähler, dann brauchst du eigentlich nur
einen (Takt). Nur wenn du dich "verzählst" solltest du eine
Resestmöglichlet haben, also zwei Pins.

DCF-Modul gibts bei Conrad, Reichelt, ELV, ... ca. 10€

Wenn du dir die Arbeit machst und den Quarz mit einem Trimm-C gut
hinziehst, bekommst du einen Abweichung von unter 3 Sek pro Woche hin
(meine Erfahrung). Wenn du allerdings sowieso eine Funkuhr
implementierst, würde ich mir die Arbeit nicht machen, den Quarz
abzugleichen, sondern lieber öfter mal synchronisieren. Man kann ja
immer synchronisieren, wenn man sicher ist, dass Funksignal korrekt
ist.

Aber wie du von  10:35:45
auf
10 rote LEDs
16 gelbe LEDs
und
18 grüne LEDs
kommst, hab ich immer noch nicht verstanden.

Gruß

Thomas

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
Noch kein Account? Hier anmelden.