28BYJ-48:このステッピングモーターについて知っておくべきことすべて

28BYJ-48ステッピングモーター

一つ 最も人気のあるステッピングモーターは28BYJ-48です。 このブログに掲載された記事の後、あなたはすでに知っているはずです このタイプのエンジンについて必要なものすべて ゆっくりと進むか、希望の位置で静止したままになるようにターンを制御できる精度。 これにより、産業用からロボット工学まで、考えられる他の多くのアプリケーションを介して、多数のアプリケーションを使用できます。

28BYJ-48は小さいです ユニポーラ式ステッピングモーター、Arduinoとの統合が簡単です。これは、通常、ドライバー/コントローラーモジュールモデルULN2003Aが付属しているためです。 すべて非常に安い価格とかなりコンパクトなサイズです。 これらの機能により、これらのデバイスの練習を開始することも理想的です。

28BYJ-48の機能

28byj-48

モーター 28byj-498 これは、次の特性を持つステッピングモーターです。

  • ティポ:ステッピングモーターまたはユニポーラステッパー
  • フェーズ:内部に4つのコイルがあるため、4(フルステップ)。
  • 抵抗:50Ω。
  • エンジントルク: 34 N / m、つまり、0.34メートルあたりのニュートンがKgに渡される場合、その軸にXNUMXcmあたり約XNUMXKgを置くのと同等の力になります。 滑車でXNUMX分のXNUMXキロ強持ち上げるのに十分です。
  • 消費:55 mA
  • ラップあたりのステップ:ハーフステップタイプ8個(各45º)
  • 統合されたギアボックス:はい、1/64なので、精度を高めるために各ステップを64の小さなステップに分割します。したがって、それぞれ512ºの0.7ステップに達します。 または、ラップあたり256フルステップ(フルステップ)と見なすこともできます。

フルステップまたはハーフステップ、またはフルステップとハーフステップは、作業できるモードです。 覚えているかと思いますが、ステッピングモーターに関する記事で、ArduinoIDEのコード例はフルトルクで動作すると述べました。

詳細については、次のことができます。 データシートをダウンロードするとして たとえばこれ。 ピン配列については、購入したモデルのデータシートにも情報が記載されていますが、それほど心配する必要はありません。 しかし、このコンクリートには、分極や各ケーブルの行き先を気にすることなく、すべてのケーブルを一度に接続できる接続があり、コントローラーに挿入するだけで出来上がり...

ULN2003モジュールドライバー

この28BYJ-48モーターに含まれるモーターコントローラーまたはドライバーは、 ULN2003A、最も人気のあるものの500つであり、Arduinoで非常に簡単に使用できます。 これには、最大4mAをサポートするダーリントントランジスタのアレイがあり、前述のステッピングモーターの記事で見たように、1つのコイルをIN4からIN5までの番号が付けられたArduinoボードのピンにリンクする接続ピンがあります。 Arduinoから、ピン5vとGNDから、-+(12-XNUMXv)とマークされたドライバーモジュールボードのXNUMXつのピンに配線して、ボードとステッピングモーターに電力を供給することができます。

ULN2003Aチップのピン配列と回路

ちなみに、 ダーリントントランジスタ 一緒に配置され、単一のトランジスタとして機能する一対のバイポーラトランジスタを使用することが許可されています。 これにより、結果として得られる単一の「トランジスタ」の信号のゲインが大幅に増加し、より高い電流と電圧を流すこともできます。

El ダーリントンペア、1952つのバイポーラトランジスタの組み合わせによって形成される単一の「トランジスタ」が知られているように。 それはXNUMX年にシドニーダーリントンによってベル研究所で始まったので、その名前が付けられました。 これらのトランジスタは、XNUMXつのNPNのコレクタがXNUMX番目のNPNトランジスタのコレクタに接続されるように接続されています。 最初の発行者がXNUMX番目のベースに行く間。 つまり、結果として得られるトランジスタまたはペアには、単一のトランジスタとしてXNUMXつの接続があります。 最初のトランジスタのベースとXNUMX番目のトランジスタのコレクタ/エミッタ..。

モーターを購入する場所

28BYJ-48エンジンパッケージ

たくさん あなたは多くの店で見つけることができます エレクトロニクスに特化し、Amazonのようにオンラインでも。 たとえば、次の場所で購入できます。

Arduinoで28BYJ-48をプログラミングする

ステッピングモーターとコントローラーを備えたArduino

まず第一に、あなたはすべきです ステッピングモーターの概念を明確にする、だから私はあなたをお勧めします これらのアイテムに関するHwlibreの記事を読む。 これらのモーターは、継続的に給電されるようには設計されていませんが、必要な程度だけ前進するように、さまざまなフェーズで分極するように設計されています。 位相を励起してシャフトの回転を制御するには、各接続に適切に給電する必要があります。

製造元は、一度に2つのコイルを駆動することを推奨しています。

  • それを機能させるには 最大トルクで、最速の速度と最大消費量で、次の表を使用できます。
手順 コイルA コイルB コイルC コイルD
1 高い 高い LOW LOW
2 LOW 高い 高い LOW
3 LOW LOW 高い 高い
4 高い LOW LOW 高い
  • 一度にXNUMXつのコイルのみを駆動し、それを機能させる ウェーブドライブモード (半分でも、消費量は少ない)、次の表を使用できます。
手順 コイルA コイルB コイルC コイルD
1 高い LOW LOW LOW
2 LOW 高い LOW LOW
3 LOW LOW 高い LOW
4 LOW LOW LOW 高い
  • または進歩のために 半音、これを使用して、より短いステップでより高い旋削精度を達成できます。
手順 コイルA コイルB コイルC コイルD
1 高い LOW LOW LOW
2 高い 高い LOW LOW
3 LOW 高い LOW LOW
4 LOW 高い 高い LOW
5 LOW LOW 高い LOW
6 LOW LOW 高い 高い
7 LOW LOW LOW 高い
8 LOW LOW LOW 高い

そして、あなたは考えるかもしれません...これはArduinoプログラミングと何の関係がありますか? まあ真実はそれがたくさんあるので ArduinoIDEの値で行列または配列を作成できます モーターが思い通りに動くように、そしてループで、または必要なときにそのアレイを使用します... LOW = 0およびHIGH = 1、つまり電圧または高電圧がないことを考慮して、次のように作成できます。モーターを駆動するためにコントローラーに送信する必要のあるArduinoの信号。 たとえば、中程度の手順を実行するには、マトリックスのコードを使用できます。

int Paso [ 8 ][ 4 ] = 
     {  {1, 0, 0, 0}, 
        {1, 1, 0, 0}, 
        {0, 1, 0, 0}, 
        {0, 1, 1, 0}, 
        {0, 0, 1, 0}, 
        {0, 0, 1, 1}, 
        {0, 0, 0, 1}, 
        {1, 0, 0, 1} };

つまり、 スケッチの完全なコード Arduino IDEから、この基本的な例を使用して、28BYJ-48ステッピングモーターがどのように機能するかをテストできます。 これにより、ダイアグラム全体が正しく接続されたら、モーターシャフトを回転させることができます。 値を変更するか、ケースで必要なアプリケーションのコードを変更してみてください:

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}

ご覧のとおり、この場合、コイルをXNUMXつずつアクティブにする最大トルクで動作します...


コメントを最初に

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。