Raspberry PiでIoTなシステム開発:ハードウェアPWM

Posted on Posted in 趣味的なIT・ネットの話題

Raspberry Pi歴3年目にして今頃ですがハードウェアPWMが備わっていることに気づきました。今までWiringPiのソフトウェアPWMを無理して使っていて音程のズレとか雑音に悩まされていたのですが、これで一挙解決できそうです。

参考にしたのはこちら。

RaspberryPiとWiringPiでサーボを動かす – Qiita

たしかに本家の記述は簡潔すぎてわかりにくいですね。百分率で設定する方が比率がわかりやすいのでRangeを100に決め打ちすると、周波数計算は以下の通りとなります。

clock = 192000 / freq

早速コードを書いてみます。

最初は
pwmSetMode (PWM_MODE_BAL);
を使っていたのですが、これだとpwmWriteをしたときに周波数まで変わってしまいました。設定する基準が違うのだと思います。

12VのLEDをFETを介して駆動してみました。

ストレスをかけても波形が乱れません。


Facebooktwittergoogle_pluspinterestlinkedinmail
納得したらすぐにシェア!