- パルス幅変調機能をサポートするクラス。
- 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 )
機器依存
- ユニット名などの追加パラメータが必要になる可能性がある。
- 周波数を指定して出力を開始、もしくは周波数を変更する。
- freq は、Integer もしくは Float で指定する。
- 0を指定すると、出力を停止する。
- 周波数を変更してもデューティー比は変更されない。
使用例
pwm1.frequency( 440 ) # 440Hzの出力
機種依存
- 最大、最小周波数や分解能は機種に依存する。
- 出力停止時は、LowLevelで停止が望ましい。
- 出力停止を指示した時に、周期の途中で停止する(LowLevelになる)か、その周期の出力が終わってから停止するかは機種に依存する。
- 1周期の時間(マイクロ秒)を指定して出力を開始、もしくは周期を変更する。
- micro_sec は、Integerで指定する。
- 0を指定すると、出力を停止する。
- 周期を変更してもデューティー比は変更されない。
使用例
pwm1.period_us( 2273 ) # 1/2273us = 440Hz
- 0から100までのパーセンテージを指定してデューティー比を変更する。
- percentは、Integer もしくは Float で指定する。
使用例
pwm1.duty( 50 )
- 1周期のONになる時間をマイクロ秒で指定する。
- micro_sec は、Integerで指定する。
- 1周期よりも長い時間を指定された場合、最大のONにできる値で設定されエラーにはならない。
使用例
pwm1.pulse_width_us( 1000 )