サーボモーターとArduinoのインターフェース方法

問題を排除するために楽器を試してください





この投稿では、サーボモーターとは何か、その機能、マイクロコントローラーとのインターフェース方法、およびこのモーターを他のモーターと比べて特別なものにしている理由を学びます。

エレクトロニクス愛好家なので、いろいろな種類のモーターに出会うことになるので、ここではサーボモーターと呼ばれる特殊なタイプのモーターを見ていきます。



サーボモーターとは?

サーボモーターまたは単にサーボは、位置、加速度、および速度を正確に制御するように設計された特殊なタイプのモーターです。他のすべてのタイプのモーターとは異なり、サーボは180度の双方向しか回転できません。サーボの回転角度を制限するメカニカルギアとストッパーを備えています。

典型的なサーボモーター:

サーボモーターは、ロボット工学、CCTVカメラ、RCカー、ボート、おもちゃの航空機などで使用されます。サーボは、回転運動を続ける必要がない場合に使用されますが、特定の位置にロックするか、移動可能な角度制限内で制御された速度で負荷を移動します。



サーボは他のタイプのような単なるモーターではありませんが、通常のDC / ACモーター、ギアのグループ、制御電子機器、フィードバックシステムを組み合わせたモジュールです。上記の各段階を詳しく見ていきましょう。

サーボモジュールに採用されているDC / ACモーターは、ブラシレスまたはブラシ付きモーターで、ほとんどのホビーサーボではDCモーターが使用され、ACモーターは産業用アプリケーションで使用されます。モーターはサーボに回転入力を与えます。モーターはサーボ内部で数百RPMで回転し、出力回転はそのRPMの約50分の1以下です。

次の段階は、サーボの角回転と速度を制御するギアアセンブリです。歯車は、負荷の大きさに応じて、プラスチックまたは金属のいずれかで作成できます。一般に、DCモーターは高RPMと低トルクで動作し、ギアアセンブリは余分なRPMをトルクに変換します。したがって、小さなモーターは大きな負荷を処理できます。

次の段階は、モーターの回転を制御するためのMOSFETとICで構成される制御電子機器です。アクチュエータの現在位置を追跡するために、フィードバックシステムがサーボモーターに常に存在します。

サーボでは、一般的にフィードバックコンポーネントはポテンショメータであり、回転アクチュエータに直接接続されています。ポテンショメータは、制御電子機器に供給される分圧器として機能します。このフィードバックは、制御電子機器がモーターに与えられる電力量を決定するのに役立ちます。

固定位置にあるサーボモーターは、外力が邪魔をしようとすると、現在の位置から移動するのを嫌がります。フィードバックシステムは現在の位置を監視し、外乱に対してモーターに電力を供給します。

上記のシナリオは、サーボがアクチュエータを動かしている場合も同じです。制御システムは外力を補償し、決定された速度で移動します。

これで、サーボモーターとその機能メカニズムについてかなり理解できました。マイクロコントローラを使用してサーボモーターを制御する方法を見てみましょう。

サーボモーターには、電源用(公称5V)用と制御信号用の2つの端子がある他のモーターとは異なり、3つの端子があります。ワイヤは、端子を簡単に識別できるように色分けされています。

サーボの制御信号は50Hz周波数のPWMです。信号のパルス幅によって、アクチュエータアームの位置が決まります。一般的なホビーサーボモーターは、1〜2ミリ秒のパルス幅で動作します。

1msのパルス幅制御信号を適用すると、アクチュエータは0度の位置に保たれます。 2msのパルス幅制御信号を適用すると、アクチュエータは180度の位置に保たれます。 1〜2ミリ秒の間に信号を印加すると、アクチュエータは0〜180度の角度に保たれます。これは、以下の画像でよりよく理解できます。

これで、サーボがパルス幅変調(PWM)によってどのように制御されるかを理解できたはずです。

それでは、サーボモーターをArduinoとインターフェースする方法を学びましょう。

回路図:

サーボモーターをArduinoとインターフェースする方法。

配線は簡単で一目瞭然です。かさばるサーボモーターを使用する場合は、外部電源が必要です。 arduino電源から電力を供給しようとすると、コンピュータのUSBポートに過負荷がかかることになります。

記事の冒頭に示されている同様のサーボがある場合は、著者のプロトタイプにも示されているarduino5V電源から電力を供給できます。

著者のプロトタイプ:

Arduinoはそれを処理するためにサーボライブラリを必要とします、それは私たちのタスクを簡単にしました、そしてそれはすでにArduinoIDEにあります。

プログラム:

//--------Program developed by R.Girish--------//
#include
Servo motor
int pos = 0
int t=10
void setup()
{
motor.attach(7)
}
void loop()
{
A:
pos=pos+1
motor.write(pos)
delay(t)
if(pos==180) { goto B}
goto A
B:
pos=pos-1
motor.write(pos)
delay(t)
if(pos==0) { goto A}
goto B
}
//--------Program developed by R.Girish--------//

上記のプログラムは、アクチュエータを右に0〜180度、左に180〜0度スイープし、サイクルを繰り返します。これは、カスタマイズされたアプリケーション用に独自のコードを作成する必要があるサーボをテストするための簡単なプログラムです。




前:2パイプウォーターポンプバルブコントローラー回路 次へ:オートバイの電圧レギュレーターの配線を理解する