PWM(Pulse Width Modulation)の基本

PWMがどのように動作するのかとスケッチでの使い方を学びます。


LAST REVISION: 2022/12/15 22:42


Fadingのスケッチ例は、LEDをフェードさせるためのアナログ出力(PWM)の使用方法を示しています。Arduinoソフトウェアの、ファイル > スケッチ例 > Analogメニューから利用できます。

Pulse Width Modulation(PWM)は、デジタル機器でアナログ出力を行うための技術です。方形波(オンとオフの繰り返し)を生成するためにデジタル制御が使われています。このオンオフのパターンで、ボード電圧の最大値(例えばUNOでは5V、MKRボードでは3.3V)とオフ(0V)の間の電圧を、オンの時間とオフの時間の割合を変化させることで、シミュレートします。オンの時間の長さをパルス幅と呼びます。アナログ値を変化させるには、パルス幅を変更(変調)します。例えば、このオンオフパターンを充分早くLEDに対して繰り返すと、0VとVccとの間の安定した出力が生成され、LEDの明るさを制御することができます。

以下の図で、緑の線は一定の時間間隔を表します。この期間はPWM周波数の逆数です。言い換えると、ArduinoのPWMの周波数が500Hzのときに、緑の線の間は2ミリ秒になります。analogWrite()の呼び出しは、0から255のスケールで、例えば、analogWrite(255)は100%のデューティ比となり、analogWrite(127)では50%のデューティ比になります。

マイクロコントローラによっては、PWMは特定のピンでだけ利用可能です。どのピンでPWMを利用できるかは、ボードのピンアウト図を見てください。チルダ(~)マークがついています。

この例を実行したら、Arduinoを持って前後に振ってみてください。あなたがやっていることは、時間を空間にマッピングすることです。我々の目には、LEDのが伸びたり縮んだりします。今、あなたはパルス幅を見ています。

Written by Timothy Hirzel

オリジナルのページ

https://docs.arduino.cc/learn/microcontrollers/analog-output

最終更新日

January 29, 2023

inserted by FC2 system