このチュートリアルでは、ARDUINOUNOによってサーボモーターを制御します。サーボモーターは、シャフトの正確な動きや位置が必要な場合に使用されます。これらは高速アプリケーションには提案されていません。これらは、低速、中トルク、および正確な位置のアプリケーション向けに提案されています。これらのモーターは、ロボットアームマシン、飛行制御、および制御システムで使用されます。
サーボモーターは、さまざまな形状とサイズで入手できます。サーボモーターは主にワイヤーがあり、1つは正電圧用、もう1つはアース用、最後の1つは位置設定用です。赤の線は電源に接続され、黒の線はアースに接続され、黄色の線は信号に接続されています。
サーボモーターは、DCモーター、位置制御システム、ギアの組み合わせです。DCモーターのシャフトの位置は、PWM信号のデューティ比SIGNALピンに基づいて、サーボの制御電子機器によって調整されます。
簡単に言えば、制御電子機器はDCモーターを制御することによってシャフトの位置を調整します。シャフトの位置に関するこのデータは、SIGNALピンを介して送信されます。コントロールへの位置データは、サーボモーターの信号ピンを介してPWM信号の形式で送信する必要があります。
PWM(Pulse Width Modulated)信号の周波数は、サーボモーターのタイプによって異なります。ここで重要なのは、PWM信号のデューティ比です。この義務に基づいて、制御電子機器がシャフトを調整します。
下の図に示すように、シャフトを9時の位置に移動するには、ターンオン比が1/18である必要があります。18msの信号で1msのオン時間と17msのオフ時間。
シャフトを12oクロックに移動するには、信号のオン時間は1.5ミリ秒、オフ時間は16.5ミリ秒である必要があります。この比率はサーボの制御システムによってデコードされ、それに基づいて位置を調整します。ここでのこのPWMは、ARDUINOUNOを使用して生成されます。
回路部品
ハードウェア: ARDUINO UNO、電源(5v)、100uFコンデンサ、ボタン(2個)、1KΩ抵抗(2個)、サーボモーター(テストが必要)。
ソフトウェア: arduino IDE(Arduino毎晩)。
Arduinoサーボモーターの回路図と説明
通常、周波数を調整し、サーボの正確な位置制御に必要なデューティ比を取得するためにコントローラのレジスタに移動する必要がありますが、ARDUINOではそれらのことを行う必要はありません。
ARDUINOには事前定義されたライブラリがあり、ヘッダーファイルが呼び出されるかインクルードされると、それに応じて周波数とデューティ比が設定されます。ARDUINOでは、必要なサーボの位置を指定するだけで、PWMはUNOによって自動的に調整されます。
サーボの正確な位置を取得するために必要なことは次のとおりです。
|
まず、PWM信号の周波数を設定する必要があり、そのために「#include」を呼び出す必要があります。
次に、サーボ「Servo sg90sevo」の名前を定義する必要があります。ここでは、「sg90servo」が選択された名前です。したがって、ポーションの作成時にこの名前を使用します。この機能は、制御するサーボが多数ある場合に役立ちます。これにより、最大8つのサーボを制御できます。
ここで、サーボの信号ピンが接続されている場所、またはPWM信号を生成する必要がある場所をUNOに通知します。これを行うために、「Sg90.attach(3);」があります。ここでは、サーボの信号ピンをPIN3に接続したことをUNOに伝えています。
あとは位置を設定するだけです。「Sg90.write(30);」を使ってサーボの位置を設定します。このコマンドでサーボの針が30度動くので、これで終わりです。その後、サーボの位置を変更する必要があるときはいつでも、コマンド「Sg90.write(needed_position_angle);」を呼び出す必要があります。この回路では、2つのボタンがあります。1つのボタンはサーボの位置を上げるためのもので、もう1つはサーボの位置を下げるためのものです。
Arduinoのサーボモータ制御チュートリアルは、 以下に示すCコードのステップごとに説明します。