Stap 1: Over PWM
Pulse Width Modulation, of PWM, is een techniek voor het krijgen van analoge resultaten met digitale middelen.
De gemiddelde waarde van de spanning (en huidige) gevoed met de belasting wordt gecontroleerd door het draaien van de schakelaar tussen levering en last aan en uit in een snel tempo. Hoe langer de schakelaar aan wordt vergeleken met de off-perioden, hoe hoger de totale kracht geleverd met de belasting. Veronderstel enkel een schakelaar om te openen en sluit zeer snel.
Digitale bediening wordt gebruikt voor het maken van een blokgolf, een signaal omgeschakeld tussen in- en uitschakelen. Dit patroon aan / uit-kan simuleren spanningen tussen volledige (5 volt) en uit (0 volt) door het veranderen van het gedeelte van de tijd die het signaal doorbrengt op ten opzichte van de tijd die het signaal besteedt uit. De duur van "on time" heet de pulsbreedte. Als u wilt krijgen verschillende analoge waarden, u wijzigt of moduleren, dat pulsbreedte. Als u dit aan / uit-patroon snel genoeg met een LED bijvoorbeeld herhalen, het resultaat is als wanneer het signaal een constante spanning tussen 0 en 5 v is controle van de helderheid van de LED.
De Arduino UNO heeft 6 digitale pinnen dat kunnen worden gebruikt als PWM-uitgangen (3, 5, 6, 9, 10 en 11). De Arduino kan PWM signaal met de analogWrite() functie. Een oproep tot analogWrite() is op een schaal van 0 - 255, zodanig dat analogWrite(255) vraagt een 100% duty cycle (altijd aan), en analogWrite(127) is de plicht van een 50% cyclus (op de helft van de tijd) bijvoorbeeld.
(zie afbeelding hierboven)