サーボ

概要

このレッスンでは、Arduinoとサーボモーターの使用について学びます。Arduino UnoとSG90サーボモーターに焦点を当て、Arduinoをプログラミングしてサーボのスイープ動作を制御する方法を学びます。この技術は、ロボティクスや自動システムなど、さまざまな用途で重要です。

必要なコンポーネント

このプロジェクトには、以下のコンポーネントが必要です。

全セットを購入するのが便利です。こちらがリンクです:

名称

このキットのアイテム数

リンク

Elite Explorer Kit

300+

Elite Explorer Kit

以下のリンクから個別に購入することもできます。

コンポーネント紹介

購入リンク

Arduino Uno R4 WiFi

-

ジャンパーワイヤー

BUY

サーボ

BUY

配線図

../_images/27-servo_bb.png

回路図

../_images/27_servo_schematic.png

コード

注釈

  • ファイル 27-servo.inoelite-explorer-kit-main\basic_project\27-servo で直接開くことができます。

  • または、このコードをArduino IDEにコピーしてください。

コード解析

  1. ここでは、サーボモーターを簡単に制御するための Servo ライブラリが含まれています。サーボに接続されたピンとサーボの初期角度も定義されています。

    #include <Servo.h>
    const int servoPin = 9;  // Define the servo pin
    int angle = 0;           // Initialize the angle variable to 0 degrees
    Servo servo;             // Create a servo object
    
  2. setup() 関数はArduinoが起動するときに一度実行されます。 attach() 関数を使用して、定義されたピンにサーボを接続します。

    void setup() {
      servo.attach(servoPin);
    }
    
  3. メインループには2つの for ループがあります。最初のループは角度を0度から180度に増加させ、2番目のループは角度を180度から0度に減少させます。 servo.write(angle) コマンドは、指定された角度にサーボを設定します。 delay(15) により、サーボは次の角度に移動する前に15ミリ秒待機し、スキャン動作の速度を制御します。

    void loop() {
      // scan from 0 to 180 degrees
      for (angle = 0; angle < 180; angle++) {
        servo.write(angle);
        delay(15);
      }
      // now scan back from 180 to 0 degrees
      for (angle = 180; angle > 0; angle--) {
        servo.write(angle);
        delay(15);
      }
    }