Raspberry Piで電源容量を気にせずにPWM制御を行うには

例えばモーターの制御などに、PWM制御を使用したい場合があります。

Raspbery Piは内蔵のハードウェアPWMを持っていますが、GPIOの給電能力の影響で直接モーター等を接続するとうまく動作しない場合があり、使いやすいとは言えない感じです。使用できるチャンネル数もそれほど多くありません。

通常のGPIO端子でソフトウェア的にPWM制御を行う場合、OSのリアルタイム性能の影響などで制御時間にズレが生じ、ハードウェアPWMよりも精度がずいぶん落ちるようです。

電源、チャンネル数等の問題をクリアしつつ、Raspberry Piで精度の高いPWM制御を行う方法を記録しておこうと思います。


Raspberry PiのPWM制御基板接続手順

別途、PWM制御基板を使用することで、チャンネル数や精度の問題をクリアできそうです。PWM制御基板はI2C端子でRaspberry Piと接続しますが、信号線はクロックとデータの2本、VCCとGNDと合わせて合計4本済むようです。

12ビット精度、16チャンネルのこちらのPWMコントローラーを採用した制御基板を接続しようと思います。

使用する材料

Raspberry Pi本体

OSはRaspbianを使用したいと思います。どのRaspberry Piの機種でも大丈夫かと思います。

PWM制御基板

PCA9685を採用したPWM制御基板は多くの種類が出回っているようです。

秋月電子通商さんの製品を使用させて頂きました。こちらは部品実装済みですが、ピンヘッダのはんだ付けが必要です。

電源分岐用microB端子

USB電源を分岐して、Raspberry PiとPWM制御基板に給電することで、モーター等を接続する場合の電力不足を解決しようと思います。秋月電子通商さんのこちらの製品を使用させて頂きました。

そこそこの容量(5V 3A程度)のUSB電源をご用意頂ければ、少数のモーターやLEDを接続しても、電力不足の問題は発生しないかと思います。

※補足致します:Raspberry PiのUSB端子に電力消費が大きいデバイスを接続した場合や、CPUやGPUの負荷が高く本体の発熱量が大きくなる場合、3Aでは不足する場合もあります。3Aより大きい電力が必要な場合、microB端子ではなく、2.1mm標準DCプラグと大容量の電源が必要になるかと思います。


配線図

電源配線

Raspberry Piの電源は、通常のUSB microB端子から給電せずに、GPIO端子から給電します。下記の配線の場合、microB端子に電源を接続する必要はありません。下図のRaspberry PiはUSB microB端子に電源を接続していませんが、GPIO端子による給電で問題なく動作しております。

I2C配線

PWM制御基板の両端にI2C端子がありますが、どちらに配線しても問題ないようです。


RaspbianのI2Cの有効化

配線が終わりましたら、RaspbianのI2Cを有効化することでPWM制御が可能になります。

sudo raspi-config

「5 Interfacing Options」からI2Cを有効にして再起動します。


以上でRaspberry PiにPWM制御基板を配線して、使用できる準備ができた状態です。

電源容量の大きなUSB電源を用意すれば、PWM制御に使用するデバイスの電力を十分に賄えるかと思います。

具体的なPWM制御の事例の記事は下記になります。よろしければ御覧ください。

スポンサーリンク

フォローする

スポンサーリンク