Make

PCA9685でサーボモーターを動かす(1)

Make
スポンサーリンク

ここしばらく、新しい作品作りでブログ更新が滞ってました。
今回から16chPWM制御コントローラーのPCA9685でサーボモーターを動かす方法を書いていこうと思います。今回はPCA9685搭載ボードについてまとめました。

PCA9685とは

簡単に言うと、I2C通信で動かせるPWM制御ピンを16個搭載したICです。言い換えると、これ一つでサーボモーターを16個まで動かせます。
また、各ピンは25mAの駆動電流を流せるため、小さなLEDであれば直結して光らせることも可能です。

購入先

オンラインでも割とすぐに購入できます。
AmazonやAliExpressなどの通販だといろんな価格のものが出ていますが、値段で性能が変わるわけではないので、単価が安いのを選べばいいと思います。Amazonですと、例えばこの辺りが安いです(1個640円くらい)。

Bitly

また、さらに安く購入したい場合はAliExpressなどでも探せます(送料別)。

Pca9685pwサーボシールドドライバー、16チャンネル、12ビット、pwm、i2cインターフェイス、pca9685モジュールfor Raspberry Pi - AliExpress 502
Smarter Shopping, Better Living! Aliexpress.com

ただ、数百円くらいで買えるボードは、たいてい中国のショップから販売されているものですが、割と不良品に当たる確率も高いです。
以前10個ぐらいまとめて購入したときは、いくつかピンヘッダが曲がっていたりズレてハンダ付けされているのがあって直すのが面倒でした…。
不良品を避けるのであれば、秋月電子やSwitch Scienceなどから購入するのをお勧めします。

I2C接続16チャンネル サーボ&PWM駆動キット: キット一般 秋月電子通商-電子部品・ネット通販
電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作I2C接続16チャンネル サーボ&PWM駆動キット秋月電子通商 電子部品通信販売
PCA9685搭載16チャネル PWM/サーボ ドライバー (I2C接続)
16チャンネルのPWM出力ドライバー搭載基板です。

スペック

基本的にはPCA9686のチップ準拠です。
購入するボードによっても多少異なりますが、大まかにまとめると以下の通りです。

電源電圧6V (max)ピンヘッダ、またはターミナルブロックから供給
ロジック電圧3.3 – 5V
PWM周波数40 – 1000Hzサーボモーターの場合は、50 or 60 Hzを推奨
PWM分解能12bit
出力電流25mA合計400mA (= 25mA x 16ch)
I2Cアドレス0x40ジャンパーピンをハンダ付けでショートして変更可(後述)
0x40 – 0x7F、最大62ユニット(992個)まで制御可能

利用できるサーボモーターは、ラジコンやロボットなどで使われるPWM制御のRCサーボモーターと呼ばれるもので、電源、GND、PWM制御の3ピンを搭載したものです。
秋葉原の電子部品ショップなどでも数百円から購入できるので、電子工作の入門としてもよくつかわれています。
使えるモーターとしては、例えば以下のようなものがあります。

Bitly
Bitly

また、モーターの電源については単三電池4本でもOKです。
必要な電流は動かしたいモーターの数次第で大きく変わりますが、数個であれば単三電池でも余裕で動きます。

なお、データシートも公開されているので、詳細はそちらをご確認ください。

次回は

Arduinoとつないで構成するハードウェアとファームウェアについての記事を書いていく予定です。

(10/6追記) ハードウェア編を公開しました。

参考

PCA9685のスペックはこちらを参考にしました。

Grove - 16 Channel PWM Driver (PCA9685) | Seeed Studio Wiki
The Grove - 16-Channel PWM Driver is based on NXP PCA9685, which is a 16-Channel, 12 bit I2C PWM driver. This board can drive up to 16 servos with the external...
タイトルとURLをコピーしました