PWMジェネレータをオペアンプ1個でつくろう!

 

こんなこと、やります

  • PWM制御について詳しく解説
  • PWM発生器をオペアンプひとつで作ってみる
  • PWMの電圧・電力の実効値の計算

PWM波形をオシロスコープで観察
PWM波形をオシロスコープで観察

PWM制御について

PWM制御について解説します。

PWMとは

PWMとは、「Pulse Width Modulation」の略で、パルス幅変調の意味になります。周波数は一定ですがパルスの幅を変化させ、見かけの供給電力を変えたりすることに使われる信号です。

ようするに、「高速でスイッチをオンオフしている信号」のようなものと思ってください。

パルスのデューティ比を変えることで、見かけ上の出力電圧の大きさを変えることができます。

PWMをオシロスコープなどで観察しますと、尺取り虫のように波形が動いていておもしろいです。
また「パルス幅変調」と似たものに「パルス周波数変調」がありますが、こちらはその名のとおり、「周波数」そのものを変えるものになります。

デューティ比とは

デューティ比とは、PWM信号の1周期における、オンとオフの割合のことです。

こちらの図の青い線がPWM信号です。そして、赤い線は見かけ上の電圧となります。

PWMにおける出力電圧の変化
PWMにおける出力電圧の変化

面積で考える

PWM信号を面積で考えると分かりやすいかもしれません。

こちらの図のように、青い部分の面積が大きくなればなるほど、見かけ上の出力電圧が大きくなります。電圧が変わるのであれば、負荷にかける電力も擬似的に変化させることができます。

PWMデューティ比の説明図
PWMデューティ比の説明図

デューティ比が100%の状態では、いわゆる直流電圧と同じことを意味します。

PWM信号の実効値の計算方法は、記事の最後で説明します。

PWM信号でLEDを調光できる?

ラズパイでLEDライトの調光
ラズパイでLEDライトの調光

答えは「Yes」でもあり、「No」でもあります。

PWM信号の出力電流が、どれほど出せるかによるからです。

Arduinoやラズパイなどのデジタルピンでは、出力電流はせいぜい数十mAほどしか取り出せません。Lチカで使う小型のLEDでしたら、そのまま明るさを調光すできるでしょうけど、大きなLEDライトやモーターなどでは電流がまったく足りません。

そこで、MOSFETの登場です。

MOSFETは、「高速な電子スイッチ」のようなものです。MOSFETにPWM信号を与え、負荷の電源を別に用意しておけば、微弱なPWM信号でも高負荷なデバイスをコントロール可能です。

MOSFETの詳しくはラズパイでMOSFETを使おうをご覧ください。

PWM制御の実用例

PWM制御が関わった記事のご紹介です。LEDの調光をはじめ、DCモータやサーボモータ制御、可変電圧器などPWM制御でいろいろなことができます。

オペアンプで作るPWMジェネレータ回路

オペアンプを使ったPWMジェネレータの回路をご紹介します。

回路図

オペアンプで作るPWMジェネレータ回路
オペアンプで作るPWMジェネレータ回路

オペアンプの指定はとくにありません。4558でも、022でも動作します。

回路の動作原理

回路の動作原理を説明します。この回路では、矩形波発生器とコンパレータ部分に分かれています。

矩形波発生回路

前段の回路は矩形波発生器です。

矩形波発振回路部
矩形波発振回路部

秋月電子通商の オペアンプの応用回路例集 を参考にさせてもらいました。ほぼ同じですが、コンデンサCを0.01μFに変えてあります。

矩形波発振回路の周波数計算などは、[](relaxation-oscillator.html) をご覧ください。

この回路を組立ててオシロスコープで確認したところ、700Hzあたりの周波数で発振していました。

矩形波発生器から三角波を取り出す

実は、矩形波発生器から三角波を取り出すことができます。回路図中のTriangleから、三角波を取り出せます。

こちらの写真のように、少し歪んだ三角波ではありますが、結果として今回の用途ではまったく問題ありませんでした。

疑似三角波
疑似三角波

コンパレータ回路

後段の回路は、いわゆるコンパレータ回路になっています。

コンパレータ回路部
コンパレータ回路部

コンパレータとは、反転入力の電圧より非反転入力の電圧が高ければ1を、それより低ければ0を返す回路のことです。コンパレータ回路の詳しくは、オペアンプで作るコンパレータをご覧ください。

コンパレータの仕組み
コンパレータの仕組み

信号の上下の電圧値

コンパレータが1の時、オペアンプの電源電圧になります。また0では、GNDと同じ電位になります。

というのは理想の話で、実際にはそうはなりません。

GND電位よりも1V以上のオフセット電圧が生じます。最大電圧も、実際は電源電圧より少しだけ低いのが現実です。ただし、ここら辺を改善したオペアンプも販売されているようです。

この回路のPWM波形をオシロスコープで観察したのが次の写真です。

オシロスコープで観察したPWM波形
オシロスコープで観察したPWM波形

信号のLowは、1Vほどで、Highは電源電圧より少し低い電圧です。こんなPWM信号でも、MOSFETを動かすには問題ありません。

MOSFETでは、2〜3Vあたりがしきい値、つまり、MOSFETがオンオフするために必要な電圧基準となっているからです。

PWMのデューティ比を変える

PWMのデューティ比を変えるには、回路図中の100kΩ可変抵抗を可変させれば可能です。

反転入力の電圧を変えられることによって、コンパレータの動作点が変化する仕組みとなってます。

こちらの写真のように、可変抵抗でデューティ比が0%から100%のPWM信号を作ることができました。

PWM波形をオシロスコープで観察
PWM波形をオシロスコープで観察

実験:回路図をブレッドボードで組み立てる

この回路をブレッドボードで組み立てて、PWM信号でLEDライトを調光してみました。

100均のLEDをPWM制御で調光
100均のLEDをPWM制御で調光

MOSFETを使ってますが、問題なくLEDライトの明るさのコントロールに成功です!

わざわざRaspberry PiやArduinoなどのマイコンボードを使わなくても、アナログ回路だけでPWM制御できるのは魅力的です。

ちょっとしたコントローラに使えますし、省エネです。ぜひ皆さんも、お試しください。

作るのがめんどうな方は、モジュール化されたPWM発生器を使ってみてはいかがでしょうか?こちらの商品は、オペアンプの代わりにタイマーIC555を使っているようです。

精度の良い三角波発振器

三角波の部分で、もっと正確なものを作りたい場合は、オペアンプを2段使えば可能です。

次の回路では、約150Hzで発振する、とてもきれいな三角波がつくれます。

精度の良い三角波発振回路
精度の良い三角波発振回路

三角波の周波数は、抵抗とコンデンサの値によって次式で決めるられます。ただし、R2はR3より大きくなければなりません。

$$ f = \frac{R_2}{4CR_1R_3} $$

詳しくは矩形波・三角波・正弦波発振器でファンクションジェネレータの製作をご覧ください。

PWMの電圧・電力の実効値

ここからは、PWM信号の実行値の計算方法を説明します。

実効値とは

実効値とは、負荷抵抗に交流の電圧を加えた時の電力が、同じ抵抗に直流電圧を加えた場合の電力と等しくなる時の交流電圧と交流電流のことです。

実効値の計算式

PWM信号の電圧の実効値は次の式で計算できます。

$$V_{rms}=\sqrt{D}V_{p-p} $$

記号意味
Dデューティ比(%)
Vrms実効値
VppPWMのpeek to peek電圧

実効値の導き出し方

図のように、微小時間におけるPWMの仕事量と電力を考えてみます。

PWM信号を電力で考える
PWM信号を電力で考える

それぞれの記号を、次のとおり定義しました。

記号意味
Dデューティ比(%)
T周期(s)
N微小時間における波の数
Vrms実効値
VppPWMのpeek to peek電圧
W仕事率
P電力

図の長方形の面積かけるN個が微小時間の仕事率であるので、

$$W=DT\frac{V_{p-p}^2}{R}N$$

です。\(dt=NT\)をこれに代入すると、次式となります。

$$W=D\frac{V_{p-p}^2}{R}dt$$

これをdtで除すれば、

$$\frac{d}{dt}W=D\frac{V_{p-p}^2}{R}$$

です。

さて、仕事率と電力の関係は\(P=\frac{d}{dt}W\)ですから、

$$P=D\frac{V_{p-p}^2}{R} \tag{1}$$

です。

ここで、負荷Rに電圧の実効値Vrmsを印加した時を考えます。すると電力Pは次式となります。

$$P=\frac{V_{rms}^2}{R} \tag{2}$$

式(1)(2)より、

$$D\frac{V_{p-p}^2}{R}=\frac{V_{rms}^2}{R}$$

です。これを展開すると、PWM信号の電圧の実効値、

$$V_{rms}=\sqrt{D}V_{p-p} $$

が導き出されました。

記事に関するご質問などがあれば、
@tosisico または お問い合わせ までご連絡ください。
関連記事