やまどり

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

PWMとタイマー値を決める手順

  1. STEP 1目標周波数とデューティ比を入力します。
  2. STEP 2Ton・Toff、またはMCUのクロックと分周比からレジスタ値を確認します。
  3. STEP 3丸め後の実周波数と誤差を見て設定値を選びます。

具体的な利用例

20kHz・デューティ比25%なら周期は50µs、ON時間は12.5µsです。PICやAVRモードでは候補のレジスタ値を比較し、許容誤差と分解能のバランスを検討できます。

結果を見るときの注意点

タイマーの計算式、TOP値、クロック源はMCUや動作モードで異なります。必ず対象デバイスのデータシートと照合し、割り込み遅延、出力段の応答、負荷の定格も含めて実機で確認してください。

入力データの扱い

処理はこのブラウザ内で完結し、入力したテキストやファイルは変換・解析のために外部サーバーへ送信されません。共有端末を使う場合は、作業後に入力欄とクリップボードの内容も消去してください。