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

Eine eigene Frage? Dieser Thread ist über 14 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.