やまどり

PWM / タイマー計算機

波形イメージ(1周期)

TonToff

周期 T

1.0000 ms

Ton (ON時間)

500.0000 μs

Toff (OFF時間)

500.0000 μs

PWM とタイマーレジスタ

PWM(Pulse Width Modulation)はデジタル出力で擬似的にアナログ値を表現する技術です。 周波数とデューティ比(ON時間の割合)の2つのパラメータで制御します。

PIC CCP モジュール(PR2 / CCPR1L)

  • PR2 = Fosc ÷ (4 × TMR2プリスケーラ × PWM周波数) − 1(8bit: 0〜255)
  • 10bitデューティ = (デューティ比 / 100) × 4 × (PR2 + 1)
  • CCPR1L = 10bitデューティ >> 2(上位8bit)
  • CCP1CON<5:4> = 10bitデューティ & 0x3(下位2bit)

AVR タイマー(ICR1 / OCR1A)

  • タイマークロック = CPUクロック ÷ プリスケーラ
  • ICR1 = タイマークロック ÷ PWM周波数 − 1(Fast PWM Mode 14)
  • OCR1A = (デューティ比 / 100) × (ICR1 + 1)

用途別の代表的な周波数

  • サーボモーター: 50 Hz(周期 20ms、パルス幅 1〜2ms)
  • DCモーター制御: 1〜50 kHz(可聴域を避けるなら 20 kHz 以上推奨)
  • LED調光: 200 Hz 以上(ちらつきを避けるため)
  • スイッチング電源: 50 kHz〜数百 kHz