Pulsbreddsmodulering sker helt korrekt från Arduino-hållet. Det fungerar som följande:
Antag att du väljer strömbegränsningsmotståndet så att du får en ström genom dioden som är 50 mA. Detta är ju utanför spec, och kommer kanske leda till en liten rökpuff.
Men, genom PWM på utgången ser du till att den aldrig är igång mer än 50% av tiden.
Med tillräckligt kort pulstid på PWM-utgången (säg 100µs eller så) så kommer lysdioden att bete sig som att den bara fick 50% av 50 mA, dvs 25 mA, vilket ju är OK, och ljusstyrkan kommer bli (ungefär) densamma som om du hade en kontinuerlig ström på 25 mA.
Om du justerar PWM till 25%, så kommer lysdioden bete sig som om strömmen var 12.5 mA, och alltså lysa svagare. Vips, så kan du väldigt enkelt styra intensiteten på dioden!
Vinsten är den följande:
I strömbegränsningsmotståndet så utvecklas ju en effekt, just eftersom det tar hand om "resterande" spänning från lysdioderna. Så om du har 2 * 3.4 V som framspänningsfall, så blir det då 9 - (2*3,4) = 2,2 V kvar.
Strömmen genom lysdioderna kommer ge upphov till en effektutveckling i motståndet, och den effekten är rent bortkastade pengar - eldad för kråkorna, bokstavligt talat. (Nå, här kan vi gå in och prata uppvärmning och sånt, men det hör inte hit). I ditt specifika fall så kommer resultatet vara att batteriet tar slut snabbare.
Men, antag först att du inte har PWM-begränsat strömmen enligt ovan, utan konstant drar 25 mA (88 ohm). Det blir ju då 2,2 * 25 = 55 mW effektutveckling i moståndet.
I fall två så har du ett mindre motstånd, så att du istället drar 50 mA. Det innebär 44 ohm. OM lysdioden alltid är på, så kommer det då bli 2,2 * 50 = 110 mW effektutveckling. Men, istället så har du ju nu lysdioden avstängd hälften av tiden, så hälften av tiden så blir det ingen effektutveckling alls! Alltså blir totalsiffran 50% av 110 mW, eller 55 mW.
Men vänta nu, det blev ju precis samma... nu är jag förvirrad Wedge. Vad var vinsten?
När det gället lysdioder så är en av de fina sakerna med dom att de har i princip obegränsad livslängd med avseende på till/frånslag. Du kan blinka hur mycket du vill och dioden mår inte sämre för det.
Så vinsten med PWM är att du kan justera ljusstyrkan, och kan du göra det så kan du där spara effekt, och därmed batteritid.
Ett batteri har en viss kapacitet. Den brukar anges i Ampere-timmar (Ah) eller kanske Watt-timmar (Wh) (enkel matte med batterispänningen bara där). Ett laddningsbart 1.5V AA-batteri kanske ligger på runt 2000 mAh, och minns jag inte fel så brukar 9V-batterier ligga på ungefär 150 mAh. Så har du någon form av referens.
Antag att du har ett batteri på 4 Wh, och en krets som drar 1 W. Du kan då driva den i 4 timmar. Eller, om du har något som drar 4 W, så kan du driva den i 1 timme. Ser du kopplingen mellan slösad effekt i ett motstånd och batteritid?
Om du kopplar för många lysdioder i serie, så att deras framspänningsfall blir större än batterispänningen, så kommer de att fungera som sina egna strömbegränsningsmotstånd. Problemet är bara att de inte följer ohms lag, utan strömmen kommer bli mycket liten, och de kommer antagligen inte alls att lysa. En något avancerad självstudiepunkt kan vara att titta på ström-spänningskaraktäristik för motstånd, och för lysdioder. I ena fallet blir det en linje genom origo med konstant lutning (lutningen är resistansen). I andra fallet så får du en exponentialkurva, en mycket liten ökning av spänningen ger en stor ökning av strömmen.
Strömbegränsningsmotstånd måste du ha, oavsett. Har du inte det så hjälper inte PWM mycket, för dioderna kommer att dra en väldigt hög ström under den lilla tid du har dom igång. De kanske överlever, men det blir svårt att få till någon vettig dimningsfunktion, och det kommer variera mycket beroende på exakt vilka lysdioder du monterar.
Effekten i motstånden ska räknas på den ström som går igenom motståndet, och den spänning som ligger över motståndet. Spänningen är i ditt fall 9V minus totalt framspänningsfall. Alltså 44 mW. Vill du läsa på lite mer så heter det "Kirchoffs spänningslag" (Kirchoff's Voltage Law, KVL).
Och så hade du en punkt till där ja. Basmotstånden.
För att förklara det så får vi dra in lite transistorlära. Det här blir lite förenklat och säkerligen lite fel här och var...
Transistorn fungerar (i ditt fall) som en strömförstärkare. Strömmen som går kollektor-emitter styrs av den ström som går bas-emitter. Och den gör det med en förstärkningsfaktor, ofta kallad hfe. hfe varierar med olika transistorer, men står alltid med i datablad. Räkna alltid med sämsta fallet när du designar. I ditt fall blir det då ungefär en faktor 100.
Så, om du har en basström som är 1 mA, så kommer det gå en kollektorström som är 100 mA. MEN, det är under förutsättning att det faktiskt går att dra en ström genom kollektorn som är så stor. Transistorn kommer inte att kunna tvinga fram strömmen, den kan bara göra det möjligt för den att gå. I ditt fall så blir ju strömmen begränsad av lysdioder och strömbegränsningsmotstånden. Låt oss säga till 25 mA. Har du då en basström på 1 mA så säger man att transistorn har bottnat, och tillåter maximal ström att gå. (Det här är egentligen inte definitionen på "bottnad", men det är ett andra krav på det, men för den här diskussionen så duger det gott)
Hur räknar man då fram basström?
Mellan bas och emitter ligger alltid ett diodframspänningsfall (om transistorn är på), det har att göra med hur prylen är gjord. Spänningen mellan bas och emitter kommer alltså alltid vara 0.7 V (ungefär). I ditt fall så innebär det att basmotståndet på ena sidan har en 5V-utgång från arduinon, och på andra sidan 0.7V. Alltså 4.3 V spänningsskillnad. Ohms lag ger oss då en ström på 4,3 mA (med 1k basmotstånd). Som du ser så fungerar även 10k, eftersom det räcker med 250 µA basström för att tillåta tillräckligt stor ström att gå genom kollektorn. Nu ska man ju inte lägga sig allt för nära, men 430 µA (alltså med 10k) är ju nästan en faktor 2 högre än vad som krävs, och borde fungera fint.
Här ser du också att man kan spara effekt. Basströmmen på 4,3 mA gör ju ingen nytta alls i ditt fall. Så här har vi 5V * 4,3 mA = 21,5 mW som vi just nu slösar bort. Med 10k så blir det istället bara 2,15 mW, eller en vinst på nästan 20 mW. Det är nästan en fjärdedel av den effekt som en av dina lysdioder drar, så genom en sån enkel ändring så har du ökat batteritiden med ungefär 2% (1/4 av 8 lysdioders effekt är 3%, men sen drar ju arduinon lite ström också)