|
スポンサーリンク サーボモータ 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:23207 / Today:1 / Yesterday:1 スポンサーリンク |