Arduinoによるモータードライバーの速度制御

この例では、Arduinoとモータードライバーを使用してリニアアクチュエーターの速度を制御します。

注:このチュートリアルは、基本的な電子原理、Arduinoハードウェアおよびソフトウェアに関する予備知識を前提としています。 Arduinoを初めて使用する場合は、GoogleおよびYouTubeの検索で利用できる多くの優れた初心者向けチュートリアルの1つから基本を学ぶことをお勧めします。カスタムアプリケーションのテクニカルサポートを提供するためのリソースがなく、これらの公開されているチュートリアル以外でデバッグ、編集、コードまたは配線図を提供しないことに注意してください。

コンポーネント

配線

Arduinoによるモータードライバーの速度制御

ハードウェアとソフトウェアの概要

リニアアクチュエータのDCモーターには大電流(最大5A)が必要です。リニアアクチュエータをArduinoに直接接続すると、それぞれの定格が40mAしかないため、この高電流によってArduinoデジタルピンが破壊されます。そのため、Arduinoボードから低電流PWM(パルス幅変調)信号を受け取り、高電流PWM信号をリニアアクチュエータに出力できるモータードライバを使用します。

モータードライバーは、2つのPWMデジタルピン(Arduino Unoのピン10と11)に接続されています。これらのピンの1つをLOWに設定し、もう1つをHIGHに設定することで(以下のコードの行18と19を参照)、アクチュエータを最大速度で伸ばすことができます。アクチュエータを停止するには、両方のピンをLOWに設定し(以下のコードの21行目と22行目を参照)、動きの方向を逆にするには、HIGHピンとLOWピンの順序を逆にします(以下のコードの24行目と25行目を参照)。変数「Speed」を[0、255]の範囲の任意の値に変更して、速度を調整することもできます。以下のコードの17行目を参照してください。

コード

https://gist.github.com/Will-Firgelli/c0ef0871dc1946d75257e0c29dccae2a

ポテンショメータによるさまざまな速度制御

上記の例では、コードの17行目で速度を手動で設定しています。ただし、アクチュエータの速度を時間内に変化させたい場合があります。これを実現する最も簡単な方法は、ポテンショメータを使用することです。 A ポテンショメータは分圧器として機能できる3端子可変抵抗器。ポテンショメータのノブを回すと出力電圧が変化し、これをArduinoのアナログピンに接続して可変速度を設定できます。

配線

Arduinoによるモータードライバーの速度制御

ハードウェアとソフトウェアの概要

前述のように、ポテンショメータは、ノブを回すと抵抗が変化する回転装置です。ポテンショメータの2つの外側のピンを5VとGNDに接続し、中央のピンをArduinoのアナログピンA0に接続することにより、分圧器が作成されます。ノブを回すと、Arduinoは[0、1023]の範囲のアナログ読み取り値を読み取ります。

[512、1023]の範囲の値の場合、アクチュエータを拡張し、値[0、511]の場合、アクチュエータを収縮させます。これは、の22行目と28行目の単純なif()/ elseステートメントで実現できます。以下のコード。次に、map()関数(以下のコードの23行目と29行目)を使用して、これをアクチュエータの速度と方向の両方を制御するPWM信号に変換できます。

コード

https://gist.github.com/Will-Firgelli/d2cdf69edc829974885984b3fb8e4856

Share This Article
Tags: