Нужна помошь! скейч для шагового двигателя откоректировать.
- Войдите на сайт для отправки комментариев
Сб, 09/09/2017 - 12:45
AccelStepper Stepper1(1,13,12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988)
int dir = 1; //используется для смены направления
void setup() {
Stepper1.setMaxSpeed(9); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)
Stepper1.setAcceleration(1300); //устанавливаем ускорение (шагов/секунду^2)
}
void loop() {
if(Stepper1.distanceToGo()==0){ //проверка, отработал ли двигатель предыдущее движение
Stepper1.move(3420*dir); //устанавливает следующее перемещение на 3420 шагов (если dir равен -1 будет перемещаться -3420 -> противоположное направление)
dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении
delay(500); //задержка на 0.5 секунду
}
Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя
}При намотке КАК ЗАПРОГРАМИРОВАТЬ???-уменьшение оборотов при каждом новом слое нити
При намотке КАК ЗАПРОГРАМИРОВАТЬ???-уменьшение оборотов при каждом новом слое нити
Если Вашскетч рабочий то попробуйте так но я не проверял
AccelStepper Stepper1(1, 13, 12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988) int dir = 1; //используется для смены направления int sped = 80;//Начальная скорость void setup() { Stepper1.setMaxSpeed(9); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду) Stepper1.setAcceleration(1300); //устанавливаем ускорение (шагов/секунду^2) Stepper1.setSpeed(sped); } void loop() { if (Stepper1.distanceToGo() == 0) { //проверка, отработал ли двигатель предыдущее движение Stepper1.move(3420 * dir); //устанавливает следующее перемещение на 3420 шагов (если dir равен -1 будет перемещаться -3420 -> противоположное направление) --sped; // Уменьшаем на единицу Stepper1.setSpeed(sped); //Устанавливаем новую скорость dir = dir * (-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении delay(500); //задержка на 0.5 секунду } Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя }