Skip to content

Latest commit

 

History

History
103 lines (66 loc) · 2.82 KB

mruby_io_PWM_ja.md

File metadata and controls

103 lines (66 loc) · 2.82 KB

PWM

  • パルス幅変調機能をサポートするクラス。

コンストラクタ

PWM.new( pin, *params )

  • pin で示す物理ピンを指定して、PWM オブジェクトを生成する。
  • pin は標準的には整数で指定するが、別な方法(例えばPICでは"B1"等)があっても良い。
  • パラメータ frequency を指定すると、デューティー比50%で出力を開始する。
  • デューティー比50%以外で出力を開始したい場合には、パラメータ duty を同時に指定する。

オプションパラメータ

param type description
frequency Integer,Float 周波数の指定。
freq 同上
duty Integer,Float デューティー比の指定

使用例

# 1番ピンをPWM出力用としてオブジェクトを生成する。まだ出力はしない。
pwm1 = PWM.new( 1 )

# 1番ピンをPWM出力用としてオブジェクトを生成するとともに、周波数 440Hz デューティー比 30% で出力を開始する。
pwm1 = PWM.new( 1, frequency:440, duty:30 )

機器依存

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

インスタンスメソッド

frequency( freq )

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

使用例

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

機種依存

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

period_us( micro_sec )

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

使用例

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

duty( percent )

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

使用例

pwm1.duty( 50 )

pulse_width_us( micro_sec )

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

使用例

pwm1.pulse_width_us( 1000 )