EdisonのMraa(PWM)を使う

EdisonのMraaを使い、Python言語でPWMの設定を行ってみた。
参考にしたHPは、

iotdk.intel.com Mraa

EdisonのPWMはクロックの関係で、波形期間が
PWM period (μs) PWM frequency (Hz)
213                              4,688
427                              2,344
853                              1,172
1,707                              586
3,413                              293
6,619                              151
6,827                              146
13,653                            73.2
27,307                            36.6
54,613                            18.3
109,227                            9.2
218,453                            4.6
上記の値を適用されてしまう。
なので、適当なperiod値を設定しても上記の値となる。

Python のコマンドは
Pwm (int pin, bool owner=true, int chipid=-1)
float write (float percentage)
period (float period)
period_ms (int ms)
period_us (int us)
pulsewidth (float seconds)
pulsewidth_ms (int ms)
pulsewidth_us (int us)
config_ms (int period, float duty)
config_percent (int period, float duty)
int max_period ()
int min_period ()
が利用できる。

注意点
Dutyは0.5fのfはエラーとなるので必要ないらしい。
config_percent (int period, float duty)
periodは、msで設定。

使用例

#!/usr/bin/python
import mraa
import time

PWM_PIN = 3

#init PWM
x=mraa.Pwm(PWM_PIN)
x.config_percent(218,0.5)
x.enable(True)

x.period_us (54613)
x.pulsewidth_us (1000)

目的は、1Hzの矩形波が希望であったが
4.6Hzで我慢しよう。

久々に中古オシロを使ったが、調子が悪かった。新しいオシロが欲しい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>