Forum: Mikrocontroller und Digitale Elektronik ATmega8 zur LED-Ansteuerung per RS232


von Noob (Gast)


Lesenswert?

Hi, ich bin neu hier und habe eine Frage.

Zuerstmal kurz zu dem Projekt:
Es sollen zehn verschiedene "Zonen" mit jeweils einer RGB-LED 
angesteuert werden. Die Informationen, welche der zehn Zonen welchen 
Farbwert annehmen soll, kommt von einer Software die die Infos per CRC16 
über den RS232 ausgibt.

Frage: Was benötige ich für so eine Platine?
Zusammengefasst: Die Platine muss 30 verschiedene Werte an 10 RGB-LEDs 
weitergeben (LEDs: 5V, 20mA). 30 Werte: 10 Zonen x 3(RGB, 0-255)

Benötige ich pro LED einen Controller oder reicht einer insgesammt? Was 
für PWMs benötige ich? Wie steuere ich die LEDs korrekt an?

Danke schonmal im Voraus für eure Antworten.

Gruß

von Karl H. (kbuchegg)


Lesenswert?

Du brauchst 30 PWM Stufen, weil ja jede LED 3 PWM Stufen
benötigt.
Diese 30 PWM hast du aber nicht in Hardware in einem Mega8.
Für popelige LED tuts aber auch Software, kein Problem.

Nächstes Problem: Du brauchst einen Prozessor, der 30
Ausgänge hat. Auch die hast du bei einem Mega8 nicht.
2 Möglichkeiten:
  * anderen Prozessor benutzen
  * Port Expander zb über ein Schieberegister

Wenn du also bei deinem Mega8 bleiben willst, Geschwindigkeits-
mässig ist das kein Problem, dann musst du eine Schieberegister-
kette an den Mega8 anhängen um deine 30 Ausgänge zu erhalten.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister
http://www.mikrocontroller.net/articles/AVR-Tutorial:_SRAM

Dazu dann noch einen MAX232 für die serielle Schnittstelle
und los gehts.

von Noob (Gast)


Lesenswert?

Danke für deine Antwort.

Wenn ich dich richtig verstanden habe: mit einem ATmega32 würde das 
gehen? Wie stark kann ich den bealsten? Oder besser gefragt: Wie 
"schalte" ich die LEDs richtig? Kann ich 5V und pro Kanal 40mA über den 
Controller jagen?

Gruß

von Winfried (Gast)


Lesenswert?

20-40 mA geht glaub ich noch, aber der Maximalstrom, der über alle 
Ausgänge gehen darf, ist auch begrenzt, irgendwo bei 100-500 mA. Schau 
mal ins Datenblatt.

von Michael H* (Gast)


Lesenswert?

wuah, bloß nicht!
du brauchst treibertransistoren. die treiberstufen im atmel gehn mir der 
spannung arg rauf (V_OL!) bei solchen strömen. steht ziemlich weit 
hinten im datenblatt. electrical charakteristics ist das stichwort.

LED Basiswiderstand Standardbauelemente
hier solltest du alles finden, was du zum bauen brauchst.

grüße,
holli

von Noob (Gast)


Lesenswert?

Nur nochmal zu Verständnis: ein NPN-Transistor eignet sich dafür, eine 
Led so zu dimmen, wie es der Controller möchte? Oder hab ich da was 
falschverstanden?
>> Die Dimm-Informationen kommen vom PC, über Max232 an den Controller. Der gibt 
eine bestimmte Menge Strom an den Transistor. Und der gibt dann die lineare Menge 
Strom (verstärkt) an die LED weiter?!?! Aber zwischen 0 und 255 ist alles Möglich?

Danke schonmal

von Michael H* (Gast)


Lesenswert?

das dimmen an sich erledigt dein atmega. der erzeugt dir eine PWM 
(pulsweitenmodulation).
das sieht so aus:

5V
__|¯¯¯¯¯|_____|¯¯    50% sog tastverhältnis (verhältnis an- zur auszeit
0V

__|¯¯|________|¯¯    25% tastverhältnis

__|¯¯¯¯¯¯¯¯|__|¯¯    75% tastverhältnis

usw. die komplette frequenz deiner PWM ist normalerweise fix und 
errechnet sich zu f = 1 / (t_an + t_aus), also dem kehrbruch der summe 
der zeiten. wenn du die frequenz hoch genug wählst, ist das an- und 
ausschalten für das menschliche auge zu schnell und es wird als 
kontinuierliche helligkeit wahrgenommen. je höher das tastverhältnis, 
desto heller erscheint die led.
das ist dimmen mit PWM.

zum transistor: ja, grundlegend richtig, der transistor verstärkt dir 
strom (in der emitterschaltung).
wenn dein atmega eine spannung von über 0,7V oder eben den 5V am ausgang 
ausgibt, muss diese auch an der basis (gegen den emitter) anliegen und 
dann fließt ein strom in die basis des transistor. der transistor 
schaltet dann durch und lässt strom durch die kollektor-emitter strecke 
fließen. und zwar das h_fe (datenblatt!) fache des basisstroms. 
vorsicht: damit dein basisstrom nicht zu groß wird und den transistor 
zerstäört, braucht er einen basiswiderstand, wie im artikel beschrieben.
ansonsten: Transistor

edit
ahja und zu deinen stufen: wenn du 255 stufen willst, musst du nur 255 
verschiedene tastverhältnisse haben. das ist eine reine µcontrollersache 
und hat mit dem transistor nichts[*] zu tun, weil das einfach nur von 
deiner PWM gemacht wird, auf die der transistor außer einem 
"verstärkenden" keinen weiteren einfluss hat.
[*] vorausgesetzt, dass du deine PWM frequenz nicht zu hoch wählst. aber 
wenn du die auf 1kHz festsetzt, bist du sowohl beim transistor als auch 
beim wahrnehmungsvermögen des menschlichen auges auf der sicheren seite.

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.