ステッパーモーターは、Ardiunoに接続されたL293dドライバーを使用して制御されます。私の情報を入手したチュートリアルはここにあります。https://learn.adafruit.com/wifi-control ... ino-sketchですが、DCモータの代わりにステッピングモータに合うようにコードを変更しました。現在のところ、私はシリアル入力でテストしているだけで、ワイヤレスはまだありません。ArdiunoとNode.jsを使用したステッパーモーターの制御
私はすべての機能があります。フォワードボタンを押すとモーターが前進します。ただし、1回転だけ回転します。フォワードボタンをクリックすると、停止ボタンを押すまで、フォワードボタンをクリックすると、フォワードボタンをクリックすると、フォワードボタンをクリックすると、フォワードボタンがクリックされると、誰もこれを行う方法を知っていますか?
#include <SPI.h>
#include <aREST.h>
#include <Stepper.h>
#include <Wire.h>
aREST rest = aREST();
int inA1 = 12; // input 1 of the stepper
int inA2 = 11; // input 2 of the stepper
int inB1 = 10; // input 3 of the stepper
int inB2 = 9; // input 4 of the stepper
#define STEPS 512
Stepper motor(STEPS, inA1, inA2, inB1, inB2);
void setup() {
pinMode(inA1, OUTPUT);
pinMode(inA2, OUTPUT);
pinMode(inB1, OUTPUT);
pinMode(inB2, OUTPUT);
Serial.begin(115200);
Serial.println(F("Hello, CC3000!\n"));
rest.set_id("1");
rest.set_name("robot");
//Expose functions
rest.function("forward",forward);
rest.function("backward",backward);
rest.function("stop",stop);
}
void loop()
{
rest.handle(Serial);
}
// Forward
int forward(String command) {
motor.setSpeed(10);
motor.step(100);
return 1;
}
//Backforward
int backward(String command) {
motor.setSpeed(-10);
motor.step(100);
return 1;
}
私はintの最大値に変更します。それでも依然として連続的な回転の結果は生じなかった。 –
おそらく、int内ではなく、ライブラリ内で使用されています。 50000のような値を試してみてください。問題のある場所はモーターで、ビジー状態では別のコマンドを実行しません。 –
私はこれが問題を解決するとは思わない。しばらくの間、大きな価値を置くことはできますが、それはまだ止まります。私は無限の時間停止することなく走り続けるためにモーターが必要です。スクリプトを実行し続けるために関数を呼び出す方法はありますか? –