PWM: Difference between revisions

From Frotmail Projects
Jump to navigation Jump to search
Created page with "PWM ofwel Pulse Width Modulation is een manier om digitaal de snelheid van een motor, of helderheid van een ledje/lampje aan te passen. Stel we nemen een refresh van 100hz en een resolutie van 8 bits. bij 255 is de led 100% aan bij 127 is de led 50% aan bij 0 is de led uit Door de refresh van 100 hz te kiezen zien we de led niet knipperen (het menselijk oog haakt af tussen de 50-100 hz, en zal denken dat hij continu brandt) peudo code: functie pwm..."
 
(No difference)

Latest revision as of 09:09, 5 April 2022

PWM ofwel Pulse Width Modulation is een manier om digitaal de snelheid van een motor, of helderheid van een ledje/lampje aan te passen.


Stel we nemen een refresh van 100hz en een resolutie van 8 bits.


bij 255 is de led 100% aan

bij 127 is de led 50% aan

bij 0 is de led uit


Door de refresh van 100 hz te kiezen zien we de led niet knipperen (het menselijk oog haakt af tussen de 50-100 hz, en zal denken dat hij continu brandt)

peudo code:

functie pwm                  // Deze functie wordt door een timer aangeroepen
{
   teller++;                 // Bij iedere "run" wordt de teller 1 opgehoogd
   if teller == 0            // en na de 255 zal de teller weer bij 0 verdergaan
     poort_aan;              // Als de teller weer bij 0 is moet de poort weer aan
                             // dan begint namelijk een nieuwe pwm cyclus
   if teller == pwm_gewenst  // Als de teller gelijk is aan pwm_gewenst betekend dit 
     poort_uit;              // dat de poort nu precies `pwm_gewenst` tikken heeft aangestaan
                             // En dan mag de poort uit tot de volgende cyclus
}


Afbeelding:pwm.png

In deze afbeelding staat een voorbeeld van PWM. Iedere 256 kloktikken zal de teller weer bij 0 beginnen en dus de poort uitzetten, daarna blijft de poort net zolang aan als de waarde in pwm_gewenst (PWM in de tekening)

Wanneer we een PWM frequentie willen van 100 hz en een resolutie van 256 tikken, zullen we de cpu dus 100 x 256 keer per seconde, de bovenstaande pwm_functie aan moeten laten roepen.