Also ich möchte mal zu Denken geben, wenn Du die LEDs mit Überspannung/Strom betreibst und nur via PWM auf die richtigen Werte regelst, gehst Du in meinen Augen ein Risiko ein ... dafür sind Material und Arbeitszeit zu schade, find ich
Denn ein unvorhergesehender Programmschritt kann dazu führen, daß der Port länger als die "normale" Zeit High bleibt, z.B. wenn Du einen Interrupt via Serielle verarbeitest oder auch nur normale Programmierfehler machst ... dann war es das letzte Leuchten ... wenn Du dagegen ein geschaltete Stromquelle nimmst, die auf 20 mA eingestell ist, passiert nix. Auch sind Bauteiltoleranzen dann egal!
Meine oben gezeigte Schaltung ist auf 20 mA ausgelegt, denn sie ist für RGB-Leds bei mir in Verwendung
Und das C dient dazu, eine Schwingverhalten zu vermeiden!

Leider gibt es diese geschaltete Stromquelle nicht als "ein Bauteil".