Make

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

Make
スポンサーリンク

前回はPCA9685について紹介しましたが、今回は電子回路、つまりモーターやマイコンとのつなぎ方について見ていきます。

使い方

ピンの役割

では、さっそく基板を見てみましょう。

PCA9685搭載ボード

ICは画像の左に見えるL字ピンヘッダで制御します。各ピンの役割は以下の通りです。

ピン名詳細
GNDグラウンド
OEボードの有効化(オープンで出力、Hiで停止)
SCLI2C通信のクロック
SDAI2C通信のデータ
VCCロジック用電源
V+モーター用電源(ターミナルブロックと共通)

このピンヘッダと制御基板側のI2C通信ピンをつなげば、PCA9685でサーボモーターを制御できるようになります。

Arduino UNOと接続

とはいっても、使うマイコンによってピンの仕様は様々なので、今回はArduino UNO (ATMEGA328P準拠)を使う想定でいきます。
ArduinoとPCA9685の接続は以下の通りです。

PCA9685Arduino
Vcc5V
GNDGND
SDAA4(SDA)
SCLA5(SCL)
PCA9685とArduino UNOのピン対応

文字だけだと想像しづらい場合は、画像を参考につないでみてください。

赤の線は5V(Arduino)とVCC(PCA9685)につないでます

なお、ArduinoとPCA9685は、ジャンパーワイヤー(オスーメス)で簡単につなぐことができます。

Amazon | uxcell ジャンパーワイヤ ジャンプワイヤ ブレッドボード 接続ワイヤー 多色 プラスチック製 メスーオス 1Pジャンパーワイヤ 20cm長さ 20個入り | ジャンプワイヤ | 産業・研究開発用品 通販
uxcell ジャンパーワイヤ ジャンプワイヤ ブレッドボード 接続ワイヤー 多色 プラスチック製 メスーオス 1Pジャンパーワイヤ 20cm長さ 20個入りがジャンプワイヤストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。

モーター用電源

モーターはかなりの電力を消費するため、Vccでモーターの電源も供給しようとすると、誤作動や部品を破壊する恐れがあります。
そこで、モーター用の電源をV+に接続して別々に電力を供給します。

電源は先述のピンヘッダ、もしくはターミナルブロックにつなぎます。
ジャンプワイヤーなどでピンヘッダと電池をつなげればよいのですが、難しい場合は下の商品を買って、ターミナルブロックにつなげば電源が供給できます。

電池ボックス 単4×4本 リード線・フタ・スイッチ付: ケース・ネジ・固定具 秋月電子通商-電子部品・ネット通販
電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作電池ボックス 単4×4本 リード線・フタ・スイッチ付秋月電子通商 電子部品通信販売

ターミナルブロックは電線を穴に入れて、マイナスドライバーで上のねじを回すことで電池と電源ピンをつなぐことができます(入れる場所に注意)。

ねじのサイズは結構小さい

I2Cアドレスピン

また、右上のジャンパーピンでI2Cアドレス(スレーブアドレス)を変えられます。
ピンは10kΩ抵抗でプルダウンされており、そのままだとLow(0V)、ジャンパーをハンダ付けするとHigh(Vcc)が入力されます。

デフォルトでは0x40(最下位ビットは読み書き切替用のRW)ですが、IC内の読み取り専用ピンA0~A5はスレーブアドレスのビット1~6に対応しており、ピンの状態でアドレスの各ビットを0(L)または1(H)にセットします。ピンとアドレスの各ビットの対応は以下の通りです。

1(固定)A5A4A3A2A1A0R/W

もうお気づきかと思いますが、アドレスは0x40とA0~A5ピンのビット和で決まります(最下位ビットを除いた7ビット)。
ただし、0x7Fと0x43は予約済(Reserved)なので使わないようにと書いてあるため、それ以外の数値をセットしましょう
(…実は、0x43は使えたのですが、なぜ使えたかの詳細は未だ不明です。将来的にとあるので、現状は利用できるかもしれませんが、避けておいたほうが無難です)

次回は

いよいよ最後、ソフトウェア(ファームウェア)の紹介に入ります。これでサーボモーターが動かせるようになる…はず。

タイトルとURLをコピーしました