Stap 3: Gebruik van Pulse Width Modulation (PWM)
Puls breedte modulatie (PWM) is een techniek voor het simuleren van analoge waarden op een digital pin. Er zijn verschillende digitale pinnen op Arduino boards Arduino boards die ondersteuning bieden voor PWM afhankelijk van de bord die u gebruikt. Bijvoorbeeld ondersteunt degene of Yun we in deze workshop gebruiken 8-bits (0-255) PWM op digitale pennen 3, 5, 6, 9, 10, 11 en 13 met de analogWrite() functie.
PWM simuleert analoge gegevens door het creëren van een blokgolf (in feite een herhalende schakelen tussen in- en uitschakelen) waar de duur van 'tijdig' is de pulsbreedte. Als de blokgolf heeft een pulsbreedte van 50% (beter bekend als een duty cycle), dan is de uitvoer van die pin gelijke hoeveelheden in- en uitschakelen. Als de taakcyclus is 25%, dan zijn de uitvoer van de pincode op voor slechts een kwart van het pulserend sproeien (omgekeerd het zal zijn uit voor drie keer zo lang als het brandt - 25%, 75% korting).
Omdat de ramen van de tijd van een cyclus is te snel voor het menselijk oog waarnemen (ongeveer 2 milliseconden op de Arduino pinnen die ondersteuning bieden voor PWM), in plaats van een LED stroboscoop of flikkering veroorzaakt, lijkt het gewoon meer of minder helder. Met behulp van een 25% duty cycle zou de LED op (hoog vermogen) voor de helft een milliseconde en uitschakelen (lage output) voor 1.5 milliseconden, waardoor de LED lijken te zijn op 25% helderheid. Dus terwijl we zijn niet echt analoge gegevens naar een digitale LED verzendt, zijn we met behulp van PWM te simuleren het effect van analoge gegevens.