Установленную целевую позицию можно прочитать:
...
getTarget()
getTargetDeg()
...
Также можно вручную установить текущую позицию мотора в шагах и градусах при помощи:
..
И прочитать её:
getCurrent();
..
А ты документацию пробовал читать? В самом начале всё написаноДоброго времени суток.
Вопрос такой :как определить что шаговик приехал в целевую позицию, чтобы использовать это как условие для продолжения кода?
#include "GyverStepper.h"
#include "GyverTimer.h"
#include "GyverButton.h"
GStepper<STEPPER2WIRE> stepper2(96, 4, 5);
#define BTN_PIN 13
#define REZ 24
GButton butt1(BTN_PIN);
boolean flag = false;
long Shag=384;
GTimer myTimer(MS);
void setup() {
Serial.begin(9600);
pinMode(REZ, OUTPUT);
digitalWrite(REZ, HIGH);
}
void loop() {
butt1.tick();
if (butt1.isPress()) {
stepper2.setRunMode(FOLLOW_POS);
stepper2.setMaxSpeed(100);
stepper2.setAcceleration(10000);
stepper2.setTarget(Shag,RELATIVE);
Serial.print(stepper2.getCurrent());
if (stepper2.getCurrent()==stepper2.getTarget()){
flag = true;
Serial.println(flag);
Serial.print(stepper2.getCurrent());
}
}
if (flag ){
digitalWrite(REZ, LOW);
Serial.println("REZ");
myTimer.setTimeout(1000);
if (myTimer.isReady()) {
Serial.println("Timeout");
digitalWrite(REZ, HIGH);
flag = false;
}
}
stepper2.tick();
}
#include "GyverStepper.h"
#include "GyverTimer.h"
#include "GyverButton.h"
GStepper<STEPPER2WIRE> stepper2(96, 4, 5);
#define BTN_PIN 13
#define REZ 24
GButton butt1(BTN_PIN);
long Shag=384;
GTimer myTimer(MS);
void setup() {
Serial.begin(9600);
pinMode(REZ, OUTPUT);
digitalWrite(REZ, HIGH);
}
void loop() {
butt1.tick();
if (butt1.isPress()) {
stepper2.setRunMode(FOLLOW_POS);
stepper2.setMaxSpeed(100);
stepper2.setAcceleration(10000);
stepper2.setTarget(Shag,RELATIVE);
Serial.print(stepper2.getCurrent());
}
if (stepper2.getCurrent()==stepper2.getTarget()){
digitalWrite(REZ, LOW);
Serial.println("REZ");
myTimer.setTimeout(1000);
if (myTimer.isReady()) {
Serial.println("Timeout");
digitalWrite(REZ, HIGH);
}
}
stepper2.tick();
}
if(Schet==Stopa){
Schet=0;
mystepper_1.setAcceleration( Speed*50);
mystepper_1.setSpeed( Speed*10);
mystepper_1.setCurrentPosition(0);
mystepper_1.runToNewPosition(Lenta);
if(mystepper_1.distanceToGo()==0){
delay(100);
mystepper.setAcceleration(Speed_1*50);
mystepper.setSpeed(Speed_1*10);
mystepper.setCurrentPosition(0);
mystepper.runToNewPosition(200);