ステッピングモーターを回す方法(とりあえず回すだけ)
準備したもの
- ELEGOO Arduino用 Nanoボード V3.0 CH340/ATmega328P、Nano V3.0互換 (3)
- Ren He ステッピング モータドライバ モジュール DRV8825 3Dプリンタ 3Dプリンタ対応 ヒートシンク付き 5個
- 適当なステッピングモーター
配線
プログラム①
DRV8825ドライバのSTEPピンにパルスを送ると、1パルス=1ステップで回転するので
ArduinoのD2番ピンと接続をして半周期500ミリ秒、訳1秒で1ステップずつ回転させるためのパルスを生成するプログラム
変数 motor_delayの値を変えることで回転速度を変更できる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
const int motor_pin = 2; int motor_delay = 500; //パルスの1/2周期 単位ミリ秒 void setup() { pinMode(motor_pin, OUTPUT); } void loop() { digitalWrite(motor_pin, HIGH); //2番ピンをHIGHに delay(motor_delay); //motor_delay ミリ秒待機 digitalWrite(motor_pin, LOW); //2番ピンをLOWに delay(motor_delay); //motor_delay ミリ秒待機 } |
プログラム②
もう少し早く回したいので、ディレイの時間を delay(ミリ秒単位)から delayMicroseconds(マイクロ秒単位)に変えてみる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
const int motor_pin = 2; int motor_delay = 600; //パルスの1/2周期 void setup() { pinMode(motor_pin, OUTPUT); } void loop() { digitalWrite(motor_pin, HIGH); //2番ピンをHIGHに delayMicroseconds(motor_delay);//motor_delay μ秒待機 digitalWrite(motor_pin, LOW); //2番ピンをLOWに delayMicroseconds(motor_delay);//motor_delay μ秒待機 } |
筆者の環境では、motor_delay の値が500マイクロ秒付近で脱調してしまう。
コメント