- 必要なコンポーネント
- ステッピングモーターのピンの説明
- ULN2003モジュールを使用したステッピングモーター制御の回路図
- L293Dモジュールを使用したステッピングモーター制御の回路図:
- AVRATmega16によるステッピングモーターの制御
ステッピングモータは0から回転させることができ、DCブラシレスモータである0 360 0ステップで。ステッピングモーターは電子信号を使用してモーターを段階的に回転させ、各信号はシャフトを一定の増分(1段階)で回転させます。回転エンジェルは、特定の信号シーケンスを適用することによって制御されます。サーボモーターとは異なり、ステッピングモーターは、PWMピンではなくマイクロコントローラーのGPIOピンを使用して駆動でき、(+ 360 0)および(-360 0)で回転できます。)。信号の順序によって、ステッピングモーターの時計回りと反時計回りの方向が決まります。モーターの速度を制御するには、適用される制御信号の速度を変更するだけです。ステッピングモーターは段階的に回転します。フルステップ、ハーフステップ、マイクロステップなど、ステッピングモーターを操作するためのステップにはいくつかのモードがあります。ステッピングモーターの基本、理論、および動作原理の詳細については、リンクをたどってください。
以前、ステッピングモーターを多くのマイクロコントローラーと接続しました。
- ステッピングモーターとARM7-LPC2148のインターフェース
- ステッピングモーターとArduinoUnoのインターフェース
- ステッピングモーターとMSP430G2のインターフェース
- ステッピングモーターとSTM32F103C8のインターフェース
- ステッピングモーターとPICマイクロコントローラーのインターフェース
- ステッピングモーターと8051マイクロコントローラーのインターフェース
- ステッピングモーターとRaspberryPiのインターフェース
このチュートリアルでは、Atmel Studio 7.0を使用して、28BYJ -48ステッピングモーターをAtmega16AVRマイクロコントローラーとインターフェースさせます。ステッピングモーターの定格は5Vで動作します。ステッピングモーターを両方のモータードライバー、つまりULN2003とL293に接続します。どちらも5V電源で駆動されます。インターフェースを簡素化するために、両方のモータードライバーのプリビルドモジュールを使用しています。ULN2003およびL293DスタンドアロンICを使用することもできます。ワイヤーとジャンパーの数はもっと多くなる可能性があるので、すべての接続を接続するときは注意してください。
必要なコンポーネント
- ステッピングモーター(28BYJ-48)
- ULN2003モジュール/ L293Dモータードライバー
- Atmega16マイクロコントローラーIC
- 16Mhz水晶発振器
- 2つの100nFコンデンサ
- 2つの22pFコンデンサ
- ボタンを押す
- ジャンパー線
- ブレッドボード
- USBASP v2.0
- Led(任意の色)
ステッピングモーターのピンの説明
ULN2003モジュールを使用したステッピングモーター制御の回路図
ULN2003を使用する場合は、下の図に示すようにすべてのコンポーネントを接続します。同様に、次のステップでL293Dを使用してインターフェースします。Atmega16のPORTAを使用して、両方のモータードライバーのステッピングモーターをインターフェースします。ステッピングモーターの5Vピンを接続する必要はありません。ステッピングモーターを動かすのに必要なのはコイルピンだけです。ステッピングモーターを駆動するには、ピンの順序が非常に重要です。これは、ステップを達成するためにコイルに通電する必要があるためです。このプロジェクトでは、ULN2003の4つの入力とULN2003の4つの出力が使用されます。入力はPORTAピンに接続され、出力はステッピングモーター信号ピンに接続されます。また、必要に応じてAtmega16をリセットするために、リセットピンに1つの押しボタンを接続します。Atmega16を適切な水晶発振器回路に接続します。すべてのシステムは5V電源から電力を供給されます。
以下は、ULN2003モータードライバーモジュールの実際の写真です。
以下に、ステッピングモーターを回転させるためのULN2003およびL293DとのAtmega16ピン接続を示します。ステッピングモーターとL293Dモジュールのインターフェースについては、後のセクションで説明します。ステッピングモーターの制御に必要なモジュールはULN2003またはL293Dのいずれか1つだけであることを忘れないでください。
INPUTのピン接続は次のとおりです。
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1(PIN1) |
IN1(PIN2) |
A1 |
IN2(PIN2) |
IN2(PIN7) |
A2 |
IN3(PIN3) |
IN3(PIN10) |
A3 |
IN4(PIN4) |
IN4(PIN15) |
OUTPUTのピン接続は次のとおりです。
ステッピングモーター |
ULN2003 |
L293D |
オレンジ |
OUT1(PIN16) |
OUT1(PIN3) |
黄 |
OUT2(PIN15) |
OUT2(PIN6) |
ピンク |
OUT3(PIN14) |
OUT3(PIN11) |
青い |
OUT4(PIN13) |
OUT4(PIN14) |
L293Dモジュールを使用したステッピングモーター制御の回路図:
AVRATmega16によるステッピングモーターの制御
サーボモーターとは異なり、すでに述べたように、ステッピングモーターには、ULN2003やL293Dモータードライバーなどの外部ドライバーが必要です。したがって、上記のようにCircuitを接続し、最後にあるmain.cプログラムをアップロードするだけです。
スケッチは、ステッピングモーターが両側、つまり時計回りと反時計回りに回転していることを示しています。ステッパーを一方向に回転させたい場合は、スケッチ内の別の方向のコード行をコメントアウトするだけです。
ステッピングモーターを制御するための完全なAVRコードを以下に示します。コードはシンプルで簡単に理解できます。以下に2つのコードを示します。1つはULN2003を使用した回転ステッピングモーター用で、もう1つはL293Dモジュールを使用したものです。
USBASP v2.0を接続し、このリンクの指示に従って、USBASPとAtmel Studio7.0を使用してAtmega16AVRマイクロコントローラーをプログラムします。スケッチを作成し、外部ツールチェーンを使用してアップロードするだけです。
デモンストレーションビデオを含む完全なコードを以下に示します。