AccelStepper крутим шаговиком в две стороны
- Войдите на сайт для отправки комментариев
Ср, 28/07/2021 - 10:27
Всем здрасте!
Кто подскажет как покрутить шаговиком в две стороны.
Начинает движение шаговик с нажатия кнопки одиночного. Останавливается при срабатывании концевика limitswitch. пока что могу определенное расстояние движения задавать. но необходимо чтобы шаговик прекращал движение при срабатывании концевика.
AccelStepper - библиотека
#include <AccelStepper.h> #define stepper_pin_step 4 #define stepper_pin_dir 5 float steps_per_pulse = 2; AccelStepper stepper(AccelStepper::DRIVER, stepper_pin_step, stepper_pin_dir); #define button1 6 #define button2 7 const int limitswitch1 = 8; const int limitswitch2 = 9; void setup(){ stepper.setMaxSpeed(50000); stepper.setAcceleration(50000); stepper.setSpeed(50000); pinMode(button1, INPUT_PULLUP); pinMode(button2, INPUT_PULLUP); pinMode(limitswitch1, INPUT_PULLUP); pinMode(limitswitch2, INPUT_PULLUP); } void loop(){ if (digitalRead(button1) == LOW && digitalRead(button2) == HIGH){//red button stepper.runToNewPosition(10000); stepper.setCurrentPosition(0); } if (digitalRead(button1) == HIGH && digitalRead(button2) == LOW){//green button stepper.runToNewPosition(-10000); stepper.setCurrentPosition(0); } }
В 21 и 25 строках используется функция, которая блокирует код пока не выполнится. Там же прямо перед ней комментарий есть: "Blocks until the new target position is reached"
благодарю. сменю код отпишусь.
пока тестирую такой код