Lautstärke anzeige LED

OP #2879189
Lesenswert?

Hallo zusammen

Ich möchte mit einem Mikrocontroller 32 LED ansteuern. Am besten mit 
einer Adresse von 6 bit.

Es wird für eine Lautstärke anzeige verwendet und soll einen Balken 
ergeben der je nach lautstärke grösser oder kleiner wird.

Nun da ich am controller nicht so viele ausgänge habe brauche ich ja so 
etwas wie ein LED Treiber.

Zu meiner Frage. Wie kann ich dies am Besten lösen und mit welchen 
Bauteilen.
Gast #2879210
Lesenswert?

Möglich wäre eine Matrix-Ansteuerung; dann ist immer nur eine LED an; 
der "Balken" ist wird dann durch die Trägheit des Auges gebilded. 
Braucht aber einen kontinuierlichen refresh 
(http://www.mikrocontroller.net/articles/LED-Matrix, google mal 
"Charlie-Plexing")

Andere Möglichkeit wäre eine Kaskade aus Schieberegistern 
(http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister).

Zu beiden Ansätzen findet man hier im Forum Code & Beispiele.
Gast #2879422
Lesenswert?

Ja das habe ich mir auch schon gedacht.
Aber das würde nur beim increase der Lautstärke funktionieren,  aber 
beim decrease wurde es dann nicht mit dem Schieberegister gehen.  Oder 
mache isch da eine fehl Überlegung?
#2879454
Lesenswert?

Jonas M. schrieb:
> Ja das habe ich mir auch schon gedacht.
> Aber das würde nur beim increase der Lautstärke funktionieren,  aber
> beim decrease wurde es dann nicht mit dem Schieberegister gehen.  Oder
> mache isch da eine fehl Überlegung?

Machst du.
Du beschreibst das Schieberegister immer komplett(!), wenn sich was 
ändert. Nicht nur um 1 Stelle weiterschieben.

De facto kannst du dir mit einem Haufen SR viele (ich will jetzt nicht 
sagen unbegrenzt, denn natürlich gibt es auch mal eine Grenze an der das 
Fan-Out nicht mehr reicht) Ausgänge bauen, bei denen du jeden einzelnen 
losgelöst von allen anderen ansteuern kannst.
Gast #2879935
Lesenswert?

Schieberegister sind auf jedenfall eine einfache Lösung, aber dann 
brauchst Du für jede LED einen Vorwiderstand.

Bei einer Matrix Schaltung (6x6) brauchst Du nur 6 Widerstände. 
Allerdings fließen dort höhere Ströme, dewegen brauchst Du dann 6 
Transistoren mit Vorwiderstand - also insgesamt 18 Bauteile.

Die Matrix Schaltung birgt das Risiko, die LED's zu verheizen, wenn das 
Programm hängen bleibt. Deswegen würde ich während der 
Softwareentwicklung mit geringen Strömen arbeiten (die die LED's auf 
Dauer vertragen) und erst wenn alles läuft, auf den 6-Fachen Strom hoch 
gehen.

Schieberegisters sind einfacher zu programmieren.

Du hast die Qual der Wahl.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren