1.A/D変換とPWMで作る“アナログ制御システム”
マイコンの真価は、「まわりの世界を感じて、動かす」ことにあります。
その柱となるのが A/D変換(ADC) と PWM(パルス幅変調)。A/D変換で電圧やセンサ信号を読み取り、PWMでモーターやLEDを制御する ― これが、いわゆる アナログ制御システム です。
ここでは、入力(A/D変換)~出力(PWM)の連携を、「温度でファン速度を変える」「明るさで照明を調光する」を例に解説します。
2.A/D変換とPWMの基本
「A/D変換で感じて、PWMで動かす」 ― この2つの機能を組み合わせることで、人間の感覚に近いアナログ制御ができるのです。

構成イメージと動作の流れ
[アナログ入力]
(例:可変抵抗・温度・光センサ)
↓
[A/D変換モジュール]
数値化(0〜1023)
↓
[制御ロジック]
(A/D変換値からPWM Dutyを算出)
↓
[PWM出力ピン]
デューティ比に応じた信号
↓
[LED・モーター・ヒーター]
1.A/D変換してセンサ値を取得(入力側)
2.CPUがその値をもとに制御量を決定(演算処理)
3.PWM信号で出力デバイスを駆動(出力側)
このループを1ms~100ms単位で繰り返すことで、リアルタイムなアナログ制御が実現します。
3.例1:明るさでLEDを自動調光する
明るさセンサ(CdSセルなど)で環境光を読み取り、暗くなったらLEDを明るく点ける ― という制御例です。
制御の流れ

🔧 疑似コード例

結果:まるで「人感照明」のようなふるまいになります。
・明るい部屋 → A/D変換値が高くPWMデューティが減ってLEDは暗め
・暗い部屋 → A/D変換値が低くPWMデューティが増えてLEDが明るく
4.例2:温度でファン回転数を制御する
温度センサの出力をA/D変換で読み取り、温度が高くなるほどファンの回転数(PWMデューティ)を上げる制御。
制御の流れ
1.A/D変換入力:NTCサーミスタで温度を電圧変化として取得
2.演算ロジック:
・温度(A/D変換値)→ PWMデューティに変換
・例えば 25℃未満は20%、50℃以上は100%
3.PWM出力:ファンをFETドライバ経由で駆動
🔧 疑似コード例

これで環境温度に応じた「自動ファンコントロール」を実現できます。
💡PWM制御のコツ(出力側)
PWM(パルス幅変調)は、デューティ比によって平均電圧を調整する技術です。
Duty比 = ON時間 ÷ ( ON+OFF時間 )
・0% → 常にOFF(出力0V)
・50% → 平均出力 約1/2
・100% → 常にON(出力電源電圧)
周波数とフィルタの設定ポイント

ルネサスRL78シリーズなど多くのMCUでは、タイマモジュール(TAUなど)でPWM生成が簡単に設定可能です。
5.A/D変換とPWMの連携を安定化させるには?

🔧 システム全体イメージ

この構成で、「入力に応じて出力をリアルタイムに変化させる。――それがアナログ制御の基本的な考え方です。
🧩 応用のヒント

PWM出力を制御すれば、モーターや照明など、さまざまなアクチュエータを自在に動かせます。
「マイコンが世界を感じ、動かす」――まさにその一歩です。
6.まとめ
A/D変換はセンサから現実を読み取り、PWMはその結果をもとに世界を動かす手段。
両者を組み合わせることで、明るさ調整・温度制御・速度制御など幅広い応用が可能。
PWM波形の精度を求めるなら、①リファレンス電圧の安定化、②同期制御(A/D変換データ取得とPWM出力の同期)、③DMA活用が鍵。
A/D変換とPWMは「入力と出力の両輪」。
この2つを使いこなせば、マイコンが“感じて動く”アナログ制御システムを簡単に作ることができます。


