{"id":2410,"date":"2024-03-07T10:33:05","date_gmt":"2024-03-07T09:33:05","guid":{"rendered":"https:\/\/www.rommelkist.nl\/elec\/?p=2410"},"modified":"2024-05-02T12:34:02","modified_gmt":"2024-05-02T10:34:02","slug":"pwm-pulsbreedte-modulatie","status":"publish","type":"post","link":"https:\/\/www.rommelkist.nl\/elec\/elektronica\/pwm-pulsbreedte-modulatie\/","title":{"rendered":"PWM &#8211; Pulsbreedte modulatie"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Een Arduino kan geen wisselende spanning (analoog signaal) aanbieden. Alleen 0V en (afhankelijk van welke smaak Arduino je hebt) 3V, of 5V. Door nu een pin met een bepaalde frequentie, gedurende een bepaalde tijd afwisselend aan en uit te zetten lijkt het of er een analoge spanning op staat. Dat principe heet pulsbreedte modulatie of pulse width modulation (PWM).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Arduino-taal:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\npinMode(PinA, OUTPUT);\nanalogWrite(PinA, n);\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">PinA wordt als output geconfigureerd. Op die pin worden pulsen gezet met een duty cycle van 0% (n = 0) tot 100% (n = 255). Het lijkt dan dat er een &#8220;analoog&#8221; signaal op PinA wordt aangeboden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2024\/03\/image-21.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"188\" src=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2024\/03\/image-21.png\" alt=\"\" class=\"wp-image-2415\"\/><\/a><figcaption class=\"wp-element-caption\">Een wisselende spanning door PWM opgewekt.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2024\/05\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"871\" height=\"282\" src=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2024\/05\/image.png\" alt=\"\" class=\"wp-image-2675\" style=\"width:500px\" srcset=\"https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/05\/image.png 871w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/05\/image-300x97.png 300w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/05\/image-768x249.png 768w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/05\/image-425x138.png 425w\" sizes=\"auto, (max-width: 871px) 100vw, 871px\" \/><\/a><figcaption class=\"wp-element-caption\">Blokgolf met verschillende duty-cycles.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dit principe wordt <a href=\"https:\/\/infvo.nl\/lab\/index.php\/Physical_computing\/Analoge_uitvoer_(PWM)\">hier<\/a> goed uitgelegd. Daar schrijven ze o.a. ook dat de frequentie van het PWM-signaal (d.m.w. analogWrite(pin, n) ongeveer 490 Hz is en dat dat evt. aan te passen is door het programmeren van de timers.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2024\/05\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"974\" height=\"371\" src=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2024\/05\/image-1.png\" alt=\"\" class=\"wp-image-2683\" style=\"width:500px\" srcset=\"https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/05\/image-1.png 974w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/05\/image-1-300x114.png 300w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/05\/image-1-768x293.png 768w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/05\/image-1-425x162.png 425w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><\/a><figcaption class=\"wp-element-caption\">Duty-cycle 50% bij verschillende frequenties.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><s>In tegenstelling tot de&nbsp;<strong>PWM<\/strong>&nbsp;instructie, kan bij&nbsp;<strong>HPWM<\/strong>&nbsp;de frequentie worden ingesteld (bij&nbsp;<strong>PWM<\/strong>&nbsp;ligt dit vast, afhankelijk van de oscillator).<\/s> Dit geldt voor voor PIC&#8217;s.<br>Voor bepaalde motoren is 1000Hz tot 2000Hz (1kHz &#8211; 2kHz) een mooie waarde. Bij een lagere frequentie loopt zo&#8217;n motor rauw en maakt meer lawaai dan bij 2000Hz. En bij hele hoge frequenties kan de motor het niet bijbenen en levert dan kracht in. <br>De motortjes van mijn treintjes schijnen het beter te doen op een lagere frequentie: tot ca. 900Hz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je kunt de PWM zelf instellen door op een pin (pin 13 in onderstaand voorbeeld) tussen een HIGH en een LOW signaal een delay in te zetten en daarna weer een delay van een bepaalde lengte te plaatsen. Er zitten wel wat nadelen aan, zoals <a href=\"https:\/\/docs.arduino.cc\/tutorials\/generic\/secrets-of-arduino-pwm\/\">hier<\/a> beschreven. <\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: arduino; title: ; notranslate\" title=\"\">\nvoid setup()\n{\n  pinMode(13, OUTPUT);\n}\n\nvoid loop()\n{\n  digitalWrite(13, HIGH);\n  delayMicroseconds(1000);\n  digitalWrite(13, LOW);\n  delayMicroseconds(1000);\n}\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2024\/04\/image-56.png\"><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"198\" src=\"https:\/\/www.rommelkist.nl\/elec\/wp-content\/uploads\/2024\/04\/image-56.png\" alt=\"\" class=\"wp-image-2670\" srcset=\"https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/04\/image-56.png 606w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/04\/image-56-300x98.png 300w, https:\/\/www.rommelkist.nl\/wp-content\/uploads\/2024\/04\/image-56-425x139.png 425w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><\/a><figcaption class=\"wp-element-caption\">Resultaat van bovenstaande Aduino-code.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Rekenvoorbeeld<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Duty cycle bij 150ms aan, 50ms uit: <br><br>150\/(150 + 50) x 100% =<br>150 \/ 200 x 100% =<br>0,75 xx 100% =<br>75%<br><br>Periode = 200ms.<br>Frequentie = 1000ms \/ 200ms = 5Hz<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Op de Arduino website (<a href=\"https:\/\/docs.arduino.cc\/tutorials\/generic\/secrets-of-arduino-pwm\/\">hier<\/a>) gaan ze uitgebreid in op het instellen van PWM door aanpassing van de timers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Een Arduino kan geen wisselende spanning (analoog signaal) aanbieden. Alleen 0V en (afhankelijk van welke smaak Arduino je hebt) 3V, of 5V. Door nu een pin met een bepaalde frequentie, gedurende een bepaalde tijd afwisselend aan en uit te zetten lijkt het of er een analoge spanning op staat. Dat principe heet pulsbreedte modulatie of pulse width modulation (PWM). In Arduino-taal: PinA wordt als output geconfigureerd. Op die pin worden pulsen gezet met een duty cycle van 0% (n = 0) tot 100% (n = 255). Het lijkt dan dat er een &#8220;analoog&#8221; signaal op PinA wordt aangeboden. Dit principe wordt<span class=\"more-link\"><a href=\"https:\/\/www.rommelkist.nl\/elec\/elektronica\/pwm-pulsbreedte-modulatie\/\">Read More &rarr;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[6,3],"tags":[],"class_list":["entry","author-admin","post-2410","post","type-post","status-publish","format-standard","category-arduino","category-elektronica"],"_links":{"self":[{"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/posts\/2410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/comments?post=2410"}],"version-history":[{"count":0,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/posts\/2410\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/media?parent=2410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/categories?post=2410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rommelkist.nl\/elec\/wp-json\/wp\/v2\/tags?post=2410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}