見出し画像

目指せ!ES#005:デジタル回路でアナログ信号を作るPWM


白黒だけでグレーを作る?

エンベデッドシステムスペシャリスト試験を受験しようとする人でしたら,アナログとデジタルの違いは今さら説明するまでもないかと思います.

アナログとデジタルをモノトーン画像表現で例えれば,「アナログ(データ)は中間グレーを自由に使えるグレースケール画像」「デジタル(データ)は白と黒の二色しか使えないモノクロ画像」と例えられます.

本記事で紹介するPWM(Pulse Width Modulation:パルス幅変調)は,デジタル回路からアナログの信号を産み出すテクニックです.先ほどのモノトーン画像表現で例えるならば,ディザリングという手法を使って,中間グレーを再現することに相当します.遠目にはグレーに見えますが,拡大すると白・黒の二色しか使われていません.

アナログ・デジタル・PWMをモノトーン画像で例える

黒と白を交互に並べれば遠目には50%グレーに見え,黒の割合を増せば黒っぽく,白の割合を増せば白っぽく見えるということは直観的に理解できるかと思います.

黒白の比率が遠目にはグレーの濃さに相当する

デジタル回路からアナログ信号を作る

そもそも「変調」とは

本筋から少し離れますが,「変調」について先に話しておきましょう.

変調というのは情報を運ぶレールの役割を果たす「搬送波」に別の信号を混ぜ込んで乗せる技術のことです.代表的なものはラジオの伝送に使われる「AM(振幅変調)」と「FM(周波数変調)」です.電波を飛ばす時は高周波にした方がアンテナを小型化できるなどのメリットが大きいので,周波数が低い(音声が含む周波数成分は100~5[kHz]程度)音声をそのまま電波として放出するのは無駄が多いですし,電波は四方八方に飛んでいきますから皆が同じ音声周波数帯域で電波を出したら,ぐちゃぐちゃに混乱してしまいます.

そこで,無線通信では,情報を運ぶレールとなる「搬送波」を用意して,そこに音声信号を変調して混ぜ込むという手法を取りました.「AM(振幅変調)」は搬送波の振幅変化として音声信号を混ぜ込む方法で,「FM(周波数変調)」は搬送波の周波数変化として音声信号を混ぜ込む方法です.下の図を見てもらえればイメージがしやすいでしょう.

AM変調とFM変調

PWM (Pulse Width Modulation:パルス幅変調)

ルス」といえば,某天空の城の破壊命令ですが,そうではなくて「ルス」です.「パルス(波)」は決まった値にポンと上がって,またポンとゼロに戻るような四角い信号のことを言います.一つだけ孤立して存在するものを「パルス」ということもありますが,ここでは四角が一定間隔で連続する信号と思ってください.(その代わり,以下の説明では孤立して存在する1つの四角形を「単発パルス」と表現して区別します)

パルス波

PWMはPulse Width Modulationの頭文字をとった略称で,日本語では直訳そのまま「パルス幅変調」といいます.パルス波を搬送波として,パルス波を作っている単発パルスの「幅」を変えることで変調を行う手法です.

PWM

具体的な数字で考えた方がわかりやすいので,パルス波の最大値(H)が5[V],最低値(L)が0[V]の電圧としましょう.

H(=5[V])が常時出っぱなしの状態(そうなるともはやパルス波と呼んでいいのかという気もしますが)が最大(100%)出力.先述の白黒画像の例えでいえば,真っ黒の状態です.

PWM信号 100%

次にHとLが半分ずつ交互に現れる状態を考えます.つまり単発パルス1つのH:L比率が1:1になっている状態です.この場合,おのおのの瞬間はHかLのどちらかでしかないのですが.全体を平均化して考えると,これは出力が50%になっていると考えられます.つまり電圧としては5×50%=2.5[V]に相当します.先述の白黒画像の例でいえば,白黒が交互に並んで50%グレーを表している状態です.

PWM信号 50%

次は単発パルス1つのH:L比率が1:3の状態を考えます.この場合も,おのおのの瞬間はHかLのどちらかでしかないのですが.全体を平均化して考えると,これは出力が約25%になっていると考えられます.つまり電圧としては5×25%=1.25[V]に相当します.先述の白黒画像の例でいえば,白黒が3:1に並んで25%グレーを表している状態です.

PWM信号 25%

当然ながら,Lが常時出っぱなしの状態(これももはやパルス波と呼んでいいのかという気もしますが)が最低(0%)出力.先述の白黒画像の例でいえば,真っ白の状態です.

PWM信号 0%

信号自体は5[V]か0[V]のどちらかでしかないデジタル出力でありながら,それを高速に切り替えて「平均電圧」としてとらえることで,0~5[V]の間であれば任意の電圧を表現できます.1周期に対するHの時間比率を「デューティー比」といいます.

$$
Duty = \frac{T_H}{T_H+T_L}
$$

PWM信号の応用例

LEDのホタル点滅

組み込みプログラミングを学習するときや,初めて触るマイコンボードの動作テストをするとき,必ずと言っていいほど行われるのが,LEDの点滅(通称Lチカ)です.組み込みプログラミングの"Hello World”(※)とも言われるくらいです.


※ C言語の開発者によって執筆された世界最初のC言語解説書『プログラミング言語C』において,最初に示された演習が「画面に”Hello World”と表示する」だったことに由来します.


Lチカは一定間隔でLEDをチカチカさせます.チカチカ見えるということは,人間の目がLEDの光った/消えたの変化を追いかけて認識できているということです.点滅速度を速くして,おおよそ20[Hz](50[msec]周期)を超えると,残像効果によって人間の目には点滅がわからなくなります(つまり視覚が持つ残像効果が,PWM信号を平均化する役割を果たします).その状態でPWMを用いてデューティー比を変化させると,LEDの明るさが変化しているように見えるので,ホワァァンと徐々に明るさを増し,ホワァァンと徐々に暗くなっていく,蛍のような光を作ることができます.

DCモータの速度制御

DCモータは入力電圧を変えることで回転速度を変化できますので,PWMで電圧を変えてあげれば,ある程度速度を変更することができます.電圧だけを見ると,モータを全力で回す(=H)かモータを止める(=L)かという極端な動きをしているように思うかもしれませんが,実際のモータはインダクタンスや慣性の働きで急激な速度変化ができないため,これがPWM信号を平均化する役割を果たし,なめらかに速度を変えられます.

マイコンから音を出す

マイコンにアンプ(増幅回路)とスピーカーをつなぎ,マイコンで音を生成してPWM信号として出力すれば,音を鳴らすことができます.ただし,この場合,PWM信号を直接アンプに送り込んでしまうとPWM波形の角がノイズとなってしまいます.これは十分にPWM信号が平均化されないことが原因です.このような場合は信号の角を取って波形を滑らかにする回路(信号のもつ高周波成分を取り除くことに相当するため,このような回路を「ローパスフィルタ(回路)」といいます)を併用します.

執筆者
N.Y.City(山口直彦)

工学院大学学生職員、組み込みエンジニア、専門学校HAL東京(先端ロボット開発学科)教員を経て、現在東京国際工科専門職大学(情報工学科)助手。プログラムや電子回路、産業用ロボット教育等に従事。その他、音楽情報科学研究、文筆業、ラノベ研究や発達障害者支援、写真等も。

主要著書
コンピュータの動くしくみ(電子書籍再刊)』(秀和システム,2019年)
小説の生存戦略 ライトノベル・メディア・ジェンダー』(青弓社,2020年)
Web連載「イメージでしっかりつかむ信号処理」(APS-WEB,2023~)

より詳細なプロフィールはWeb(N.Y.Cityのまちかど)へ。


この記事が気に入ったらサポートをしてみませんか?