*サーボモータ SG90 [#f836a2d2]
#ref(s_servo.png)
-マイコンなどから制御可能な小型サーボモータ
--PWMサイクル:20 ms
--制御パルス:0.5~2.4 ms
--制御角:±約90度(180度)
--トルク:1.8 kgf・cm
--動作速度:0.1 秒/60度
--動作電圧:4.8 V(~5V)
--重量:9 g
-データシート
#ref(SG90_a.pdf)
*Arduinoとの接続 [#c7eba01c]
-サーボモータとArduinoを以下のように接続する。
|サーボモータ信号名|Arduino|備考|
|GND(茶色)|GND||
|Vcc(赤)|5V||
|制御(オレンジ)|任意のPWM出力(デジタルの3、5、6、9、10、11)|シルクの「~」マークが目印|
~
#ref(servo-setsuzoku.png)
*リファレンス [#v633d469]
-[[概要>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=664]]
-[[attach(pin)>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=670]]
-[[write(angle)>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=707]]
-[[writeMicroseconds(uS)>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=735]]
-[[read()>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=750]]
-[[attached()>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=763]]
-[[detach()>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=776]]
*サンプルコード1 [#g7f93a97]
-「ファイル」→「スケッチの例」→「Servo」→「Sweep」

 /*
 ・サーボモータ SG90 のサンプルプログラムです。
 ・右回転、左回転を繰り返します。
 ・Arduinoとの接続
     GND(茶色)      GND
     Vcc(赤)        5V
     制御(オレンジ) 任意のPWM出力(デジタルの3、5、6、9、10、11)
 */
 
 #include <Servo.h> 
 
 const int servoPin = 3;    // サーボの接続ピン(定数)
 Servo myservo;             // サーボオブジェクトを生成
 int pos = 0;               // サーボのポジション(変数)
 
 void setup() 
 { 
   myservo.attach(servoPin);  // サーボ変数をピンに割り当て
 } 
 
 void loop() 
 { 
   for(pos = 0; pos < 180; pos += 1){   // pos変数を0から180まで変化させる
     myservo.write(pos);                // サーボの角度をpos変数の値にする
     delay(15);                         // 回転するまで待つ
   } 
   for(pos = 180; pos>=1; pos-=1){      // pos変数を180から0まで変化させる
     myservo.write(pos);                // サーボの角度をpos変数の値にする
     delay(15);                         // 回転するまで待つ
   } 
 }

*サンプルコード2 [#pb39f961]
-「ファイル」→「スケッチの例」→「Servo」→「SerialControl」

 /*
 ・サーボモータ SG90 のサンプルプログラムです。
 ・シリアルモニタから角度(1~180)を指定してサーボモータを制御します。
 ・マイコンボードに書き込み後、「ツール」→「シリアルモニタ」を起動してください。
 ・シリアルモニタの改行の設定を「LFのみ」にしてください。
 ・Arduinoとの接続
     GND(茶色)      GND
     Vcc(赤)        5V
     制御(オレンジ) 任意のPWM出力(デジタルの3、5、6、9、10、11)
 */
 
 #include <Servo.h> 
  
 const int servoPin = 3;        // サーボの接続ピン(定数)
 Servo myservo;                 // サーボオブジェクトを生成
 int pos = 0;                   // サーボのポジション(変数)
 String inString = "";          // 受信文字列用のバッファ
 
 void setup() 
 { 
   Serial.begin(9600);
   myservo.attach(servoPin);   // サーボ変数をピンに割り当て
   myservo.write(pos);         // ポジションを0に設定
   delay(15);                  // 回転するまで待つ
 } 
  
 void loop() 
 {
   while (Serial.available() > 0) {  // 受信データがあったら…
     int inChar = Serial.read();     // 1バイト読み込む 
     if (isDigit(inChar)) {           // 数値だったら…
       inString += (char)inChar;      // 文字列を連結する
     }
     if (inChar == '\n') {            // 改行コードLFが来たら…
       pos = inString.toInt();        // 文字列を数値に変換する
       if (pos < 1 || pos > 180) {    // 数値が範囲外なら…
         Serial.println("Parameter Error");// エラー表示   
       }else{
         myservo.write(pos);          // 範囲内ならサーボモータを回転
         delay(15);                   // 回転するまで待つ
         Serial.print("OK:");        // OK
         Serial.println(pos);
       }
       inString = "";                 // バッファクリア
     }
   }
 }
*参考資料 [#l6c9507e]
-[[その9 Arduinoでサーボモータをキュイキュイ動かす!>http://marupeke296.com/EL_Ard_No9_ServoMotor.html]]
-[[Arduino Nano でサーボモータを動かしてみた>http://makers-with-myson.blog.so-net.ne.jp/2014-04-24]]
-[[Arduinoで始めるロボット制御>http://www.vstone.co.jp/vs_wiki/main/wiki.cgi?page=Arduino%A4%C7%BB%CF%A4%E1%A4%EB%A5%ED%A5%DC%A5%C3%A5%C8%C0%A9%B8%E6]]
-[[第13回 Arduinoでモーターを制御する!(その3)。自作ラジコンカーに挑戦!サーボモーターでステアリング実装。>http://deviceplus.jp/hobby/entry013/]]
-[[サーボモーター制御ライブラリ>http://nekosan0.bake-neko.net/library_servo.html]]

----

&size(12){Total:&counter(total); / Today:&counter(today); / Yesterday:&counter(yesterday);};

トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS