Skip to content

Latest commit

 

History

History
95 lines (70 loc) · 2.64 KB

proposal_PWM.md

File metadata and controls

95 lines (70 loc) · 2.64 KB

PWM

方針、リクエストなど

  • 周波数分解能は、1以下が欲しい場合がある。(e.g. 130.8Hz)

コンストラクタ

PWM.new( pin, *params )
  • pin の指定は基本的には整数で指定するが、別な方法(例えばPICでは"B1"等)があっても良い。
  • パラメータ frequency を指定すると、デューティー比50%で出力を開始する。
  • デューティー比50%以外で出力を開始したい場合には、パラメータ duty を同時に指定する。

pwm1 = PWM.new( 1, frequency:440, duty:30 )

機器依存

  • ユニット名等の追加パラメータが必須になる可能性がある。

インスタンスメソッド

指定の周波数を出力

frequency( freq )
  • 周波数を指定して、出力を開始する。
  • freq は、Integer もしくは Float で指定する。
  • 0を指定すると、出力を停止する。
  • 周波数を変更してもデューティー比は変更されない。

pwm1.frequency( 440 )   #  440Hzの出力

機種依存

  • 最大、最小周波数や分解能は機種に依存する。
  • 出力停止時は、LowLevelで停止が望ましい。
  • 出力停止を指示した時に、すぐ停止する(LowLevelになる)か、その周期の出力が終わってから停止するかは機種に依存する。

1周期の時間を指定して出力

period_us( micro_sec )
  • 1周期の時間(マイクロ秒)を指定して出力を開始する。
  • 0を指定すると、出力を停止する。
  • 周波数を変更してもデューティー比は変更されない。

pwm1.period_us( 2273 )   # 1/2273us = 440Hz

割合(パーセンテージ)を指定してデューティー比を変更する

duty( percent )
  • 0から100までのパーセンテージを指定してデューティー比を変更する。
  • percentは、Integer もしくは Float で指定する。

pwm1.duty( 50 )

パルス幅(ON時間)を指定する。

pulse_width_us( micro_sec )
  • 1周期のONになる時間をマイクロ秒で指定する。
  • 1周期よりも長い時間を指定された場合、最大のONにできる値で設定されエラーにはならない。

pwm1.pulse_width_us( 1000 )

TOOD: メソッド名が長いか?