1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #include <Automaton.h>
- #include "Atm_AccelStepper.h"
- Atm_AccelStepper stepper ;
- int STEPPER_STEPPIN = 25 ;
- int STEPPER_DIRPIN = 26 ;
- int STEPPER_MAXSPEED = 1000000 ;
- int STEPPER_ACCELERATION = 100000;
- Atm_timer timer;
- char cmd_buffer[80];
- Atm_command cmd;
- enum { CMD_M, CMD_M2, CMD_R, CMD_S, CMD_P };
- const char cmdlist[] =
- "m m2 r s p";
- void cmd_callback( int idx, int v, int up ) {
- int pin = atoi( cmd.arg( 1 ) );
- switch ( v ) {
- case CMD_M:
- Serial.print("move : ");
- Serial.println(pin);
- stepper.move(pin);
- return;
- case CMD_M2:
- Serial.print("moveTo : ");
- Serial.println(pin);
- stepper.moveTo(pin);
- return;
- case CMD_R:
- Serial.print("rotate : ");
- Serial.println(pin);
- stepper.rotate(pin);
- return;
- case CMD_S:
- Serial.println("stop");
- stepper.stop();
- return;
- case CMD_P:
- Serial.print("position : ");
- Serial.println(stepper.getPosition());
- return;
- }
- }
- void timer_callback( int idx, int v, int up ) {
-
- Serial.print("position : ");
- Serial.println(stepper.getPosition());
- stepper.rotate(50);
- }
- void setup() {
- Serial.begin( 9600 );
- cmd.begin( Serial, cmd_buffer, sizeof( cmd_buffer ) )
- .list( cmdlist )
- .onCommand( cmd_callback );
-
-
- stepper.begin(STEPPER_STEPPIN, STEPPER_DIRPIN)
- .pinReversed(0, 0, 0)
- .setMaxSpeed(STEPPER_MAXSPEED)
- .setAcceleration(STEPPER_ACCELERATION)
- .enable();
- stepper.trace(Serial);
- stepper.limitLow_set(1, 15, 0).limitLow_isHard(1)
- .limitHigh_set(1, 2, 0).limitHigh_isHard(1)
-
- .onOnlimitlow([](int idx, int v, int up){ Serial.println('limit low');})
-
- .onOnlimithigh([](int idx, int v, int up){Serial.println('limit high');})
- ;
- timer.begin(2000).repeat(-1).onTimer(timer_callback).start();
-
- }
- void loop() {
- automaton.run();
-
- }
|