I2C通信

I2C通信とは

シリアル通信の一種で、Raspberri Piが一つの信号線上に定期的なパルス信号を流し、それと同期する形でデータをやり取りする通信方式です。

下請けとなった子会社は、それぞれ固有のアドレスを持っており、そのアドレスを通じてどこの子会社への指示なのか、どこの子会社からの情報なのかを判断しているのです。

詳しくはこちらのページを参照して下さい。

I2C通信を使うには、まずラズパイ本体の設定で、I2CをONにしなければなりません。

設定>Raspberry Pi の設定>インターフェイスのところに、I2C:というオプションスイッチがあるので、そこをONにします。

I2Cの接続

I2C通信で使うピンは、3番ピン(SDA)と5番ピン(SCL)です。私はどのピンが何だっけ?とすぐなるので、そんな時はこちらを参照しています。

使われているI2Cアドレスの番号を見たい時は、コンソールから次のコマンドで見る事ができます。

i2cdetect -y 1

コマンドを実行すると次のようになります。

i2cアドレスの確認

まだ何もつながれていないので、全て- -です。

アドレスは16進数で、08から77まであります。

でもこれをラズパイ側から、あなた何番ねと指定してあげることは出来ないのです。番号を教えるためには通信しなければ教えられない。でも番号が無いと通信できない・・・。つまり、アドレスは機器ごとに最初から決まっているのです。

PCA9685の接続

では、子会社筆頭のPCA9685をつないでみたいと思います。

PCA9685のマニュアルはこちら

つなぐために必要なのは、PCA9685への電源供給のためのvcc(3v-5v),GNDと通信ラインとしてSDA,SCLの4本です。SDAはSDAと、SCLはSCLとつなぎます。

念の為にRaspberry Piの電源を一旦切って接続し、電源を入れます。

PCA9685のLEDが眩しい。

電源を入れると、おっしゃ〜働くぞ〜と言わんばかりにLEDが点灯しました。

先ほどのコマンドで、I2Cのアドレス使用状況を確認。

PCA9685のアドレス

PCA9685はアドレス40と70を使うようです。

いや〜自分の足跡を辿るのも楽しいもんですね。そしてこの記事が誰かの役に立ったら、もっと楽しいと思います。良い週末でした。

次回は、PWM制御でサーボモーターを動かしてみようかと思います。

コメント

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