www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LED Ansteuerung


Autor: Sven Scholz (Gast)
Datum:
Angehängte Dateien:

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

Autor: TOM (Gast)
Datum:

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

Autor: TOM (Gast)
Datum:

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

Autor: Thomas Melinat (Gast)
Datum:

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

Autor: Hubert.G (Gast)
Datum:

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

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für 56 LEDs reicht ein 8Bit Port ohne extra Hardware aus.

Gruß Hagen

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne extra Hardware 8Bit? Wie das?
Bitte um Erklärung.

Danke

Gruß

Thomas

Autor: Sebastian Heyn (Gast)
Datum:

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

Autor: Hagen (Gast)
Datum:

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

Autor: Hagen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Schemata

Autor: Hagen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
source

Autor: Sven Scholz (Gast)
Datum:
Angehängte Dateien:

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

Autor: TOM (Gast)
Datum:

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

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.