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.