ホーム 🔊 アクチュエータ Lesson 16
🔊 Chapter 4 • アクチュエータ&表示

サーボモーターでうごかそう!
角度かくど制御せいぎょしよう

⏱ やく55ぷん
🤖 Arduino使用しよう
⚙️ Servo・map()
🤖
エンジくん ロボットアームやとびらの自動開閉に使われるサーボモーター!つまみを回すだけで角度をピッタリ指定できるよ。ArduinoのServoライブラリで自由自在に動かそう!

1
このレッスンでまなぶこと

  • ⚙️ サーボモーター — 0〜180°を指定していしてめられるモーター
  • 📚 #include <Servo.h> — Arduinoのライブラリを
  • 🔧 myservo.write(角度かくど) — 0〜180の数値すうち角度指定かくどしてい
  • 🔄 map() — つまみの(0〜1023)を角度かくど(0〜180)に変換へんかん
  • 🎮 サーボシミュレーター — スライダーでアームがうごく!

2
用意よういするもの

3
サーボモーターのしくみ

⚙️ サーボモーターってなんだろう?

通常のモーターは「回り続ける」だけですが、サーボモーター内部ないぶ位置検出いちけんしゅつセンサーがあり、0〜180度の好きな角度でピッタリ止まることができます!

↩️
0度

一番左(始点)

⬆️
90度

真ん中(垂直)

↪️
180度

一番右(終点)

🔌 3本の線の意味

茶/黒
橙/黄
赤線5V(電源+)
茶/黒線GND(電源-)
橙/黄線D9(信号・PWM)

4
コードをてみよう

🔧 パターン1:決まった角度に動かす

#include <Servo.h> // Servoライブラリを読み込む Servo myservo; // サーボオブジェクトを作成 void setup() { myservo.attach(9); // D9ピンにサーボを接続 } void loop() { myservo.write(0); // 0度(左端) delay(1000); myservo.write(90); // 90度(真ん中) delay(1000); myservo.write(180); // 180度(右端) delay(1000); }

🎛️ パターン2:つまみでリアルタイム制御

#include <Servo.h> Servo myservo; const int POT = A0; // 可変抵抗のピン void setup() { myservo.attach(9); Serial.begin(9600); } void loop() { int val = analogRead(POT); // 0〜1023 int angle = map(val, 0, 1023, 0, 180); // 0〜180に変換 myservo.write(angle); Serial.println(angle); delay(15); }

💡 delay(15)はサーボモーターが動き終わるのを待つ短い時間です。短すぎると動作がギクシャクするので15〜20ms程度がベストです!

5
回路のつなぎかた

部品 ケーブル つなぐ先
サーボモーター 赤線 5V
サーボモーター 茶/黒線 GND
サーボモーター 橙/黄線 D9(PWMピン)
(任意)可変抵抗 左端 5V
(任意)可変抵抗 真ん中 A0
(任意)可変抵抗 右端 GND

⚠️ SG90サーボは最大700mA流れることがあります。多数のサーボを使うときは外部電源を使いましょう。1個なら5VピンでOKです!

6
実際じっさいにつないでみよう!

🎉 サーボモーターマスター!角度かくど制御せいぎょができるようになったね!

7
クイズに挑戦ちょうせん

🤖
エンジくん Servoライブラリの使い方と3本の線の意味をしっかり覚えよう!
クイズをちゅう

8
サーボシミュレーター ⚙️

🤖
エンジくん スライダーを動かしてサーボアームを回してみよう!プリセットボタンで特定の角度にもジャンプできるよ!
90°
45° 90° 135° 180°
⚙️ 角度を変える
90° 180°
90
角度(度)
write(90)
Arduinoコード
511
つまみ値(map前)
🏆

Lesson 16 完了かんりょう

サーボで角度かくど制御せいぎょができるようになったよ!次はDCモーターで回転かいてん制御せいぎょしよう!

つぎのレッスンへ → DCモーター!

9
まとめ

  • #include <Servo.h> でServoライブラリを読み込む
  • myservo.attach(9) でD9ピンとサーボを接続する
  • myservo.write(角度) で0〜180の好きな角度に動かせる
  • map(val, 0, 1023, 0, 180) で可変抵抗の値を角度に変換
  • ✅ サーボは赤=5V、茶/黒=GND、橙/黄=信号の3本線で接続
← Lesson 15にもど 🏠 ホーム つぎのレッスン →