クラス PWM -- パルス幅変調

このクラスはパルス幅変調出力を提供します。

使用例:

from machine import PWM

pwm = PWM(pin)          # 指定のピンの PWM オブジェクトを作成
pwm.duty_u16(32768)     # パルス幅を 50% に設定

# 200us の周期、デューティ比を 5us で再初期化
pwm.init(freq=5000, duty_ns=5000)

pwm.duty_ns(3000)       # 3us のパルス幅を設定

pwm.deinit()

コンストラクタ

class machine.PWM(dest, *, freq, duty_u16, duty_ns)

次のパラメータを使って、新しい PWM オブジェクトを作成して返します:

  • dest は PWM が出力される実体であり、通常は machine.Pin オブジェクトですが、ポートによっては整数など他の値を使える場合があります。
  • freq は PWM サイクルの周波数を Hz 単位で設定する整数です。
  • duty_u16 はパルス幅を duty_u16 / 65535 の比率で設定します。
  • duty_ns はパルス幅をナノ秒単位で設定します

オブジェクトが同じ基盤の PWM ジェネレーターを共有している場合に freq を設定すると他の PWM オブジェクトに影響を与える可能性があります(これはハードウェアによります)。一度に指定する必要があるのは duty_u16 * と *duty_ns のいずれか1つだけです。

メソッド

PWM.init(*, freq, duty_u16, duty_ns)

PWM オブジェクトの設定を変更します。パラメータの詳細については、上記のコンストラクタを参照してください。

PWM.deinit()

PWM 出力を無効にします。

PWM.freq([value])

PWM 出力の現在の周波数を取得または設定します。

引数がない場合、Hz 単位の周波数が返されます。

単一 value 引数を指定すると、周波数が指定の値に Hz 単位で設定されます。 周波数が有効範​​囲外の場合、メソッドは ValueError 例外を発生します。

PWM.duty_u16([value])

PWM 出力の現在のパルス幅を、0〜65535 の範囲の符号なし16ビット値として取得または設定します。

引数がない場合、パルス幅が返されます。

単一の value 引数を指定すると、パルス幅が value / 65535 の比率として測定されます。

PWM.duty_ns([value])

PWM 出力の現在のパルス幅をナノ秒単位の値として取得または設定します。

引数がない場合、ナノ秒単位のパルス幅が返されます。

単一の value 引数を指定すると、パルス幅が指定の値に設定されます。