ULN2003ドライバーとArduinoを使用した28BYJ-48ステッパーモーター
このチュートリアルでは、Arduinoを使用してULN2003ドライバーで28BYJ-48ステッパーモーターを制御する方法を学びます。このセットアップにより、モーターの位置と速度を正確に制御できます。このプロジェクトの終わりまでには、モーターを両方向に回転させ、ステップを効果的に制御できるようになります。
私たちは、低コストで使いやすいため、さまざまなロボティクスや自動化プロジェクトに人気のある28BYJ-48ステッパーモーターを使用します。ULN2003ドライバーボードは、ステッパーモーターとArduinoを接続し、モーターの動きを制御するステップ信号を送信できるようにします。このチュートリアルでは、モーターを回転させるために必要な配線とコードを案内します。
さらなる明確化のために、このチュートリアルに関連するビデオを参照してください(ビデオの0:45で)。
ハードウェアの解説
このプロジェクトの主要なコンポーネントには、28BYJ-48ステッピングモーターとULN2003ドライバーボードが含まれています。ステッピングモーターは、特定の順序で励磁されるいくつかのコイルで構成されており、回転を生み出します。ULN2003ドライバーはスイッチとして機能し、Arduinoが各コイルに供給される電力を制御できるようにします。
ULN2003ドライバーは、ステッピングモーターに必要な高い電流を処理するためにダーリントン・トランジスタ・アレイを使用しています。ArduinoのピンがHIGH信号を出力すると、モーターの対応するコイルに電流が流れ、モーターが動きます。これにより、モーターの回転角度と速度を正確に制御することができます。
データシートの詳細
| 製造業者 | ULN2003 |
|---|---|
| 部品番号 | ULN2003 |
| ロジック/IO電圧 | 5 V |
| 供給電圧 | 5-30 V (最大) |
| 出力電流(チャネルごと) | 最大500 mA |
| ピーク電流(チャネルごと) | 2 A 最大 |
| PWM周波数ガイダンス | N/A |
| 入力ロジック閾値 | 0.8 V(低)、2.4 V(高) |
| 電圧降下 / RDS(on)/ 飽和度 | 1.5 V 最大 |
| 熱的制限 | 最大70 °C |
| パッケージ | DIP-16 |
| ノート / バリアント | 一般的に5Vステッパーモーターと一緒に使用されます。 |
- ドライバーがあなたのモーターの現在の要件に対応できることを確認してください。
- 必要に応じて、熱限界を管理するためにヒートシンクを使用してください。
- すべての接続が確実であることを確認し、浮遊入力を避けてください。
- モーターをテストするために、より大きなプロジェクトに統合する前に、シンプルなステップシーケンスを実行してください。
- モーターに適切な供給電圧を供給することを確認してください。
配線指示
28BYJ-48ステッピングモーターをULN2003ドライバーとArduinoに接続するには、次の手順に従ってください:
まず、モーターをULN2003ドライバーに接続します。モーターには通常、オレンジ、黄色、ピンク、青の4本のワイヤーがあります。これらのワイヤーをULN2003ドライバーの対応する出力ピンに接続します。接続は次のようになります:
OrangeワイヤーへOUT1YellowワイヤーへOUT2PinkワイヤーへOUT3BlueワイヤーへOUT4
次に、ULN2003ドライバーをArduinoに接続します。ドライバーの入力ピンは、Arduinoの4つのデジタルピンに対応しています。例えば:
IN1へPin 10IN2へPin 11IN3へPin 12IN4へPin 13
最後に、ULN2003ドライバーの電源ピンとグラウンドピンをArduinoに接続します。接続するVCCArduinoの5V出力にピンを接続し、GNDArduinoのグラウンドにピンを接続します。システムの電源を入れる前に、すべての接続が確実であることを確認してください。
コード例とウォークスルー
Arduinoコードのセットアップセクションでは、ULN2003ドライバーに接続されているピンを定義します。
int Pin1 = 10;
int Pin2 = 11;
int Pin3 = 12;
int Pin4 = 13;
ここでは、4つの整数変数を宣言します:Pin1,Pin2,Pin3, とPin4Arduinoのデジタルピンに対応するこれらのピンは、ステッパーモーターの動きを制御します。
中でsetup()関数では、これらのピンを出力として設定します:
void setup() {
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);
}
このセットアップにより、ArduinoはULN2003ドライバーに信号を送信してモーターを制御できるようになります。pinMode関数は各ピンをOUTPUTモードに設定し、信号を送信できるようにします。
最後に、メインループでは、変数に基づいてモーターのステップを制御するためのスイッチケースを作成します。_step:
switch(_step){
case 0:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
// Additional cases follow
}
この抜粋では、私たちは使用しますdigitalWrite各ピンに現在の状態に基づいてHIGHまたはLOW信号を送信するために_stepこの制御は、どのコイルが励磁されるかを決定し、モーターが回転することを可能にします。これらのスニペットを統合した完全なコードは、記事の下に読み込まれます。
デモンストレーション / 期待すること
すべてが正しく配線され、コードがアップロードされると、ステッパーモーターはArduinoからの信号に応じて回転するはずです。ループ内の遅延を変更したり、ステップを変更したりして、モーターの反応をテストできます。モーターが正しく電源供給されていない場合、動かないか、異常な動作をする可能性があることに注意してください。
章
- イントロダクション - 0:00
- ハードウェアの説明 - 1:30
- 配線指示 - 3:15
- コード例とウォークスルー - 5:00
- デモンストレーション / 期待すること - 7:45
/*
* 原文のソースは http://www.geeetech.com/wiki/index.php/Stepper_Motor_5V_4-Phase_5-Wire_%26_ULN2003_Driver_Board_for_Arduino です。
* RoboJax.com のために Ahmad Shamshiri によって更新されました。
* 2017年3月27日にカナダのオンタリオ州アジャックスで公開されました。
*
* このコードの配線図が必要です: https://youtu.be/0glBk917HPg
* 私のArduinoコースをUdemy.comで購入してください http://robojax.com/L/?id=62
*
* このコードや他のArduinoコードをRoboJax.comから取得してください。
* すべての資料、配線図、ライブラリが一つの場所で揃った構造的なコースでArduinoを一歩ずつ学びましょう。
* 私のコースをUdemy.comで購入してください http://robojax.com/L/?id=62
*
* このチュートリアルが役立ったと思われたら、私がこのようなコンテンツを作り続けるためにサポートしてください。
*
* またはPayPalを使用して寄付をしてください http://robojax.com/L/?id=64
*
* このコードは「現状のまま」であり、保証や責任はありません。このメモをそのまま保持する限り、自由に使用できます。
* このコードはRoboJax.comからダウンロードされました。
* このプログラムはフリーソフトウェアです:あなたはこれを再配布または修正することができます。
* これはGNU一般公衆ライセンスの条件の下で刊行されており、ライセンスのバージョン3または(あなたの選択により)それ以降のバージョンです。
*
* このプログラムは役立つことを期待して配布されていますが、保証は一切ありません。
* 商品性または特定の目的への適合性の暗黙の保証すらありません。詳細についてはGNU一般公衆ライセンスを参照してください。
*
* あなたはこのプログラムと共にGNU一般公衆ライセンスのコピーを受け取るべきです。
* もし受け取っていない場合は、<https://www.gnu.org/licenses/>を参照してください。
*/
int Pin1 = 10;
int Pin2 = 11;
int Pin3 = 12;
int Pin4 = 13;
int _step = 0;
boolean dir = true; // 偽=時計回り、真=反時計回り
int count=0;
void setup()
{
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);
}
void loop()
{
switch(_step){
case 0:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
case 1:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, HIGH);
break;
case 2:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, LOW);
break;
case 3:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
digitalWrite(Pin4, LOW);
break;
case 4:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
case 5:
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
case 6:
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
case 7:
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, HIGH);
break;
default:
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
digitalWrite(Pin4, LOW);
break;
}
if(dir){
_step++;
}else{
_step--;
}
if(_step>7){
_step=0;
}
if(_step<0){
_step=7;
}
delay(1);
}
必要かもしれないもの
-
アリエクスプレスAliExpressから28BYJ-48ステッピングモーターを5個購入してください。s.click.aliexpress.com
-
アリエクスプレスPFR120N LR7843 AOD4184 D4184の絶縁MOSFET MOSチューブFETモジュール交換リレー 100V 9.4A 30V 161A 40V 50A基板s.click.aliexpress.com
リソースと参考文献
-
外部AliExpressから28BYJ-48ステッピングモーターを5個購入してください。s.click.aliexpress.com
-
外部
-
外部
-
外部
-
外部PFR120N LR7843 AOD4184 D4184の絶縁MOSFET MOSチューブFETモジュール交換リレー 100V 9.4A 30V 161A 40V 50A基板s.click.aliexpress.com
-
外部このモジュールをアメリカのアマゾンで購入してください。amzn.to
-
外部このモジュールをカナダのアマゾンで購入してください。amzn.to
-
外部このモジュールを他のすべてのAmazonから購入してください。amzn.to
-
外部
ファイル📁
ファイルは利用できません。