pdf-icon

Arduino入門

2. デバイス&サンプル

6. アプリケーション

Servo Kit 180°/360° Arduino 使用チュートリアル

1. 準備作業

2. サンプルプログラム

  • 本チュートリアルで使用するメインコントローラは CoreS3 に Servo Kit 180°/360° を接続した構成です。サーボとホスト間はアダプタを介して接続する必要があります。接続方法は下図の通りです。回路接続に応じてプログラム内のピン定義を変更してください。接続後の制御IOは G2 になります。
  • 下記のサンプルでは、writeMicroseconds 関数でサーボの回転位置を制御しています。Servo Kit 180° と Servo Kit 360° の両方に対応します。
    COUNT_LOWCOUNT_HIGH はそれぞれサーボの最小・最大パルス幅で、STEP はパルス幅増加のステップ値、SERVO_PIN はサーボ信号線接続用のデジタルピンを定義します。
    Servo Kit 180° の場合、COUNT_LOW は通常 0° 位置、COUNT_HIGH は 180° 位置に対応します。writeMicroseconds 関数で値を指定すると、その位置まで回転し保持します。下記サンプル中の servo.writeMicroseconds(1500) は 180° サーボを 90° 位置へ回転させ、その位置を保持します。
    Servo Kit 360° の場合、writeMicroseconds は回転速度と方向を制御します。COUNT_LOW は最大速度の反時計回り、COUNT_HIGH は最大速度の時計回り、中間値は停止状態を示します。COUNT_LOW ~ 中間値 の範囲では反時計回りで、値が大きいほど速度が速くなります。中間値 ~ COUNT_HIGH の範囲では時計回りで、値が大きいほど速度が遅くなります。下記サンプル中の servo.writeMicroseconds(1500) は 360° サーボを停止状態にします。
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#include "M5Unified.h"
#include "M5GFX.h"
#include "ESP32Servo.h"       

// Macro definitions for servo control parameters
#define COUNT_LOW  500     // Minimum pulse width in microseconds (μs) for the servo (typically corresponds to 0° position)
#define COUNT_HIGH 2500    // Maximum pulse width in microseconds (μs) for the servo (typically corresponds to 180° position)
#define STEP       100      // Increment step for pulse width (controls how smoothly the servo moves between positions)
#define SERVO_PIN  2       // Digital pin connected to the servo motor's signal wire

Servo servo;              

void setup() {
  M5.begin();
  servo.attach(SERVO_PIN, COUNT_LOW, COUNT_HIGH); // Attach the servo to the specified pin, with defined min (COUNT_LOW) and max (COUNT_HIGH) pulse widths
  M5.Lcd.setFont(&fonts::FreeMonoBoldOblique12pt7b);
  M5.Lcd.drawCenterString("SERVO", 160, 110);
}

void loop() {
  servo.writeMicroseconds(500); 
  delay(2000);
  servo.writeMicroseconds(1500); // 90° for 180° Kit, Stop for 360° Kit
  delay(2000);
  servo.writeMicroseconds(2500);
  delay(2000);
  servo.writeMicroseconds(1500); // 90° for 180° Kit, Stop for 360° Kit
  delay(2000);
}

3. コンパイルと書き込み

  • 1. ダウンロードモード:デバイスにプログラムを書き込む前にダウンロードモードへ移行する必要があります。メインコントローラによって手順は異なります。詳細はArduino IDE 入門チュートリアルページ下部のデバイス別書き込み方法一覧を参照してください。

  • AtomS3R の場合、リセットボタンを約 2 秒間長押しし、内部の緑色 LED が点灯したら放します。この時点でダウンロードモードに移行し、書き込み待機状態になります。

  • 2. デバイスのポートを選択し、Arduino IDE 左上のコンパイル&書き込みボタンをクリックし、プログラムがコンパイルされてデバイスへ書き込まれるまで待ちます。

4. サーボ制御の動作結果

注意
動作中にサーボを手動で回転させないでください。モーターを損傷する恐れがあります。
  • Servo Kit 180° は 0°、90°、180°、90° の順に回転し、繰り返します。

  • Servo Kit 360° は最小速度で反時計回り→停止→最小速度で時計回り→停止の順で繰り返し動作します。

On This Page