スポンサーリンク サーボモータ SG90 †
Arduinoとの接続 †
リファレンス †サンプルコード1 †
/* ・サーボモータ 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 †
/* ・サーボモータ 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 = ""; // バッファクリア } } } 参考資料 †
Total:21985 / Today:4 / Yesterday:4 スポンサーリンク |