バイポーラ型ステッピングモーターの制御Arduinoで学ぶ基礎からのモーター制御(8)(3/5 ページ)

» 2016年07月11日 07時00分 公開
[今岡通博MONOist]

Arduinoで動かす

 それではArduinoに先ほどの駆動回路をつないでみます。

 接続にはArduinoのGPIOのうち、D2、D3、D4、D5を使います。駆動回路のS1にD5、S2にD4、S3にD3、S5にD2を接続します。出力に設定されたGPIO端子に外からの電圧が加わるとArduino自体が破損してしまう場合がありますので、Arduinoをつないだ後はスイッチを押さないようにしてください。

photo
void setup() {
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
}
 
void loop() {
  digitalWrite(2, HIGH);  
  delay(10);              
  digitalWrite(2, LOW);       
  digitalWrite(4, HIGH);   
  delay(10);              
  digitalWrite(4, LOW);              
  digitalWrite(3, HIGH);   
  delay(10);              
  digitalWrite(3, LOW);              
  digitalWrite(5, HIGH);   
  delay(10);              
  digitalWrite(5, LOW);                 
}
List1

 上のList1が最初に試すプログラムです。前回紹介したユニポーラ型では駆動するために「Stepper」クラスを使いましたが、今回はステッピングモーターの基本を押さえるために、GPIOをプログラムで直接制御するコードを書き、動作を確かながら進めていくことにします。

 setup関数で2番、3番、4番、5番ピンを出力に設定しています。loop関数の中でタクトスイッチを操作した順番にGPIOピンをON/OFFしています。それぞれのGPIOピンを10ミリ秒ON状態にしています。

 実際に皆さんのステッピングモーターは回転しましたか。筆者の場合は回ることは回るのですが、ガクガクとした、ぎこちない感じの回り方でした。実はステッピングモーターは2つあるコイルにオーバーラップするよう電流を流すと、よりスムーズに回転させることができるのです。

Copyright © ITmedia, Inc. All Rights Reserved.