PWM / タイマー計算機
波形イメージ(1周期)
周期 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