test2017-1-13
Dependencies: AT24C1024 DMX-STM32 mbed
Diff: main.cpp
- Revision:
- 7:813cdaad1200
- Parent:
- 6:2a9e0228f81d
- Child:
- 8:2e68b9de685d
--- a/main.cpp Wed Apr 05 12:40:41 2017 +0000 +++ b/main.cpp Tue Apr 25 12:20:47 2017 +0000 @@ -3,10 +3,10 @@ #include "AccelStepper.h" #include "DMX.h" -//モータ制御基板の通し番号を設定してください 初期設定は1です -#define BoardNumber 1 +//モータ制御基板の通し番号を設定してください 初期設定は1です 0は使わないでね。 +#define BoardNumber 8 -//Ticker to; +Ticker to; Timer t; DigitalOut dmxEnable(D8); //基本L(レシーブ)に固定します @@ -14,6 +14,7 @@ I2C i2c(D4, D5); // SDA, SCL AT24C1024 at24c1024(i2c); // Atmel 1Mbit EE-PROM +const int addr = 0x70; AccelStepper stepper1(1, D9, D6); // step, direction AccelStepper stepper2(1, D10, D7); // step, direction @@ -100,9 +101,14 @@ //未実装 -void calc() +void sendDataToLPC() { - stepper1.newSpeed(); + char cmd[2]; + cmd[0] = 0x51; + cmd[1] = 0x51; + i2c.write(addr, cmd, 2); + + //stepper1.newSpeed(); } //map @@ -199,16 +205,23 @@ void interuptInit1() { - stepper1.setMaxSpeed(4000 / StepAdj1); - stepper1.setAcceleration(20000 / StepAdj1); + //stepper1.setMaxSpeed(1000); + //stepper1.setAcceleration(5000); + - //15度程度の後退動作 - stepper1.moveTo(100); + //まずとにかく原点を目指す + stepper1.moveTo(1); while(stepper1.distanceToGo() != 0) { stepper1.run(); } - //原点復帰動作 + //15度程度の時計回り動作 + stepper1.moveTo(200); + while(stepper1.distanceToGo() != 0) { + stepper1.run(); + } + + //原点復帰動作、反時計回り stepper1.setCurrentPosition(-1); stepper1.moveTo(-30000 / StepAdj1); while(stepper1.currentPosition() != 0) { @@ -224,7 +237,11 @@ stepper2.setMaxSpeed(4000 / StepAdj2); stepper2.setAcceleration(20000 / StepAdj2); + //まず原点を目指す + + //15度程度の後退動作 + stepper2.setCurrentPosition(1); stepper2.moveTo(100); while(stepper2.distanceToGo() != 0) { stepper2.run(); @@ -653,13 +670,14 @@ { wait(1); - dmxEnable = 0; //0:receiver 1:sender +//DMXの機能をレシーブに固定 (ハードウェア的に固定するため停止中) +// dmxEnable = 0; //0:receiver 1:sender conf1(); //motor1 config ドライバの設定 conf2(); //motor2 config t.start(); -// to.attach(&calc, 0.001); + //to.attach(&sendDataToLPC, 1); stepper1.setCurrentPosition(-1); stepper2.setCurrentPosition(-1); @@ -751,7 +769,10 @@ //checkInitCommand2(); //モーター1の走行 - if(stepper1.distanceToGo() != 0) stepper1.run(); + if(stepper1.distanceToGo() != 0) { + //checkInitCommand1(); + stepper1.run(); + } //モーター2の走行(停止中) //if(stepper2.distanceToGo() != 0) stepper2.run(); }