Arduino: PWM - LED fényerőszabályzó
Forrás: arduino.cc/en/Tutorial/PWM,
arduino.cc/en/Tutorial/AnalogWrite
Ugyanazt a kapcsolást állítjuk össze, mint a Potencióméteres kapcsolásban, de itt nem a periódusidőt, hanem végeredményben a világítás erősségét szabályozzuk.
Mivel a LED működéséhez szükség van a nyitófeszültség meglétére, nem lehet analóg feszültségosztóval halványítani a megvilágítás erősségét.
Többek között erre ad megoldást a PWM.
Az ábrának megfelelően a LED kikapcsolt és bekapcsolt állapotainak egymáshoz viszonyított idejét változtatjuk olyan magas frekvencián (min. 500Hz), hogy ebből a villogásból folyamatos fényt lássunk. Mivel azonban a kibcsájtott fénymennyiség átlaga összhatásként eltérő az egyes grafikonokon, 0, 25, 50, 75, 100% közötti szabályzást érzékelünk.
int potPin = 2; // potencióméter középső lába int ledPin = 13; // LED int val = 0; void setup() { pinMode(potPin, INPUT); pinMode(ledPin, OUTPUT); } void loop() { val = analogRead(potPin); analogWrite(ledPin, val/4); }
Az analogWrite() fv második paramétere 0-255 közötti szám, ahol 0 felel meg a 0%-nak, a 255 pedig a 100%-nak. (Így 256 fokozatban tud szabályozni.)
Az analogRead() fv azonban 0-1023 közötti számot olvas be, ezért a beolvasott val érték negyedét kellett az analogWrite argomentumába írni.