Forum: Mikrocontroller und Digitale Elektronik Lautstärke anzeige LED


von Jonas M. (jonas_m27)


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.

von Daniel V. (danvet)


Lesenswert?


von micha (Gast)


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.

von Jonas M. (Gast)


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?

von Karl H. (kbuchegg)


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.

von Stefan (Gast)


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.

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.