コンピューターは、0と1、オンとオフといった単純な言葉で話します。この白黒のシンプルさは心地よいかもしれませんが、現実の世界はさまざまなグレーの色合い、あるいは人間にとっては赤、緑、青の強さで存在しています。これまで説明したように、バイナリ値に基づいて実際の電圧レベルを変化させる デジタル-アナログ コンバーター を作成することは可能です。それが利用できない場合は、別のオプションとして、パルス幅変調 (PWM) を使用してさまざまな種類の電子機能を制御することもできます。
パルス幅変調の基礎
PWMは、一連のパルスを繰り返すことでさまざまな電圧出力をシミュレートします。これらのパルスは一定の速度で発生しますが、各パルスの長さはシミュレートされた電圧に応じて変化します。このパルス長の変動はPWMの「デューティ サイクル」として表され、次の計算を使用してパーセンテージとして確立できます。
パルス時間/各パルスの開始間の時間間隔
各パルス時間が0.005秒で、新しいパルスが0.01秒ごとに開始される場合、デューティ サイクルは50% となり、元の入力電圧レベルの半分をシミュレートします。
ただし、同じコントローラ内であっても、すべてのPWMが同じように作成されるわけではないことに注意してください。たとえば、 Arduino Uno ボードには、デフォルトで2つの異なる周波数で動作する6つのハードウェアPWMピンがあります。特定のしきい値を超えると、多くのアプリケーションではこれは問題になりません。ただし、高速写真撮影アプリケーションで光を制御する場合や、短い瞬きで測定が狂ってしまう可能性がある コンピューター ビジョン の場合は、これを考慮してください。興味深いことに、一部の動物は人間よりも速く光の個々のフレームを分解できるため、獣医学や野生動物の集団を扱う研究者は、魅力的なPWMの用途を見つけることができるかもしれません。
PWMの応用:照明制御
おそらく、PWMの最も一般的な用途は照明の制御です。人間の目が約20 Hzより速く動く画像を見ると、私たちの脳はそれを1つの動く画像として認識します。ただし、頭やライトを素早く動かすと奇妙なアーティファクトが見えたり、調光可能な天井照明の明るさが弱まったときにちらつきが見られる場合があります。私の実験では、約30 Hzのオン/オフの点滅が目立つため、この解決策は完全に完璧ではありません。
映画業界では24 FPSに落ち着いており、米国のテレビは一般的に30 FPSで放送されていますが、より高いフレームレートで情報を使用できるかどうかは、特にゲーム コミュニティ内では、未解決で時には白熱した議論の的となっています。
例えば、 Arduino Unoボード 特徴 デフォルトのPWM速度ピンD3、D9、D10、およびD11では490.20 Hz、D5およびD6では976.56 Hzです。このデフォルトの速度はアプリケーションでは違いを生じませんが、次のような状況では違いが生じる可能性があります。
画像: ジェレミー・S・クック
この記事の最初の画像とすぐ上の画像を比較すると、 LEDについて 同じように見えます。左から右に、Arduino UnoのD5、6、9、10ピンから明るさ127で光が供給されます。このアプリケーションでは、0 ~ 255スケールの半分の強度を使用します。では、下の画像をご覧ください。カメラを上下に素早くパンすると、2つのライトが同じように光ります。
高周波ピンライトは点のように見え、低周波ピンは短い線のように見えます。理論的には、カメラの露出時間がわかれば、各パルスの時間周期を計算できます。具体的な情報がなくても、これらが2つの異なる周波数で動作するPWMライトであると想定できます。
画像: ジェレミー・S・クック
パルス幅変調とビデオ: 高速ビデオアプリケーションでの使用
高速ビデオ (240 FPSで撮影) でもPWMの証拠が明らかになっており、右側の2つの低速ライト (490.2 Hz) に大きなローリング シャッター効果が見られますが、左側の高速ライト (976.56 Hz) は安定しています。右側のライトの方が左側のライトよりもずっと明るく点滅しているように見えることに注意してください。この違いはフレームあたりの光パルスの数によるもので、通常は人間や通常のカメラでは捉えられないものです。
画像: ジェレミー・S・クック
カスタムパルス幅変調周波数
さあ試してみましょう PWM周波数をカスタム値に設定する。LEDは左から右に30.64、61.04、122.55 Hzで点滅します。各ライトの点滅は240 FPSではっきりと見えるため、高速コンピューター ビジョン アプリケーションではこれを考慮する必要があります。先ほど述べたように、30.64 Hzは肉眼で識別できました。
もし私たちが コンデンサ 30.64 Hz LED全体に渡って?より一定の光源として、パルス間の変動が少なく、同じ強度で輝くことが期待できます。10を使用するµ Fコンデンサは、方形波入力のエッジを「丸める」というわずかな違いしか生じません。2200年µ Fキャップは電圧を大幅に均一化しますが、LEDは大幅に暗く見えます。
この大きなコンデンサは瞬間的な電圧を平均化する傾向がありますが、電圧の標準偏差が低い(つまり、完全にオンでも完全にオフでもない)ため、ダイオードの電圧降下により 流れる電流の総量が少なくなる。コンデンサーを アナログからデジタルへの変換しかし、その結果光が少なくなります。
おそらくここでの教訓は、PWMは一般的にはうまく機能しますが、万能のソリューションではないということです。これは、人間の(またはコンピュータの)視覚のように複雑なものを扱う場合に特に当てはまります。
パルス幅変調DCモーターコントローラー
画像: Jeremy S. Cook、ドライバー ボード経由のPWMおよびPIDによるDCモーター制御。
PWMのもう一つの優れた用途は、 DC電気モーター。原理は、 LED照明この技術では、PWMデューティ サイクルを使用して、モーターへのさまざまな電圧レベルをシミュレートします。
比較的高い電流が流れるため、通常はモーターを直接制御することはできません。 マイクロコントローラ またはシングルボードコンピュータ。代わりに、何らかのトランジスタ設定を備えたモーター ドライバーに頼る必要があります。さらに、モーターの速度を制御する場合は、比例積分微分制御 (PID) を使用する必要があります。ピッド いくつかの要素を使用してモーターを効率的に加速または減速し、探索することができます 電動モーターのPID-PWM制御を実行する。
サーボ「PWM」制御
画像: Jeremy S. Cook、ATtiny85でも趣味のサーボ制御が可能
また、 サーボを制御するPWMリモートコントロール車両やアマチュアロボットなどのもの。ただし、趣味のサーボ制御の方法は、ライトやDCモーターとは大きく異なります。この場合、パルスは設定された50Hzのサイクルレートで発生し、デューティサイクルは5%から10%の間で変化します。つまり、-90° そして+90° 設定。これは20msの周期となり、1000からµ 2000年と2000年µ sパルス。サーボ制御は、他のアプリケーションで表示されるPWMではなく、実際には「PWMプロトコル」の結果である可能性があります。
パルス幅変調: さまざまな電子アプリケーションに最適な制御
PWMが必要ない状況もありますが、パルス幅変調は多くのアプリケーションで適切に機能します。次にモーターの速度や光の強度を制御する必要があるときは、アナログ出力コマンドを使用して信号を個別のチャンクに分割してみてください。
関連して、PWMがアプリケーションに適したソリューションでない場合は、真のDAC、または デジタルからアナログへの変換 セットアップは、必要なものかもしれません。DAC技術の詳細と、独自の R-2R DAC を「ゼロ」から構築する方法を学びます。