DCサーボモータをArduinoで動かす①とにかく動かす

2021/04/25

Arduino DCサーボモータ

t f B! P L

経緯

業務でDCサーボモータのドライバを扱うことになりました(DC(Direct Current:直流))。

そもそも「DCサーボモータ」が分からないので自前で動かして理解につとめます。


サーボモータとは

サーボ制御(明確な定義は無いらしい)しているモータのことです。

どんな種類のモータを使っても良いのですが、目標となる回転角度や速度を定めてモータを動かし、動いた結果に修正をかける自動制御(フィードバック制御)しているモータをサーボモータと呼ぶようです。

(「サーボ」:ラテン語「servus」(命令に従う者)より)


ただしDCモータでも「ブラシレスモータ」は原理的にACモータである(整流子モータにおける整流子・ブラシの替わりにモータ外部で電流方向を繰り返し逆転させているので)との意見も強いので微妙なところかもしれません。

他方で整流子モータは文句なしにDCサーボモータですが、機械的に摩耗するブラシを使っているためメンテナンスが必要であることで嫌われます。よって最近の産業用とではACサーボモータが主流になっており、DC(整流子)サーボモータはホビー用途が主流の様子です。


なお、正確な回転角度や速度と言えば「ステッピングモータ」がありますが、こちらはフィードバック制御が無く、何かの原因で回転角度がずれたらずれたままになってしまいます。よって、サーボモータに分類されませんが、用途的に近いことから「広い意味でサーボモータである」などとの意見も見かけます。


使用する器材

①DCサーボモータ「SG90」(Arduino UNOのスターターキットに付属)


Weight: 9 g

Dimension: 22.2 x 11.8 x 31 mm approx.

Stall torque: 1.8 kgf·cm

Operating speed: 0.12 s/60 degree

Operating voltage: 3.3 V (~6V)

Dead band width: 1 μs

Temperature range: 0 ºC – 55 ºC


②Arduino UNO(Amazonでスターターキットを購入)

Arduino UNOスターターキット(外側)


Arduino UNOスターターキット(中身)

③ジャンパ線(Arduinoのスターターキットに付属)

④パソコン環境(Arduino IDE。USBケーブル経由でArduinoに書き込む)


器材組み合わせ


ジャンパでSG-90をArduinoに直接接続
<SG-90>                 <Arduino>
・PWM(オレンジ)  - DIGITAL 3pin
・Vcc(赤)             - 5V
・Ground(茶)       - GND

USBケーブルでPCからArduinoに接続してスケッチの書き込み、給電を行います。

※給電だけならPCでなくとも例えばモバイルバッテリーでも給電できます


Arduinoのスケッチ

#include<Servo.h> //ライブラリ「Servo.h」読み込む

Servo myservo; //「myservo」なるオブジェクトを作成

void setup() {

  myservo.attach(3); // Digital3番ピンを「myservo」出力に設定

}


void loop() {

  myservo.write(0); //0°を出力

  delay(1000); //1000ミリ秒待つ

  myservo.write(90); //90°を出力

  delay(1000); //1000ミリ秒待つ

  myservo.write(180); //180°を出力

  delay(1000); //1000ミリ秒待つ

}


動作

スケッチ通り、0°→90°→180°(繰り返し)を1秒(=1,000ミリ秒)刻みで動いてくれます。

モータを電源、信号ともにArduino直結で動かせること、スケッチにも専用のライブラリ「Servo.h」があることでとても簡単に動かせました。


次回:DCサーボモータをArduinoで動かす②制御を探る


このブログを検索

ブログ アーカイブ

自己紹介

にほんブログ村

QooQ