オペアンプ1個でつくる!PWMジェネレータ
こんなこと、やります
- PWM制御について詳しく解説
- PWM発生器をオペアンプひとつで作ってみる
- PWMの電圧・電力の実効値の計算
PWM制御について
PWM制御について解説します。
PWMとは
PWMとは、「Pulse Width Modulation」の略で、パルス幅変調の意味になります。周波数は一定ですがパルスの幅を変化させ、見かけの供給電力を変えたりすることに使われる信号です。 ようするに、「高速でスイッチをオンオフしている信号」のようなものと思ってください。 パルスのデューティ比を変えることで、見かけ上の出力電圧の大きさを変えることができます。
デューティ比とは
デューティ比とは、PWM信号の1周期における、オンとオフの割合のことです。
こちらの図の青い線がPWM信号です。そして、赤い線は見かけ上の電圧となります。
面積で考える
PWM信号を面積で考えると分かりやすいです。 こちらの図のように、青い部分の面積が大きくなればなるほど、見かけ上の出力電圧が大きくなります。電圧が変わるのであれば、負荷にかける電力も擬似的に変化させることができます。
デューティ比が100%の状態では、いわゆる直流電圧と同じことを意味します。 PWM信号の実効値の計算方法は、記事の最後で説明します。
PWM信号でLEDを調光できる?
答えは「Yes」でもあり、「No」でもあります。 PWM信号の出力電流が、どれほど出せるかによるからです。
ArduinoやRaspberry Piなどのデジタルピンでは、出力電流はせいぜい数十mAほどしか取り出せません。Lチカで使う小型のLEDでしたら、そのまま明るさを調光すできるでしょうけど、大きなLEDライトやモーターなどでは電流がまったく足りません。
そこで、MOSFETの登場です。
MOSFETは、「高速な電子スイッチ」のようなものです。MOSFETにPWM信号を与え、負荷の電源を別に用意しておけば、微弱なPWM信号でも高負荷なデバイスをコントロール可能です。 MOSFETの詳しくは Raspberry PiでMOSFETを使おう をご覧ください。
PWM制御の実用例
PWM制御が関わった記事のご紹介です。LEDの調光をはじめ、DCモータやサーボモータ制御、可変電圧器などPWM制御でいろいろなことができます。
オペアンプで作るPWMジェネレータ回路
オペアンプを使ったPWMジェネレータの回路をご紹介します。
回路図
オペアンプの指定はとくにありません。4558でも、022でも動作します。
回路の動作原理
回路の動作原理を説明します。この回路では、矩形波発生器とコンパレータ部分に分かれてます。
矩形波発生回路
前段の回路は矩形波発生器です。
秋月電子通商の オペアンプの応用回路例集 を参考にさせてもらいました。ほぼ同じですが、コンデンサCを0.01μFに変えてあります。
矩形波発振回路の周波数計算などは、 ファンクションジェネレータの製作|矩形波・三角波・正弦波発振器 をご覧ください。
この回路を組立ててオシロスコープで確認したところ、700Hzあたりの周波数で発振していました。
矩形波発生器から三角波を取り出す
実は、矩形波発生器から三角波を取り出すことができます。回路図中のTriangleから、三角波を取り出せます。 こちらの写真のように、少し歪んだ三角波ではありますが、結果として今回の用途ではまったく問題ありませんでした。
コンパレータ回路
後段の回路は、いわゆるコンパレータ回路になってます。
コンパレータとは、反転入力の電圧より非反転入力の電圧が高ければ1を、それより低ければ0を返す回路のことです。コンパレータ回路の詳しくは、 オペアンプで作るコンパレータ をご覧ください。
信号の上下の電圧値
コンパレータが1の時、オペアンプの電源電圧になります。また0では、GNDと同じ電位になります。 というのは理想の話で、実際にはそうはなりません。
GND電位よりも1V以上のオフセット電圧が生じます。最大電圧も、実際は電源電圧より少しだけ低いのが現実です。ただし、ここら辺を改善したオペアンプも販売されてます。
この回路のPWM波形をオシロスコープで観察したのが次の写真です。
信号のLowは、1Vほどで、Highは電源電圧より少し低い電圧です。こんなPWM信号でも、MOSFETを動かすには問題ありません。 MOSFETでは、2〜3Vあたりがしきい値、つまり、MOSFETがオンオフするために必要な電圧基準となっているからです。
PWMのデューティ比を変える
PWMのデューティ比を変えるには、回路図中の100kΩ可変抵抗を可変させれば可能です。 反転入力の電圧を変えられることによって、コンパレータの動作点が変化する仕組みとなってます。
こちらの写真のように、可変抵抗でデューティ比が0%から100%のPWM信号を作ることができました。
実験:回路図をブレッドボードで組み立てる
この回路をブレッドボードで組み立てて、PWM信号でLEDライトを調光してみました。
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 | 実効値 |
Vpp | PWMのpeek to peek電圧 |
実効値の導き出し方
図のように、微小時間におけるPWMの仕事量と電力を考えてみます。
それぞれの記号を、次のとおり定義しました。
記号 | 意味 |
---|---|
D | デューティ比(%) |
T | 周期(s) |
N | 微小時間における波の数 |
Vrms | 実効値 |
Vpp | PWMの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} $$が導き出されました。