記事一覧

Arduino Nano 2台でI2C通信してサーボを駆動

Arduino Nano 2台でI2C通信してサーボを駆動

こんにちはRoboTakaoです。ようこそ「極力ローコスト ロボット製作 ブログ」にお越しくださいました。


Arduino Nanoでサーボを動かそうとした場合、通常は最大12個動かすことができます。

でも人型の二足歩行ロボットを作ろうとした場合はそれでは足りないことが多いです。

たとえは倍の24個動かしたいと思うことがあります。平行リンクを駆使する手もありますが

今回はArduino Nanoを2台使って最大24個動かすことを考えています。

そしてArduinoNano同士はI2C通信を使いたいと思います。シリアル通信を使い手もありますが

それだとBluetoothなどでシリアル通信を使えなくなってしまうので同時に使用できるI2Cを選択しました。


前回まではArduino IDEのサンプルスケッチでI2Cで通信ができることを確認しました。

今回はマスターのArduinoNanoからサーボの角度データを送信させてスレーブのArduinoNanoで受信してスレーブのArduinoNanoがサーボを動かします。

構成と接続は下記のようになっています。

I2Cservo02.jpg

I2Cservo01.jpg

スケッチはこんな感じです。

スレーブ側

I2Cservo03.png

#include
#include

Servo myservo2;
int ang[]={0,0};

void setup()
{
myservo2.attach(2);
Wire.begin(8);
Wire.onReceive(receiveEvent);
}

void loop()
{
myservo2.write(ang[0]);
delay(1000);
myservo2.write(ang[1]);
delay(1000);
}

void receiveEvent(int howMany)
{
ang[0]=Wire.read();
ang[1]=Wire.read();
}

マスター側

I2Cservo04.png

#include

void setup()
{
Wire.begin();
}

void loop() jj
{
Wire.beginTransmission(8);
Wire.write(0);
Wire.write(90);
Wire.endTransmission();
delay(1000);
}

それぞれコンパイルしてArduino Nanoに入れると動き出します。

無事、0°から90°でサーボを回転させることができました。



そのうちにRaspberryPiからI2C接続でサーボコントロールしようと思っています。

それでは今回はこの辺で失礼します!ありがとうございました。

Thank you for your visiting!



スポンサードリンク

コメント

コメントの投稿

非公開コメント

プロフィール

RoboTakao

Author:RoboTakao
みなさんご訪問ありがとうございます。ロボット作りたいけどお小遣いそんなにないし、簡単でローコストでロボットを作るための私のプロジェクトを紹介します。

ウェブサイトもありますのでそちらもよろしくお願いします。
http://robotakao.jp/

スポンサーリンク