Seeed Xiaoと秋月のDRV8835基板を使って、さくっと動かします。
モーターはオリジナルマインドから中古で買ったオリエントモーターの42mmサイズバイポーラー。定格17V。
XIAOとDRV8835の結線は以下の通り。
今回、両手が塞がる用途でモーターを使うので、ミシン用のフットペダルを用意しました。3.5mmφのモノラル用ミニプラグ出力で踏まないと0Ω、踏むと約10kΩになります。GND - ペダルの片方 - XIAOの7ピン - 10kΩの抵抗 - 3.3V出力、という風につなぎました。こうするとXIAOへの電圧は0-約1.65Vの間で変化します。これをアナログポートで読み取ります。
ところで、リファレンスやググると出てくるサンプルコードを見るとスピード指定関数setSpeedの引数が rpm になっているけど、試したところではpps(1秒あたりのパルス数)みたいです。本家ArduinoでStepperクラスを使ったことないけど(あるいは忘れている)、少なくともXIAOでは。
ところで、リファレンスやググると出てくるサンプルコードを見るとスピード指定関数setSpeedの引数が rpm になっているけど、試したところではpps(1秒あたりのパルス数)みたいです。本家ArduinoでStepperクラスを使ったことないけど(あるいは忘れている)、少なくともXIAOでは。
ということで、ソースコードはこんな感じ。
#include <Stepper.h>
Stepper myStepper(200, 3, 5);
bool running = false;
void setup() {
Serial.begin(115200);
pinMode(4, OUTPUT);
pinMode(6, OUTPUT);
}
void loop() {
int value = analogRead(7) / 2 - 5;
if (value < 0) {
if (running) {
digitalWrite(4, LOW);
digitalWrite(6, LOW);
running = false;
}
delay(50);
} else {
if (!running) {
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
running = true;
}
Serial.println(value);
myStepper.setSpeed(value) ;
myStepper.step(value / 10);
}
}
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。