Arduinoの学習 - サーボ制御

ステアリングギアの紹介

  • 構造制御
    ステアリングギアは実際には位置サーボドライバーであり、主にケース、回路基板、コアレスモーター、ギア、位置検出器で構成されています。
  • 動作原理
    :ステアリングギア内部に基準回路があり、周期20ms、幅1.5msの基準信号を発生し、得られたDCバイアス電圧とポテンショメータの電圧を比較して電圧差出力を取得します。基板ICの向きを判断してコアレスモーターが回転を開始し、その動力が減速機を介してスイングアームに伝達されると同時に、位置検出器から正否を判断する信号が返信されます。所定の位置に。
    サーボの回転角度は、PWM「パルス幅変調」信号のデューティ サイクルを調整することで実現されます。標準 PWM 信号の周期は 20ms に固定されています。理論的には、パルス幅分布は 1ms ~ 2ms の間である必要があります。実際には、0.5ms ~ 2.5ms の間で可能です。パルス幅は回転角 0° ~ 180 度に対応します。 °。メーカーごとにサーボのモデルも異なります。

ここに画像の説明を挿入します

  • 外部配線
    : サーボには通常 3 本の外部配線があり、茶色、赤、オレンジの色で区別されます。ブランドが異なるため、色も異なります。茶色はアース線、赤はプラスの電源線、オレンジ色です。信号線です。

ここに画像の説明を挿入します

開発ボードの電源容量には限りがあるため、複数のサーボを駆動するには外部電源を接続する必要があります。

回路を接続する

ここに画像の説明を挿入します

プログラミング

必要なファイル ライブラリ
#include<Servo.h>


たとえば、サーボ定義オブジェクトを使用します。

Servo 对象名;//定义控制对象

セットアップ関数でattachを使用してピンを接続します

对象.attach(针脚值);   

ループ関数の書き込みを使用してオブジェクトの角度を制御します

对象.write(角度值);

2つのサーボを制御するサンプルコード

#include <Servo.h>

Servo up_se;  // 定义上角度对象来控制
Servo do_se;  // 定义下角度对象来控制
int pos = 0;    // 角度存储变量

void setup() {
    
    
  up_se.attach(9);  // 控制线连接数字9
  do_se.attach(8);  // 控制线连接数字8
}

void loop() {
    
    
    pos++;
    up_se.write(pos);              // 舵机角度写入
    do_se.write(pos);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
    if(pos == 180){
    
    
        pos = 0;
    }
    
}

サーボのコード例:

#include <Servo.h>

Servo myservo;  // 定义Servo对象来控制
int pos = 0;    // 角度存储变量
void setup() {
    
    
  myservo.attach(9);  // 控制线连接数字9
}
void loop() {
    
    
  for (pos = 0; pos <= 180; pos ++) {
    
     // 0°到180°
    // in steps of 1 degree
    myservo.write(pos);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
  }
  for (pos = 180; pos >= 0; pos --) {
    
     // 从180°到0°
    myservo.write(pos);              // 舵机角度写入
    delay(5);                       // 等待转动到指定角度
  }
}

写真の例:

ここに画像の説明を挿入します

注: この記事は TonyIOT の記事を参照しており、体系的に学習するための推奨記事です。

おすすめ

転載: blog.csdn.net/Systemmax20/article/details/115253171