前回までで、PICマイコンのめんどくささとarduinoの簡単差を学びました。
今回はさくっとステッピングモーターを回していきます。
いままでPICマイコンでステッピングモーターを回そうとしたら、wait時間の関数を作ったり正転、逆転ごとの関数を自らプログラムしなくてはならずめんどくさかったです。
なんとarduinoではStepperというステッピングモーターのライブラリがありやんす。
さっそく使用します。
Stepperの使い方
簡単です。
スケッチのライブラリからインクルードにあります。
そうしたら、#include <Stepper.h>つう文章が追加されるのでこれでライブラリの取り込み完了!!
あとは
#define STEPS ◯◯で使用するモーターの一回転あたりのステップを◯◯に入れて下記の関数を使用するだけでステッピングモーターが回ります。
↓でステッピングモーターに繋ぐarduinoのピンを指定します
stepper(steps, pin1, pin2, pin3, pin4)
↓でステッピングモーターの回転速度を決定します
steper.setSpeed(rpm)
↓で何ステップ回すか指令をだします
stepper.step(steps)
注意点はStepper(steps,pin1,pin2,pin3,pin4)で使用するピンを選びますすが、
ステッピングの磁励順番ではないので注意です。
記載の順番はSteper(Steps,A,A,B,B)
最初は磁励どおりにA、B、A、Bにしていると挙動がおかしかったので気づきました。ちなみにリファンレンスには書かれていました。(英語ですが)
もちろんステッピングモーターの磁励順はA、B、A、Bですよ。
steper.setSpeed(rpm)のrpmを数値や変数にすればスピードが決まります。
手持ちのモーターは280rpmぐらいで脱調しました。メーカーの性能表通りです。
stepper.step(steps)のstepsを数値や変数にする事で回転するステップ数を決定する事ができます。
こんな簡単にステッピングモーターの制御ができて、なんかわらけてきます。
今回はさらに、可変抵抗をanalogRead(pin)という関数を使ってA/D変換してその値からステッピングモータを動かしてみます。
可変抵抗をA/D変換して0-255の値にしてvalに格納します。
for分で100回可算して後で100で割っているのは、ものすごいスピードでA/D変換しているので、どうしても可変抵抗のノイズなどを拾ってモーターがフラフラと動くのでそれを抑える為です。
そして現在の値から過去の値を引いたものを回転ステップ数にするので、偏差を回転ステップとする事ができます。
たとえば、最初可変抵抗は左にいっぱいに回しているとすると0です。
次に右にいっぱいに回すと255になります。
現在の255から0をひくのでステップ数は255ステップなので、右に255ステップ回ります。
次に可変抵抗を左に少しまわして、A/D変換値が100とします。
現在値100から前回値の255を引くと−155となりますので、モーターは逆回転で155ステップ回る事になります。
実際に動かしていると動画をどうぞ