バイポーラ型ステッピングモーターの制御:Arduinoで学ぶ基礎からのモーター制御(8)(5/5 ページ)
精密制御に欠かせないステッピングモーター。今回はバイポーラ型ステッピングモーターについて、その制御をマイコン(Arduino)から行います。
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6,INPUT_PULLUP);
}
void forward(){
digitalWrite(3,LOW);
digitalWrite(2, HIGH);
delay(5);
digitalWrite(5,LOW);
digitalWrite(4, HIGH);
delay(5);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
delay(5);
digitalWrite(4, LOW);
digitalWrite(5,HIGH);
delay(5);
}
void backword(){
digitalWrite(3,LOW);
digitalWrite(5, HIGH);
delay(5);
digitalWrite(2,LOW);
digitalWrite(3, HIGH);
delay(5);
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
delay(5);
digitalWrite(3, LOW);
digitalWrite(2,HIGH);
delay(5);
}
void loop() {
if (digitalRead(6)==LOW) backword();
else
forward();
}
このプログラムでは、Setup()関数の中で新たにスイッチを接続するための入力用のGPIOを設定しています( pinMode(6,INPUT_PULLUP); )。
また6番ピンを入力用に設定しているのですが、第2引数にINPUT_PULLUPとしています。これはArduinoのCPU Atmega328P内部で6番ピンをプラス側に接続することを意味しています。6番ピンに接続するスイッチが開いているとき、値を1にするためです。
もしこのプラス側に接続する抵抗がない場合は、スイッチが開いているとき値が非常に不安定になってしまいます。このような抵抗のことをプルアップ抵抗と呼びます。以前、このような抵抗はCPUの外に取り付けていましたが、最近のマイコンでは内部で設定できるものもあります。
Loop()関数内で6番ピンの状態を見て、スイッチが押されていればbackword()関数を実行します。それ以外の場合はforward()が実行されます。
おわりに
今回はバイポーラ型のステッピングモーターについてお話ししました。
トランジスタでドライブ回路を作り、またGPIOをコードで直接制御する方法でステッピングモーターを回転させてみましたが、これは基本を押さえることに重点を置いたからです。
最近は便利なドライバ回路や制御モジュールが出回っていますので、実際にステッピングモーターを使った機器を製作する場合はそれらを使うのが一般的でしょう。次回はそれらの使い方についてお話ししたいと思います。お楽しみに。(次回へ続く)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
ステッピングモーターの制御
前回までは“マブチモーター”に代表される「直流ブラシ付きモーター」を、マイコン(Arduino)で制御する方法を紹介してきました。今回からは「ステッピングモーター」の制御に取り組みます。
PWMを使ったサーボモーターの制御
ラジコンカーのステアリングやロボットの関節などに用いられ、角度を指定して動かす機能を持つのが「サーボモーター」です。今回はArduinoからこのサーボモーターの制御をPWMを用いて行う手法を紹介します。
PWMでマブチモーターを制御する
「マブチモーター」でもおなじみ「直流ブラシ付きモーター」は安価で入手性もよいモーターですが、マイコンからの制御を考えると一工夫必要になります。今回は「PWM」を使った回転制御を紹介します。
困ったら読みたいマブチモーター制御のTips
この連載ではここ数回、「マブチモーター」に代表される直流ブラシ付きモーターをマイコンから制御する話をしていますが、今回は困ったときに読みたい、知っておくと便利なTipsを幾つか紹介したいと思います。
マブチモーターのノイズ対策
「マブチモーター」に代表される直流ブラシ付きモーターは安価で入手性も良好ですが、Arduinoなどと組み合わせる際には発生するノイズが問題となることがあります。そこで今回は、「直流ブラシ付きモーターのノイズ対策」について解説します。
マブチモーターをArduinoで制御する
「マブチモーター」でもおなじみ「直流ブラシ付きモーター」は安価で入手性もよいモーターです。これをArduinoで制御するとしたら、何を理解して何を用意して、どんなプログラミンが必要でしょうか。実験します。