Pulse Width Modulation

PWM – Pulse Width Modulation

PWM bedeutet Pulse Width Modulation und beschreibt ein Verfahren, bei dem der Strom in schneller Abfolge ein- und abgeschaltet wird. Ein Zeitintervall ist dabei 20 Millisekunden lang. Träge Bauelemente kann man durch ein PWM Signal dimmen. Ist der Strom z.B. 10 Millisekunden ein- und danach 10 Millisekunden abgeschaltet, ist der resultierende Strom nur halb so groß. Eine LED würde also nur halb so kräftig leuchten.

Befehl

analogWrite(pwmPin, value);

value: 0 – 255
pin: Muss ein PWM-Pin sein. Auf dem Arduino-UNO-Board gibt es sechs Kanäle, die PWM-Signale erzeugen können: 3,5,6,9,10,11.

Hintergrund

Pulsweitenmodulation oder PWM ist eine Technik, die digitale Methoden verwendet, um analoge Ergebnisse zu erhalten. Dabei wird der digitale Controller verwendet, um Rechteckwellen zu erzeugen, d. h. Signale zum Öffnen und Schließen. Dieser Ein-Aus-Modus kann die Spannung zwischen dem vollständig eingeschalteten Zustand (5 Volt) und dem ausgeschalteten Zustand (0 Volt) basierend auf dem Verhältnis der Einschaltzeit zum Ausschaltzeit simulieren.


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


Die Dauer der Einschaltzeit wird als Impulsbreite bezeichnet. Um unterschiedliche Analogwerte zu erhalten, kann man diese Impulsbreite ändern oder modulieren. Verwendet man diese Modulation beispielsweise mit einer LED, entspricht das Ergebnis dem, als ob die durch LED eine konstante Spannung zwischen 0 und 5 V versorgt würde. Sie beeinflusst die Helligkeit der LED.

Arduino PWM Animation

In der Abbildung stellt der Abstand der blauen Linien eine feste Zeitspanne dar. Die Dauer oder Periode ist der Kehrwert der PWM-Frequenz. Mit anderen Worten, in dem Fall, in dem die Arduino-PWM-Frequenz ungefähr 500 Hz beträgt, entsprechen die grünen Linien 2 ms. Der Wertebereich von AnalogWrite() liegt zwischen 0 und 255. Daher erfordert analogWrite(255) beispielsweise ein Verhältnis zwischen An und Aus von 100% (immer eingeschaltet), während analogWrite (127) ein Verhältnis zwischen An und Aus von 50% (die Hälfte der Zeit) erfordert.

PWM-Pins verschiedener Boards

  • Arduino UNO: 3, 5, 6, 9 – 11
  • Arduino MEGA: 2 – 13, 44 – 46
  • Arduino Leonardo, Micro Yún: 3, 5, 6, 9, 10, 11, 13
  • NodeMCU: D1 – D8, D12
  • Teensy3: 3 – 6, 9, 10, A6 – A9

Beispiele