ШД2_v1.3
ШагДвиг_mod
FindEndSwitch
3dd2a884-0b23-4cb1-a919-c8fcdd913331
При true постоянно шагаем для поиска концевика по CCW
dd7e7512-0e44-4b12-a3f1-2bfb7f9fd8e0
SpeedEndSwitch
0da09e76-9abd-4209-8994-3906b4e99e09
Скорость ШД для поиска концевика
e8002159-6d09-4b1f-97de-6f287b7a5e9f
ШагДвиг Установка
En
22502748-2126-49f6-a695-bae1e55d0464
3d062544-2c05-4514-9cbe-cbdff30ee30f
MaxSpeed
b4f1be77-2577-4f2d-8375-3e1ea4216d92
Максимальная скорость вращения ротора двигателя (шагов/секунду)
d146d221-19f1-4a4d-b6ca-5801a5a3af91
Acceleration
12308427-b97e-437d-bd1c-aee97865b6ec
Ускорение вращения (шагов/секунду^2)
e0c65a93-e82f-4d23-a7a7-679313d04991
c4e4c49d-0b43-4310-82ce-026db0767636
Установка параметров шагового двигателя
Step
10
Пин управления шагами контроллера
66f1483d-3159-450f-8e82-e654741e6c57
8bc42495-0960-4300-adb7-22efc1573ceb
Dir
11
Пин направления вращения контроллера
c31d485e-f907-4651-bd19-51f5b0a023b8
72abb887-5e2a-4587-aebd-f3908812b2a9
If (En) {
Stepper1.setMaxSpeed(MaxSpeed);
Stepper1.setAcceleration(Acceleration);
}
83
1 - режим "external driver" (A4988)
Stepper1
(1, Step, Dir);
AccelStepper
EnSteps
Speed
Acceleration
ШагДвиг
En
Скорость
Ускорение
Шагов
4b139470-65a1-49a3-8a95-6418d90824c2
Количество шагов, которые должен сделать двигатель
011babd7-655e-464f-b4be-4f06bf7e3d31
Готов
f75858a5-7f06-4bf0-9caa-3515dd3118a4
Двигатель закончил движение
d1e9f08d-ba11-403b-8751-573ef2a3a8cb
198f8292-fe38-4914-8ded-a59a71b45bbe
Управление шаговым двигателем через контроллер А4988
If (En) {
SetStepperMaxSpeed(Скорость);
SetStepperAcceleration(Ускорение);
StepperMove(Шагов);
}
Готов = Stepper.distanceToGo() == 0;
Stepper.run();
148
#include
<AccelStepper.h>
1 - режим "external driver" (A4988)
Stepper
(1, Step, Dir);
AccelStepper
curMaxSpeed
= 0;
int
curAcceleration
= 0;
int
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
87
void
SetStepperMaxSpeed
int
MaxSpeed
if (curAcceleration != Acceleration) {
Stepper.setAcceleration(Acceleration);
curAcceleration = Acceleration;
}
111
void
SetStepperAcceleration
int
Acceleration
Stepper.move(Distance);
23
void
StepperMove
int
Distance
Steps
CCW
1749a012-0c84-41fa-bf04-5a19d56a9907
По часовой стрелке
385bd673-ed11-4ff5-b385-63a75de09b57
Ready
Позиция
3e95bd51-7ae3-449f-9b9d-986ce8be7e53
Текущая позиция двигателя
0d87726d-d3cb-406f-b42d-bc70bcf6c19c
0681950a-4e83-4f02-b52f-192689d207f9
If (En) {
SetStepperMaxSpeed(Скорость);
SetStepperAcceleration(Ускорение);
StepperMove(Шагов);
}
Готов = !Stepper.run();
Позиция = Stepper.currentPosition();
157
Position
0eeb9b7f-900c-46d1-bb27-99aec13d1572
if (En) {
SetStepperMaxSpeed(Speed);
SetStepperAcceleration(Acceleration);
StepperMove(Steps*(CCW ? 1 : -1));
}
Ready = !Stepper.run();
Position = Stepper.currentPosition();
173
Stepper.move(Distance);
24
SetZeroPosition
60c5b2c1-55c8-41ea-a856-60fc36f95afe
Установка начальной позиции в 0. Использовать через RTrig
b8593427-7917-4c17-a926-7694d939e155
AbsSteps
25f628bb-19fc-47b3-a5c9-e3b95ca997d8
Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последенй позиции
98054e13-9c74-4d04-bede-871f2478e134
8e86d344-9473-4f19-8548-4591a220e880
Управление шаговым двигателем через контроллер А4988 mod
Блог ШагДвиг для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h
Входы:
FindEndSwitch - При true постоянно шагаем для поиска концевика по CCW, имеет больший приоритет перед EnSteps
SpeedEndSwitch - Скорость ШД для поиска концевика
EnSteps - при true начинаем шагать
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения
CCW - true крутить по часовой, иначе против
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
AbsSteps - Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последенй позиции
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
769
if (FindEndSwitch) {Stepper.setSpeed(SpeedEndSwitch*(CCW ? -1 : 1)); Stepper.runSpeed()}
else{
if (EnSteps) {
SetStepperMaxSpeed(Speed);
SetStepperAcceleration(Acceleration);
if (AbsSteps) {StepperMoveA(Steps*(CCW ? -1 : 1));}
else {StepperMove(Steps*(CCW ? -1 : 1));}
}
Ready = !Stepper.run();
Position = Stepper.currentPosition();
if (SetZeroPosition) {Stepper.setCurrentPosition(0);}
}
389
Stepper.move(Distance);
void
StepperMove
long
Distance
Stepper.moveTo(AStep);
22
void
StepperMoveA
long
AStep
Continuous02
SpeedContinuous02
SetZeroPosition02
EnSteps02
на переднем фронте начинаем шагать, использовать через RTrig
MaxSpeed02
Acceleration02
Steps02
CCW02
Против часовой стрелки
AbsSteps02
ШагДвиг_mod_INT_v2
Continuous
SpeedContinuous
MaxSpeed
StopAccel
feb8597c-6c86-4cf8-a3f6-33b79fea3e86
Остановка с использованием текущей скорости и ускорения
e63ef32a-1278-4528-be56-9a9bd875735c
a3ce2693-d1c9-40a7-a191-f8250fdb2d78
ШагДвиг_mod (step/dir) INT
Блог ШагДвиг для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последеней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
1063
period
100
50
Период прерывания, мкс, Менять Оторожно
41695f6c-ad2c-4843-8dc1-d29c1575da1b
761f7340-3f25-42dd-a366-852384a4cbf5
if (SetZeroPosition) {Stepper.setCurrentPosition(0);}
if (Continuous) {
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
if (curSpeed != SpeedContinuous) {
Stepper.setSpeed(SpeedContinuous*(CCW ? -1 : 1));
curSpeed = SpeedContinuous;
}}
else{
if (EnSteps) {
noInterrupts();
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
if (curAcceleration != Acceleration) {
Stepper.setAcceleration(Acceleration);
curAcceleration = Acceleration;
}
if (AbsSteps) {Stepper.moveTo(Steps*(CCW ? -1 : 1));}
else {Stepper.move(Steps*(CCW ? -1 : 1));}
interrupts();
}
if (StopAccel) {Stepper.stop;}
}
Position = Stepper.currentPosition();
703
Timer1.initialize( period ); // инициализация таймера 1,
Timer1.attachInterrupt ( timerInterrupt, period ); // задаем обработчик прерываний
Stepper.setMinPulseWidth(lengthPulse);
181
#include
<TimerOne.h>
#include
<AccelStepper.h>
Длительность испульса, вставлять больше 100 крайне не рекомендуется
#define
lengthPulse
10
1 - режим "external driver" (A4988)
Stepper
(1, Step, Dir);
AccelStepper
curSpeed
= 0;
int
curMaxSpeed
= 0;
int
curAcceleration
= 0;
int
if (Continuous) {Ready = Stepper.runSpeed();}
else Ready = !Stepper.run();
75
void
timerInterrupt
StopAccel02
Ready02
Position02
ff2faa9e-67f9-4072-91c2-e60babe2a95f
ШД2_v1.3
Блок ШД2 для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
1059
Step02
Dir02
if (curMaxSpeed02 != MaxSpeed02) {
Stepper02.setMaxSpeed(MaxSpeed02);
curMaxSpeed02 = MaxSpeed02;}
if (curAcceleration02 != Acceleration02) {
Stepper02.setAcceleration(Acceleration02);
curAcceleration02 = Acceleration02;}
if (curCCW02 != CCW02) {curCCW02 = CCW02;}
if (curSpeed02 != SpeedContinuous02) {
Stepper02.setSpeed(SpeedContinuous02*(CCW02 ? -1 : 1));
curSpeed02 = SpeedContinuous02;}
if (SetZeroPosition02) {Stepper02.setCurrentPosition(0); curSpeed02=0; }
if (Continuous02) { curSpeed02=0;}
else{
if (EnSteps02) {
if (AbsSteps02) {Stepper02.moveTo(Steps02*(CCW02 ? -1 : 1));}
else {Stepper02.move(Steps02*(CCW02 ? -1 : 1));}
}
if (StopAccel02) {Stepper02.stop();}
}
Position02 = Stepper02.currentPosition();
734
Stepper02.setMinPulseWidth(lengthPulse);
40
1 - режим "external driver" (A4988)
Stepper02
(1, Step02, Dir02);
AccelStepper
curSpeed02
= 0;
int
curMaxSpeed02
= 0;
int
curAcceleration02
= 0;
int
curCCW02
=false;
bool
EnSteps02temp
= false;
bool
ШД3_v1.3
Continuous03
SpeedContinuous03
SetZeroPosition03
EnSteps03
MaxSpeed03
Acceleration03
Steps03
CCW03
AbsSteps03
StopAccel03
Ready03
Position03
aa2b0e1a-337f-4b04-b42d-79ca57cbdac3
ШД3_v1.3
Блок ШД3 для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
Step03
Dir03
if (curMaxSpeed03 != MaxSpeed03) {
Stepper03.setMaxSpeed(MaxSpeed03);
curMaxSpeed03 = MaxSpeed03;}
if (curAcceleration03 != Acceleration03) {
Stepper03.setAcceleration(Acceleration03);
curAcceleration03 = Acceleration03;}
if (curCCW03 != CCW03) {curCCW03 = CCW03;}
if (curSpeed03 != SpeedContinuous03) {
Stepper03.setSpeed(SpeedContinuous03*(CCW03 ? -1 : 1));
curSpeed03 = SpeedContinuous03;}
if (SetZeroPosition03) {Stepper03.setCurrentPosition(0); curSpeed03=0; }
if (Continuous03) { curSpeed03=0;}
else{
if (EnSteps03) {
if (AbsSteps03) {Stepper03.moveTo(Steps03*(CCW03 ? -1 : 1));}
else {Stepper03.move(Steps03*(CCW03 ? -1 : 1));}
}
if (StopAccel03) {Stepper03.stop();}
}
Position03 = Stepper03.currentPosition();
Stepper03.setMinPulseWidth(lengthPulse);
1 - режим "external driver" (A4988)
Stepper03
(1, Step03, Dir03);
AccelStepper
curSpeed03
= 0;
int
curMaxSpeed03
= 0;
int
curAcceleration03
= 0;
int
curCCW03
=false;
bool
EnSteps03temp
= false;
bool
ШД4_v1.3
ШагДвиг_mod
FindEndSwitch
3dd2a884-0b23-4cb1-a919-c8fcdd913331
При true постоянно шагаем для поиска концевика по CCW
dd7e7512-0e44-4b12-a3f1-2bfb7f9fd8e0
SpeedEndSwitch
0da09e76-9abd-4209-8994-3906b4e99e09
Скорость ШД для поиска концевика
e8002159-6d09-4b1f-97de-6f287b7a5e9f
ШагДвиг Установка
En
22502748-2126-49f6-a695-bae1e55d0464
3d062544-2c05-4514-9cbe-cbdff30ee30f
MaxSpeed
b4f1be77-2577-4f2d-8375-3e1ea4216d92
Максимальная скорость вращения ротора двигателя (шагов/секунду)
d146d221-19f1-4a4d-b6ca-5801a5a3af91
Acceleration
12308427-b97e-437d-bd1c-aee97865b6ec
Ускорение вращения (шагов/секунду^2)
e0c65a93-e82f-4d23-a7a7-679313d04991
c4e4c49d-0b43-4310-82ce-026db0767636
Установка параметров шагового двигателя
Step
Пин управления шагами контроллера
66f1483d-3159-450f-8e82-e654741e6c57
8bc42495-0960-4300-adb7-22efc1573ceb
Dir
Пин направления вращения контроллера
c31d485e-f907-4651-bd19-51f5b0a023b8
72abb887-5e2a-4587-aebd-f3908812b2a9
If (En) {
Stepper1.setMaxSpeed(MaxSpeed);
Stepper1.setAcceleration(Acceleration);
}
1 - режим "external driver" (A4988)
Stepper1
(1, Step, Dir);
AccelStepper
EnSteps
Speed
Acceleration
ШагДвиг
En
Скорость
Ускорение
Шагов
4b139470-65a1-49a3-8a95-6418d90824c2
Количество шагов, которые должен сделать двигатель
011babd7-655e-464f-b4be-4f06bf7e3d31
Готов
f75858a5-7f06-4bf0-9caa-3515dd3118a4
Двигатель закончил движение
d1e9f08d-ba11-403b-8751-573ef2a3a8cb
198f8292-fe38-4914-8ded-a59a71b45bbe
Управление шаговым двигателем через контроллер А4988
If (En) {
SetStepperMaxSpeed(Скорость);
SetStepperAcceleration(Ускорение);
StepperMove(Шагов);
}
Готов = Stepper.distanceToGo() == 0;
Stepper.run();
#include
<AccelStepper.h>
1 - режим "external driver" (A4988)
Stepper
(1, Step, Dir);
AccelStepper
curMaxSpeed
= 0;
int
curAcceleration
= 0;
int
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
void
SetStepperMaxSpeed
int
MaxSpeed
if (curAcceleration != Acceleration) {
Stepper.setAcceleration(Acceleration);
curAcceleration = Acceleration;
}
void
SetStepperAcceleration
int
Acceleration
Stepper.move(Distance);
void
StepperMove
int
Distance
Steps
CCW
1749a012-0c84-41fa-bf04-5a19d56a9907
По часовой стрелке
385bd673-ed11-4ff5-b385-63a75de09b57
Ready
Позиция
3e95bd51-7ae3-449f-9b9d-986ce8be7e53
Текущая позиция двигателя
0d87726d-d3cb-406f-b42d-bc70bcf6c19c
0681950a-4e83-4f02-b52f-192689d207f9
If (En) {
SetStepperMaxSpeed(Скорость);
SetStepperAcceleration(Ускорение);
StepperMove(Шагов);
}
Готов = !Stepper.run();
Позиция = Stepper.currentPosition();
Position
0eeb9b7f-900c-46d1-bb27-99aec13d1572
if (En) {
SetStepperMaxSpeed(Speed);
SetStepperAcceleration(Acceleration);
StepperMove(Steps*(CCW ? 1 : -1));
}
Ready = !Stepper.run();
Position = Stepper.currentPosition();
Stepper.move(Distance);
SetZeroPosition
60c5b2c1-55c8-41ea-a856-60fc36f95afe
Установка начальной позиции в 0. Использовать через RTrig
b8593427-7917-4c17-a926-7694d939e155
AbsSteps
25f628bb-19fc-47b3-a5c9-e3b95ca997d8
Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последенй позиции
98054e13-9c74-4d04-bede-871f2478e134
8e86d344-9473-4f19-8548-4591a220e880
Управление шаговым двигателем через контроллер А4988 mod
Блог ШагДвиг для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h
Входы:
FindEndSwitch - При true постоянно шагаем для поиска концевика по CCW, имеет больший приоритет перед EnSteps
SpeedEndSwitch - Скорость ШД для поиска концевика
EnSteps - при true начинаем шагать
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения
CCW - true крутить по часовой, иначе против
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
AbsSteps - Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последенй позиции
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
if (FindEndSwitch) {Stepper.setSpeed(SpeedEndSwitch*(CCW ? -1 : 1)); Stepper.runSpeed()}
else{
if (EnSteps) {
SetStepperMaxSpeed(Speed);
SetStepperAcceleration(Acceleration);
if (AbsSteps) {StepperMoveA(Steps*(CCW ? -1 : 1));}
else {StepperMove(Steps*(CCW ? -1 : 1));}
}
Ready = !Stepper.run();
Position = Stepper.currentPosition();
if (SetZeroPosition) {Stepper.setCurrentPosition(0);}
}
Stepper.move(Distance);
void
StepperMove
long
Distance
Stepper.moveTo(AStep);
void
StepperMoveA
long
AStep
Continuous04
SpeedContinuous04
SetZeroPosition04
EnSteps04
на переднем фронте начинаем шагать, использовать через RTrig
MaxSpeed04
Acceleration04
Steps04
CCW04
Против часовой стрелки
AbsSteps04
ШагДвиг_mod_INT_v2
Continuous
SpeedContinuous
MaxSpeed
StopAccel
feb8597c-6c86-4cf8-a3f6-33b79fea3e86
Остановка с использованием текущей скорости и ускорения
e63ef32a-1278-4528-be56-9a9bd875735c
a3ce2693-d1c9-40a7-a191-f8250fdb2d78
ШагДвиг_mod (step/dir) INT
Блог ШагДвиг для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последеней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
period
Период прерывания, мкс, Менять Оторожно
41695f6c-ad2c-4843-8dc1-d29c1575da1b
761f7340-3f25-42dd-a366-852384a4cbf5
if (SetZeroPosition) {Stepper.setCurrentPosition(0);}
if (Continuous) {
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
if (curSpeed != SpeedContinuous) {
Stepper.setSpeed(SpeedContinuous*(CCW ? -1 : 1));
curSpeed = SpeedContinuous;
}}
else{
if (EnSteps) {
noInterrupts();
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
if (curAcceleration != Acceleration) {
Stepper.setAcceleration(Acceleration);
curAcceleration = Acceleration;
}
if (AbsSteps) {Stepper.moveTo(Steps*(CCW ? -1 : 1));}
else {Stepper.move(Steps*(CCW ? -1 : 1));}
interrupts();
}
if (StopAccel) {Stepper.stop;}
}
Position = Stepper.currentPosition();
Timer1.initialize( period ); // инициализация таймера 1,
Timer1.attachInterrupt ( timerInterrupt, period ); // задаем обработчик прерываний
Stepper.setMinPulseWidth(lengthPulse);
#include
<TimerOne.h>
#include
<AccelStepper.h>
Длительность испульса, вставлять больше 100 крайне не рекомендуется
#define
lengthPulse
10
1 - режим "external driver" (A4988)
Stepper
(1, Step, Dir);
AccelStepper
curSpeed
= 0;
int
curMaxSpeed
= 0;
int
curAcceleration
= 0;
int
if (Continuous) {Ready = Stepper.runSpeed();}
else Ready = !Stepper.run();
void
timerInterrupt
StopAccel04
Ready04
Position04
ad7c79bc-5ce8-4a67-9afd-efe411fb5a18
ШД4_v1.3
Блок ШД4 для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
Step04
Dir04
if (curMaxSpeed04 != MaxSpeed04) {
Stepper04.setMaxSpeed(MaxSpeed04);
curMaxSpeed04 = MaxSpeed04;}
if (curAcceleration04 != Acceleration04) {
Stepper04.setAcceleration(Acceleration04);
curAcceleration04 = Acceleration04;}
if (curCCW04 != CCW04) {curCCW04 = CCW04;}
if (curSpeed04 != SpeedContinuous04) {
Stepper04.setSpeed(SpeedContinuous04*(CCW04 ? -1 : 1));
curSpeed04 = SpeedContinuous04;}
if (SetZeroPosition04) {Stepper04.setCurrentPosition(0); curSpeed04=0; }
if (Continuous04) { curSpeed04=0;}
else{
if (EnSteps04) {
if (AbsSteps04) {Stepper04.moveTo(Steps04*(CCW04 ? -1 : 1));}
else {Stepper04.move(Steps04*(CCW04 ? -1 : 1));}
}
if (StopAccel04) {Stepper04.stop();}
}
Position04 = Stepper04.currentPosition();
Stepper04.setMinPulseWidth(lengthPulse);
1 - режим "external driver" (A4988)
Stepper04
(1, Step04, Dir04);
AccelStepper
curSpeed04
= 0;
int
curMaxSpeed04
= 0;
int
curAcceleration04
= 0;
int
curCCW04
=false;
bool
EnSteps04temp
= false;
bool
ШД5_v1.3
Continuous05
SpeedContinuous05
SetZeroPosition05
EnSteps05
MaxSpeed05
Acceleration05
Steps05
CCW05
AbsSteps05
StopAccel05
Ready05
Position05
eef0412a-e602-4a17-9274-c00ca171e827
ШД5_v1.3
Блок ШД5 для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
Step05
Dir05
if (curMaxSpeed05 != MaxSpeed05) {
Stepper05.setMaxSpeed(MaxSpeed05);
curMaxSpeed05 = MaxSpeed05;}
if (curAcceleration05 != Acceleration05) {
Stepper05.setAcceleration(Acceleration05);
curAcceleration05 = Acceleration05;}
if (curCCW05 != CCW05) {curCCW05 = CCW05;}
if (curSpeed05 != SpeedContinuous05) {
Stepper05.setSpeed(SpeedContinuous05*(CCW05 ? -1 : 1));
curSpeed05 = SpeedContinuous05;}
if (SetZeroPosition05) {Stepper05.setCurrentPosition(0); curSpeed05=0; }
if (Continuous05) { curSpeed05=0;}
else{
if (EnSteps05) {
if (AbsSteps05) {Stepper05.moveTo(Steps05*(CCW05 ? -1 : 1));}
else {Stepper05.move(Steps05*(CCW05 ? -1 : 1));}
}
if (StopAccel05) {Stepper05.stop();}
}
Position05 = Stepper05.currentPosition();
Stepper05.setMinPulseWidth(lengthPulse);
1 - режим "external driver" (A4988)
Stepper05
(1, Step05, Dir05);
AccelStepper
curSpeed05
= 0;
int
curMaxSpeed05
= 0;
int
curAcceleration05
= 0;
int
curCCW05
=false;
bool
EnSteps05temp
= false;
bool
ШД6_v1.3
Continuous06
SpeedContinuous06
SetZeroPosition06
EnSteps06
MaxSpeed06
Acceleration06
Steps06
CCW06
AbsSteps06
StopAccel06
Ready06
Position06
657f79dd-f791-40b9-b40b-c845a56a6085
ШД6_v1.3
Блок ШД6 для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
Step06
Dir06
if (curMaxSpeed06 != MaxSpeed06) {
Stepper06.setMaxSpeed(MaxSpeed06);
curMaxSpeed06 = MaxSpeed06;}
if (curAcceleration06 != Acceleration06) {
Stepper06.setAcceleration(Acceleration06);
curAcceleration06 = Acceleration06;}
if (curCCW06 != CCW06) {curCCW06 = CCW06;}
if (curSpeed06 != SpeedContinuous06) {
Stepper06.setSpeed(SpeedContinuous06*(CCW06 ? -1 : 1));
curSpeed06 = SpeedContinuous06;}
if (SetZeroPosition06) {Stepper06.setCurrentPosition(0); curSpeed06=0; }
if (Continuous06) { curSpeed06=0;}
else{
if (EnSteps06) {
if (AbsSteps06) {Stepper06.moveTo(Steps06*(CCW06 ? -1 : 1));}
else {Stepper06.move(Steps06*(CCW06 ? -1 : 1));}
}
if (StopAccel06) {Stepper06.stop();}
}
Position06 = Stepper06.currentPosition();
735
Stepper06.setMinPulseWidth(lengthPulse);
1 - режим "external driver" (A4988)
Stepper06
(1, Step06, Dir06);
AccelStepper
curSpeed06
= 0;
int
curMaxSpeed06
= 0;
int
curAcceleration06
= 0;
int
curCCW06
=false;
bool
EnSteps06temp
= false;
bool
ШД DUE основной для 1х ШД v1.3
995ec494-98e5-486e-a85c-450b50576b9f
ШД DUE основной для 1х ШД v1.3
Блок ШД для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2020
Работает на библиотеке AccelStepper.h и DueTimer.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Основной блок для управления одним ШД
Совместно использовать с блоком ШД1
274
period
Период прерывания, мкс, Менять Оторожно
41695f6c-ad2c-4843-8dc1-d29c1575da1b
761f7340-3f25-42dd-a366-852384a4cbf5
Timer6.attachInterrupt(SMtimerInterrupt);
Timer6.start( period ); // Calls every period
90
#include
<DueTimer.h>
#include
<AccelStepper.h>
Длительность импульса, вставлять больше 100 крайне не рекомендуется
#define
lengthPulse
10
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
201
void
SMtimerInterrupt
DueTimer-master
.gitignore
2320436F6D70696C6564204F626A6563742066696C65730A2A2E736C6F0A2A2E6C6F0A2A2E6F0A0A2320436F6D70696C65642044796E616D6963206C69627261726965730A2A2E736F0A2A2E64796C69620A0A2320436F6D70696C656420537461746963206C69627261726965730A2A2E6C61690A2A2E6C610A2A2E610A0A2E44535F53746F72650A
DueTimer
2F2A0A202044756554696D65722E637070202D20496D706C656D656E746174696F6E206F662054696D65727320646566696E6564206F6E2044756554696D65722E680A2020466F7220696E737472756374696F6E732C20676F20746F2068747470733A2F2F6769746875622E636F6D2F6976616E73656964656C2F44756554696D65720A0A202043726561746564206279204976616E2053656964656C20476F6D65732C204D617263682C20323031332E0A20204D6F646966696564206279205068696C697070204B6C6175732C204A756E6520323031332E0A20205468616E6B7320746F207374696D6D6572202866726F6D2041726475696E6F20666F72756D292C20666F7220636F64696E6720746865202274696D657220736F756C2220285265676973746572207374756666290A202052656C656173656420696E746F20746865207075626C696320646F6D61696E2E0A2A2F0A0A23696E636C756465202244756554696D65722E68220A0A636F6E73742044756554696D65723A3A54696D65722044756554696D65723A3A54696D6572735B4E554D5F54494D4552535D203D207B0A097B5443302C302C5443305F4952516E7D2C0A097B5443302C312C5443315F4952516E7D2C0A097B5443302C322C5443325F4952516E7D2C0A097B5443312C302C5443335F4952516E7D2C0A097B5443312C312C5443345F4952516E7D2C0A097B5443312C322C5443355F4952516E7D2C0A236966204E554D5F54494D455253203E20360A097B5443322C302C5443365F4952516E7D2C0A097B5443322C312C5443375F4952516E7D2C0A097B5443322C322C5443385F4952516E7D2C0A23656E6469660A7D3B0A0A2F2F2046697820666F7220636F6D7061746962696C697479207769746820536572766F206C6962726172790A236966646566205553494E475F534552564F5F4C49420A092F2F205365742063616C6C6261636B7320617320757365642C20616C6C6F77696E672044756554696D65723A3A676574417661696C61626C65282920746F20776F726B0A09766F696420282A44756554696D65723A3A63616C6C6261636B735B4E554D5F54494D4552535D292829203D207B0A090928766F696420282A2928292920312C202F2F2054696D65722030202D204F636375706965640A090928766F696420282A2928292920302C202F2F2054696D657220310A090928766F696420282A2928292920312C202F2F2054696D65722032202D204F636375706965640A090928766F696420282A2928292920312C202F2F2054696D65722033202D204F636375706965640A090928766F696420282A2928292920312C202F2F2054696D65722034202D204F636375706965640A090928766F696420282A2928292920312C202F2F2054696D65722035202D204F636375706965640A236966204E554D5F54494D455253203E20360A090928766F696420282A2928292920302C202F2F2054696D657220360A090928766F696420282A2928292920302C202F2F2054696D657220370A090928766F696420282A29282929203020202F2F2054696D657220380A23656E6469660A097D3B0A23656C73650A09766F696420282A44756554696D65723A3A63616C6C6261636B735B4E554D5F54494D4552535D292829203D207B7D3B0A23656E6469660A09090A236966204E554D5F54494D455253203E20360A646F75626C652044756554696D65723A3A5F6672657175656E63795B4E554D5F54494D4552535D203D207B2D312C2D312C2D312C2D312C2D312C2D312C2D312C2D312C2D317D3B0A23656C73650A646F75626C652044756554696D65723A3A5F6672657175656E63795B4E554D5F54494D4552535D203D207B2D312C2D312C2D312C2D312C2D312C2D317D3B0A23656E6469660A0A2F2A0A09496E697469616C697A696E6720616C6C2074696D6572732C20736F20796F752063616E20757365207468656D206C696B6520746869733A2054696D6572302E737461727428293B0A2A2F0A44756554696D65722054696D65722830293B0A0A44756554696D65722054696D6572312831293B0A2F2F2046697820666F7220636F6D7061746962696C697479207769746820536572766F206C6962726172790A2369666E646566205553494E475F534552564F5F4C49420A0944756554696D65722054696D6572302830293B0A0944756554696D65722054696D6572322832293B0A0944756554696D65722054696D6572332833293B0A0944756554696D65722054696D6572342834293B0A0944756554696D65722054696D6572352835293B0A23656E6469660A236966204E554D5F54494D455253203E20360A44756554696D65722054696D6572362836293B0A44756554696D65722054696D6572372837293B0A44756554696D65722054696D6572382838293B0A23656E6469660A0A44756554696D65723A3A44756554696D657228756E7369676E65642073686F7274205F74696D657229203A2074696D6572285F74696D6572297B0A092F2A0A090954686520636F6E7374727563746F72206F662074686520636C6173732044756554696D6572200A092A2F0A7D0A0A44756554696D65722044756554696D65723A3A676574417661696C61626C6528766F6964297B0A092F2A0A090952657475726E207468652066697273742074696D65722077697468206E6F2063616C6C6261636B207365740A092A2F0A0A09666F7228696E742069203D20303B2069203C204E554D5F54494D4552533B20692B2B297B0A09096966282163616C6C6261636B735B695D290A09090972657475726E2044756554696D65722869293B0A097D0A092F2F2044656661756C742C2072657475726E2054696D6572303B0A0972657475726E2044756554696D65722830293B0A7D0A0A44756554696D6572262044756554696D65723A3A617474616368496E7465727275707428766F696420282A697372292829297B0A092F2A0A09094C696E6B73207468652066756E6374696F6E2070617373656420617320617267756D656E7420746F207468652074696D6572206F6620746865206F626A6563740A092A2F0A0A0963616C6C6261636B735B74696D65725D203D206973723B0A0A0972657475726E202A746869733B0A7D0A0A44756554696D6572262044756554696D65723A3A646574616368496E7465727275707428766F6964297B0A092F2A0A09094C696E6B73207468652066756E6374696F6E2070617373656420617320617267756D656E7420746F207468652074696D6572206F6620746865206F626A6563740A092A2F0A0A0973746F7028293B202F2F2053746F70207468652063757272656E746C792072756E6E696E672074696D65720A0A0963616C6C6261636B735B74696D65725D203D204E554C4C3B0A0A0972657475726E202A746869733B0A7D0A0A44756554696D6572262044756554696D65723A3A737461727428646F75626C65206D6963726F7365636F6E6473297B0A092F2A0A09095374617274207468652074696D65720A09094966206120706572696F64206973207365742C207468656E20736574732074686520706572696F6420616E64207374617274207468652074696D65720A092A2F0A0A096966286D6963726F7365636F6E6473203E2030290A0909736574506572696F64286D6963726F7365636F6E6473293B0A090A096966285F6672657175656E63795B74696D65725D203C3D2030290A09097365744672657175656E63792831293B0A0A094E5649435F436C65617250656E64696E674952512854696D6572735B74696D65725D2E697271293B0A094E5649435F456E61626C654952512854696D6572735B74696D65725D2E697271293B0A090A0954435F53746172742854696D6572735B74696D65725D2E74632C2054696D6572735B74696D65725D2E6368616E6E656C293B0A0A0972657475726E202A746869733B0A7D0A0A44756554696D6572262044756554696D65723A3A73746F7028766F6964297B0A092F2A0A090953746F70207468652074696D65720A092A2F0A0A094E5649435F44697361626C654952512854696D6572735B74696D65725D2E697271293B0A090A0954435F53746F702854696D6572735B74696D65725D2E74632C2054696D6572735B74696D65725D2E6368616E6E656C293B0A0A0972657475726E202A746869733B0A7D0A0A75696E74385F742044756554696D65723A3A62657374436C6F636B28646F75626C65206672657175656E63792C2075696E7433325F7426207265745243297B0A092F2A0A09095069636B20746865206265737420436C6F636B2C207468616E6B7320746F204F676C6520426173696C2048616C6C210A0A090954696D65720909446566696E6974696F6E0A090954494D45525F434C4F434B31094D434B202F2020320A090954494D45525F434C4F434B32094D434B202F2020380A090954494D45525F434C4F434B33094D434B202F2033320A090954494D45525F434C4F434B34094D434B202F3132380A092A2F0A09636F6E737420737472756374207B0A090975696E74385F7420666C61673B0A090975696E74385F742064697669736F723B0A097D20636C6F636B436F6E6669675B5D203D207B0A09097B2054435F434D525F5443434C4B535F54494D45525F434C4F434B312C20202032207D2C0A09097B2054435F434D525F5443434C4B535F54494D45525F434C4F434B322C20202038207D2C0A09097B2054435F434D525F5443434C4B535F54494D45525F434C4F434B332C20203332207D2C0A09097B2054435F434D525F5443434C4B535F54494D45525F434C4F434B342C20313238207D0A097D3B0A09666C6F6174207469636B733B0A09666C6F6174206572726F723B0A09696E7420636C6B4964203D20333B0A09696E742062657374436C6F636B203D20333B0A09666C6F617420626573744572726F72203D20392E3939396539393B0A09646F0A097B0A09097469636B73203D2028666C6F6174292053797374656D436F7265436C6F636B202F206672657175656E6379202F2028666C6F61742920636C6F636B436F6E6669675B636C6B49645D2E64697669736F723B0A09092F2F206572726F72203D20616273287469636B73202D20726F756E64287469636B7329293B0A09096572726F72203D20636C6F636B436F6E6669675B636C6B49645D2E64697669736F72202A20616273287469636B73202D20726F756E64287469636B7329293B092F2F204572726F7220636F6D70617269736F6E206E65656473207363616C696E670A0909696620286572726F72203C20626573744572726F72290A09097B0A09090962657374436C6F636B203D20636C6B49643B0A090909626573744572726F72203D206572726F723B0A09097D0A097D207768696C652028636C6B49642D2D203E2030293B0A097469636B73203D2028666C6F6174292053797374656D436F7265436C6F636B202F206672657175656E6379202F2028666C6F61742920636C6F636B436F6E6669675B62657374436C6F636B5D2E64697669736F723B0A097265745243203D202875696E7433325F742920726F756E64287469636B73293B0A0972657475726E20636C6F636B436F6E6669675B62657374436C6F636B5D2E666C61673B0A7D0A0A0A44756554696D6572262044756554696D65723A3A7365744672657175656E637928646F75626C65206672657175656E6379297B0A092F2A0A0909536574207468652074696D6572206672657175656E63792028696E20487A290A092A2F0A0A092F2F2050726576656E74206E65676174697665206672657175656E636965730A096966286672657175656E6379203C3D203029207B206672657175656E6379203D20313B207D0A0A092F2F2052656D656D62657220746865206672657175656E637920E28094207365652062656C6F7720686F7720746865206578616374206672657175656E6379206973207265706F7274656420696E73746561640A092F2F5F6672657175656E63795B74696D65725D203D206672657175656E63793B0A0A092F2F204765742063757272656E742074696D657220636F6E66696775726174696F6E0A0954696D65722074203D2054696D6572735B74696D65725D3B0A0A0975696E7433325F74207263203D20303B0A0975696E74385F7420636C6F636B3B0A0A092F2F2054656C6C2074686520506F776572204D616E6167656D656E7420436F6E74726F6C6C657220746F2064697361626C65200A092F2F207468652077726974652070726F74656374696F6E206F6620746865202854696D65722F436F756E74657229207265676973746572733A0A09706D635F7365745F777269746570726F746563742866616C7365293B0A0A092F2F20456E61626C6520636C6F636B20666F72207468652074696D65720A09706D635F656E61626C655F7065726970685F636C6B282875696E7433325F7429742E697271293B0A0A092F2F2046696E6420746865206265737420636C6F636B20666F72207468652077616E746564206672657175656E63790A09636C6F636B203D2062657374436C6F636B286672657175656E63792C207263293B0A0A097377697463682028636C6F636B29207B0A092020636173652054435F434D525F5443434C4B535F54494D45525F434C4F434B313A0A09202020205F6672657175656E63795B74696D65725D203D2028646F75626C652953797374656D436F7265436C6F636B202F20322E30202F2028646F75626C652972633B0A0920202020627265616B3B0A092020636173652054435F434D525F5443434C4B535F54494D45525F434C4F434B323A0A09202020205F6672657175656E63795B74696D65725D203D2028646F75626C652953797374656D436F7265436C6F636B202F20382E30202F2028646F75626C652972633B0A0920202020627265616B3B0A092020636173652054435F434D525F5443434C4B535F54494D45525F434C4F434B333A0A09202020205F6672657175656E63795B74696D65725D203D2028646F75626C652953797374656D436F7265436C6F636B202F2033322E30202F2028646F75626C652972633B0A0920202020627265616B3B0A09202064656661756C743A202F2F2054435F434D525F5443434C4B535F54494D45525F434C4F434B340A09202020205F6672657175656E63795B74696D65725D203D2028646F75626C652953797374656D436F7265436C6F636B202F203132382E30202F2028646F75626C652972633B0A0920202020627265616B3B0A097D0A0A092F2F20536574207570207468652054696D657220696E2077617665666F726D206D6F6465207768696368206372656174657320612050574D0A092F2F20696E205550206D6F64652077697468206175746F6D617469632074726967676572206F6E20524320436F6D706172650A092F2F20616E6420736574732069742075702077697468207468652064657465726D696E656420696E7465726E616C20636C6F636B20617320636C6F636B20696E7075742E0A0954435F436F6E66696775726528742E74632C20742E6368616E6E656C2C2054435F434D525F57415645207C2054435F434D525F57415653454C5F55505F5243207C20636C6F636B293B0A092F2F20526573657420636F756E74657220616E64206669726520696E74657272757074207768656E2052432076616C7565206973206D6174636865643A0A0954435F536574524328742E74632C20742E6368616E6E656C2C207263293B0A092F2F20456E61626C652074686520524320436F6D7061726520496E746572727570742E2E2E0A09742E74632D3E54435F4348414E4E454C5B742E6368616E6E656C5D2E54435F4945523D54435F4945525F435043533B0A092F2F202E2E2E20616E642064697361626C6520616C6C206F74686572732E0A09742E74632D3E54435F4348414E4E454C5B742E6368616E6E656C5D2E54435F4944523D7E54435F4945525F435043533B0A0A0972657475726E202A746869733B0A7D0A0A44756554696D6572262044756554696D65723A3A736574506572696F6428646F75626C65206D6963726F7365636F6E6473297B0A092F2A0A09095365742074686520706572696F64206F66207468652074696D65722028696E206D6963726F7365636F6E6473290A092A2F0A0A092F2F20436F6E7665727420706572696F6420696E206D6963726F7365636F6E647320746F206672657175656E637920696E20487A0A09646F75626C65206672657175656E6379203D20313030303030302E30202F206D6963726F7365636F6E64733B090A097365744672657175656E6379286672657175656E6379293B0A0972657475726E202A746869733B0A7D0A0A646F75626C652044756554696D65723A3A6765744672657175656E637928766F69642920636F6E7374207B0A092F2A0A09094765742063757272656E742074696D65206672657175656E63790A092A2F0A0A0972657475726E205F6672657175656E63795B74696D65725D3B0A7D0A0A646F75626C652044756554696D65723A3A676574506572696F6428766F69642920636F6E7374207B0A092F2A0A09094765742063757272656E742074696D6520706572696F640A092A2F0A0A0972657475726E20312E302F6765744672657175656E637928292A313030303030303B0A7D0A0A0A2F2A0A09496D706C656D656E746174696F6E206F66207468652074696D65722063616C6C6261636B7320646566696E656420696E200A0961726475696E6F2D312E352E322F68617264776172652F61726475696E6F2F73616D2F73797374656D2F434D5349532F4465766963652F41544D454C2F73616D3378612F696E636C7564652F73616D337838652E680A2A2F0A2F2F2046697820666F7220636F6D7061746962696C697479207769746820536572766F206C6962726172790A2369666E646566205553494E475F534552564F5F4C49420A766F6964205443305F48616E646C657228766F6964297B0A0954435F476574537461747573285443302C2030293B0A0944756554696D65723A3A63616C6C6261636B735B305D28293B0A7D0A23656E6469660A766F6964205443315F48616E646C657228766F6964297B0A0954435F476574537461747573285443302C2031293B0A0944756554696D65723A3A63616C6C6261636B735B315D28293B0A7D0A2F2F2046697820666F7220636F6D7061746962696C697479207769746820536572766F206C6962726172790A2369666E646566205553494E475F534552564F5F4C49420A766F6964205443325F48616E646C657228766F6964297B0A0954435F476574537461747573285443302C2032293B0A0944756554696D65723A3A63616C6C6261636B735B325D28293B0A7D0A766F6964205443335F48616E646C657228766F6964297B0A0954435F476574537461747573285443312C2030293B0A0944756554696D65723A3A63616C6C6261636B735B335D28293B0A7D0A766F6964205443345F48616E646C657228766F6964297B0A0954435F476574537461747573285443312C2031293B0A0944756554696D65723A3A63616C6C6261636B735B345D28293B0A7D0A766F6964205443355F48616E646C657228766F6964297B0A0954435F476574537461747573285443312C2032293B0A0944756554696D65723A3A63616C6C6261636B735B355D28293B0A7D0A23656E6469660A236966204E554D5F54494D455253203E20360A766F6964205443365F48616E646C657228766F6964297B0A0954435F476574537461747573285443322C2030293B0A0944756554696D65723A3A63616C6C6261636B735B365D28293B0A7D0A766F6964205443375F48616E646C657228766F6964297B0A0954435F476574537461747573285443322C2031293B0A0944756554696D65723A3A63616C6C6261636B735B375D28293B0A7D0A766F6964205443385F48616E646C657228766F6964297B0A0954435F476574537461747573285443322C2032293B0A0944756554696D65723A3A63616C6C6261636B735B385D28293B0A7D0A23656E6469660A
.cpp
DueTimer
2F2A0A202044756554696D65722E68202D2044756554696D6572206865616465722066696C652C20646566696E6974696F6E206F66206D6574686F647320616E6420617474726962757465732E2E2E0A2020466F7220696E737472756374696F6E732C20676F20746F2068747470733A2F2F6769746875622E636F6D2F6976616E73656964656C2F44756554696D65720A0A202043726561746564206279204976616E2053656964656C20476F6D65732C204D617263682C20323031332E0A20204D6F646966696564206279205068696C697070204B6C6175732C204A756E6520323031332E0A202052656C656173656420696E746F20746865207075626C696320646F6D61696E2E0A2A2F0A0A23696E636C756465202241726475696E6F2E68220A0A23696620646566696E6564285F53414D3358415F290A0A2369666E6465662044756554696D65725F680A23646566696E652044756554696D65725F680A0A23696E636C756465203C696E7474797065732E683E0A0A2F2A0A095468697320666978657320636F6D7061746962696C69747920666F7220417264756F6E6F20536572766F204C6962726172792E0A09556E636F6D6D656E7420746F206D616B6520697420636F6D70617469626C652E0A0A094E6F746520746861743A0A09092B2054696D6572733A20302C322C332C342C352057494C4C204E4F5420574F524B2C20616E642077696C6C0A0909090920206E6569746865722062652061636365737369626C652062792054696D6572302C2E2E2E0A2A2F0A2F2F2023646566696E65205553494E475F534552564F5F4C494209747275650A0A236966646566205553494E475F534552564F5F4C49420A09237761726E696E6720224845592120596F7520686176652073657420666C6167205553494E475F534552564F5F4C49422E2054696D6572302C20322C332C3420616E64203520617265206E6F7420617661696C61626C65220A23656E6469660A0A0A23696620646566696E6564205443320A23646566696E65204E554D5F54494D4552532020390A23656C73650A23646566696E65204E554D5F54494D4552532020360A23656E6469660A0A636C6173732044756554696D65720A7B0A70726F7465637465643A0A0A092F2F20526570726573656E7473207468652074696D65722069642028696E64657820666F7220746865206172726179206F662054696D65722073747275637473290A09636F6E737420756E7369676E65642073686F72742074696D65723B0A0A092F2F2053746F72657320746865206F626A6563742074696D6572206672657175656E63790A092F2F2028616C6C6F777320746F206163636573732063757272656E742074696D657220706572696F6420616E64206672657175656E6379293A0A0973746174696320646F75626C65205F6672657175656E63795B4E554D5F54494D4552535D3B0A0A092F2F205069636B7320746865206265737420636C6F636B20746F206C6F77657220746865206572726F720A097374617469632075696E74385F742062657374436C6F636B28646F75626C65206672657175656E63792C2075696E7433325F7426207265745243293B0A0A20202F2F204D616B6520496E746572727570742068616E646C65727320667269656E64732C20736F20746865792063616E207573652063616C6C6261636B730A2020667269656E6420766F6964205443305F48616E646C657228766F6964293B0A2020667269656E6420766F6964205443315F48616E646C657228766F6964293B0A2020667269656E6420766F6964205443325F48616E646C657228766F6964293B0A2020667269656E6420766F6964205443335F48616E646C657228766F6964293B0A2020667269656E6420766F6964205443345F48616E646C657228766F6964293B0A2020667269656E6420766F6964205443355F48616E646C657228766F6964293B0A236966204E554D5F54494D455253203E20360A2020667269656E6420766F6964205443365F48616E646C657228766F6964293B0A2020667269656E6420766F6964205443375F48616E646C657228766F6964293B0A2020667269656E6420766F6964205443385F48616E646C657228766F6964293B0A23656E6469660A0A0973746174696320766F696420282A63616C6C6261636B735B4E554D5F54494D4552535D2928293B0A0A097374727563742054696D65720A097B0A09095463202A74633B0A090975696E7433325F74206368616E6E656C3B0A09094952516E5F54797065206972713B0A097D3B0A0A092F2F2053746F72652074696D657220636F6E66696775726174696F6E20287374617469632C206173206974277320666978656420666F72206576657279206F626A656374290A0973746174696320636F6E73742054696D65722054696D6572735B4E554D5F54494D4552535D3B0A0A7075626C69633A0A0A097374617469632044756554696D657220676574417661696C61626C6528766F6964293B0A0A0944756554696D657228756E7369676E65642073686F7274205F74696D6572293B0A0944756554696D65722620617474616368496E7465727275707428766F696420282A697372292829293B0A0944756554696D65722620646574616368496E7465727275707428766F6964293B0A0944756554696D65722620737461727428646F75626C65206D6963726F7365636F6E6473203D202D31293B0A0944756554696D6572262073746F7028766F6964293B0A0944756554696D657226207365744672657175656E637928646F75626C65206672657175656E6379293B0A0944756554696D65722620736574506572696F6428646F75626C65206D6963726F7365636F6E6473293B0A0A09646F75626C65206765744672657175656E637928766F69642920636F6E73743B0A09646F75626C6520676574506572696F6428766F69642920636F6E73743B0A0A2020696E6C696E65205F5F6174747269627574655F5F2828616C776179735F696E6C696E65292920626F6F6C206F70657261746F723D3D2028636F6E73742044756554696D657226207268732920636F6E73740A202020207B72657475726E2074696D6572203D3D207268732E74696D65723B207D3B0A2020696E6C696E65205F5F6174747269627574655F5F2828616C776179735F696E6C696E65292920626F6F6C206F70657261746F72213D2028636F6E73742044756554696D657226207268732920636F6E73740A202020207B72657475726E2074696D657220213D207268732E74696D65723B207D3B0A7D3B0A0A2F2F204A75737420746F2063616C6C2054696D65722E676574417661696C61626C6520696E7374656164206F662054696D65723A3A676574417661696C61626C652829203A0A65787465726E2044756554696D65722054696D65723B0A0A65787465726E2044756554696D65722054696D6572313B0A2F2F2046697820666F7220636F6D7061746962696C697479207769746820536572766F206C6962726172790A2369666E646566205553494E475F534552564F5F4C49420A0965787465726E2044756554696D65722054696D6572303B0A0965787465726E2044756554696D65722054696D6572323B0A0965787465726E2044756554696D65722054696D6572333B0A0965787465726E2044756554696D65722054696D6572343B0A0965787465726E2044756554696D65722054696D6572353B0A23656E6469660A236966204E554D5F54494D455253203E20360A65787465726E2044756554696D65722054696D6572363B0A65787465726E2044756554696D65722054696D6572373B0A65787465726E2044756554696D65722054696D6572383B0A23656E6469660A0A23656E6469660A0A23656C73650A09236572726F72204F6F70732120547279696E6720746F20696E636C7564652044756554696D6572206F6E20616E6F74686572206465766963653F0A23656E6469660A
.h
examples
AvaliableTimer
AvaliableTimer
23696E636C756465203C44756554696D65722E683E0A0A766F696420706C6179566964656F67616D6528297B0A0953657269616C2E7072696E746C6E28225B2D20202020202020205D2049276D20706C6179696E6720566964656F67616D652122293B0A7D0A0A766F6964206472696E6B576174657228297B0A0953657269616C2E7072696E746C6E28225B202D202020202020205D2049276D206472696B696E672077617465722122293B0A7D0A0A766F6964206D616B65537573686928297B0A0953657269616C2E7072696E746C6E28225B20202D2020202020205D20536C6963696E672053616C6D6F6E2E2E2E22293B0A7D0A0A766F69642073696E674F6E53686F77657228297B0A0953657269616C2E7072696E746C6E28225B2020202D20202020205D2048656C6C6F20576F726C64212048656C6C6F20776F726C642122293B0A7D0A0A766F69642073747564794D61746828297B0A09696E742078203D2072616E646F6D28312C203430292C2079203D2072616E646F6D28312C3430293B0A0953657269616C2E7072696E7428225B202020202D202020205D2022293B0A0953657269616C2E7072696E742878293B2053657269616C2E7072696E74282220782022293B2053657269616C2E7072696E742879293B2053657269616C2E7072696E742822203D2022293B0A0953657269616C2E7072696E746C6E28782A79293B0A7D0A0A766F6964207761746368537461725472656B28297B0A0953657269616C2E7072696E746C6E28225B20202020202D2020205D204C6F6E67206C69766520616E642070726F73706572205C5C5C5C2F2F5F22293B0A7D0A0A766F696420656174537573686928297B0A0953657269616C2E7072696E746C6E28225B2020202020202D20205D202E2E2E22293B0A7D0A0A766F69642072656164546578744D65737361676528297B0A0953657269616C2E7072696E746C6E28225B202020202020202D205D205B556E6C6F636B202D2D2D2D3E3E5D22293B0A7D0A0A766F696420676F546F536C65657028297B0A0953657269616C2E7072696E746C6E28225B20202020202020202D5D207A7A7A7A7A7A22293B0A7D0A0A766F696420736574757028297B0A0953657269616C2E626567696E2839363030293B0A0A0954696D65722E676574417661696C61626C6528292E617474616368496E7465727275707428706C6179566964656F67616D65292E737461727428293B2064656C6179283530293B0A0954696D65722E676574417661696C61626C6528292E617474616368496E74657272757074286472696E6B5761746572292E737461727428293B2064656C6179283530293B0A0954696D65722E676574417661696C61626C6528292E617474616368496E74657272757074286D616B655375736869292E737461727428293B2064656C6179283530293B0A0954696D65722E676574417661696C61626C6528292E617474616368496E746572727570742873696E674F6E53686F776572292E737461727428293B2064656C6179283530293B0A0954696D65722E676574417661696C61626C6528292E617474616368496E746572727570742873747564794D617468292E737461727428293B2064656C6179283530293B0A0954696D65722E676574417661696C61626C6528292E617474616368496E74657272757074287761746368537461725472656B292E737461727428293B2064656C6179283530293B0A0954696D65722E676574417661696C61626C6528292E617474616368496E74657272757074286561745375736869292E737461727428293B2064656C6179283530293B0A0954696D65722E676574417661696C61626C6528292E617474616368496E746572727570742872656164546578744D657373616765292E737461727428293B2064656C6179283530293B0A0954696D65722E676574417661696C61626C6528292E617474616368496E7465727275707428676F546F536C656570292E737461727428293B2064656C6179283530293B0A7D0A0A766F6964206C6F6F7028297B0A097768696C652831297B0A09092F2F202E2E2E0A097D0A7D
.pde
MultipleTimers
MultipleTimers
23696E636C756465203C44756554696D65722E683E0A0A766F696420666972737448616E646C657228297B0A0953657269616C2E7072696E746C6E28225B2D20205D2046697273742048616E646C65722122293B0A7D0A0A766F6964207365636F6E6448616E646C657228297B0A0953657269616C2E7072696E746C6E28225B202D205D205365636F6E642048616E646C65722122293B0A7D0A0A766F696420746869726448616E646C657228297B0A0953657269616C2E7072696E746C6E28225B20202D5D2054686972642048616E646C65722122293B0A7D0A0A766F696420736574757028297B0A0953657269616C2E626567696E2839363030293B0A0A0954696D6572332E617474616368496E7465727275707428666972737448616E646C6572292E737461727428353030303030293B202F2F204576657279203530306D730A0954696D6572342E617474616368496E74657272757074287365636F6E6448616E646C6572292E7365744672657175656E63792831292E737461727428293B0A0954696D6572352E617474616368496E7465727275707428746869726448616E646C6572292E7365744672657175656E6379283130293B0A7D0A0A766F6964206C6F6F7028297B0A0964656C61792832303030293B0A0954696D6572352E737461727428293B0A0A0964656C61792832303030293B0A0954696D6572352E73746F7028293B0A7D
.pde
SimpleTimer
SimpleTimer
23696E636C756465203C44756554696D65722E683E0A0A696E74206D794C6564203D2031333B0A0A626F6F6C206C65644F6E203D2066616C73653B0A766F6964206D7948616E646C657228297B0A096C65644F6E203D20216C65644F6E3B0A0A096469676974616C5772697465286D794C65642C206C65644F6E293B202F2F204C6564206F6E2C206F66662C206F6E2C206F66662E2E2E0A7D0A0A766F696420736574757028297B0A0970696E4D6F6465286D794C65642C204F5554505554293B0A0A0954696D6572332E617474616368496E74657272757074286D7948616E646C6572293B0A0954696D6572332E7374617274283530303030293B202F2F2043616C6C732065766572792035306D730A7D0A0A766F6964206C6F6F7028297B0A0A097768696C652831297B0A09092F2F2049276D20737475636B20696E2068657265212068656C70206D652E2E2E0A097D0A090A7D
.pde
keywords
44756554696D6572094B4559574F5244320A7374617274094B4559574F5244320A73746F70094B4559574F5244320A617474616368496E74657272757074094B4559574F5244320A646574616368496E74657272757074094B4559574F5244320A736574506572696F64094B4559574F5244320A7365744672657175656E6379094B4559574F5244320A6765744672657175656E6379094B4559574F5244320A676574506572696F64094B4559574F5244320A0A54696D6572094B4559574F5244310A54696D657230094B4559574F5244310A54696D657231094B4559574F5244310A54696D657232094B4559574F5244310A54696D657233094B4559574F5244310A54696D657234094B4559574F5244310A54696D657235094B4559574F5244310A54696D657236094B4559574F5244310A54696D657237094B4559574F5244310A0A
.txt
library
7B0A20202020226E616D65223A202244756554696D6572222C0A20202020226B6579776F726473223A202274696D6572222C0A20202020226465736372697074696F6E223A202254696D6572204C6962726172792066756C6C7920696D706C656D656E74656420666F722041726475696E6F20445545222C0A2020202022617574686F7273223A0A202020205B0A20202020202020207B0A202020202020202020202020226E616D65223A20224976616E2053656964656C222C0A20202020202020202020202022656D61696C223A20226976616E73656964656C40676D61696C2E636F6D222C0A2020202020202020202020202275726C223A202268747470733A2F2F6769746875622E636F6D2F6976616E73656964656C222C0A202020202020202020202020226D61696E7461696E6572223A20747275650A20202020202020207D0A202020205D2C0A20202020227265706F7369746F7279223A0A202020207B0A20202020202020202274797065223A2022676974222C0A20202020202020202275726C223A202268747470733A2F2F6769746875622E636F6D2F6976616E73656964656C2F44756554696D65722E676974220A202020207D2C0A202020202276657273696F6E223A2022312E342E38222C0A20202020226C6963656E7365223A20224D4954222C0A20202020226672616D65776F726B73223A202261726475696E6F222C0A2020202022706C6174666F726D73223A202261746D656C73616D222C0A20202020226578616D706C6573223A0A202020205B0A2020202020202020226578616D706C65732F2A2F2A2E706465220A202020205D0A7D0A
.json
library
6E616D653D44756554696D65720A76657273696F6E3D312E342E380A617574686F723D4976616E2053656964656C203C6976616E73656964656C40676D61696C2E636F6D3E0A6D61696E7461696E65723D4976616E2053656964656C203C6976616E73656964656C40676D61696C2E636F6D3E0A73656E74656E63653D54696D6572204C6962726172792066756C6C7920696D706C656D656E74656420666F722041726475696E6F204455450A7061726167726170683D5468657265206172652036206F7220392054696D6572206F626A6563747320616C726561647920696E7374616E74696174656420666F7220796F753A2054696D6572302C2054696D6572312C2054696D6572322C2054696D6572332C2054696D6572342C2054696D65723520616E642054696D6572362C2054696D6572372C2054696D65723820776865726520737570706F72746564206279207468652068617264776172652E0A63617465676F72793D54696D696E670A75726C3D68747470733A2F2F6769746875622E636F6D2F6976616E73656964656C2F44756554696D65720A617263686974656374757265733D73616D0A
.properties
LICENSE
546865204D4954204C6963656E736520284D4954290A0A436F70797269676874202863292032303135204976616E2053656964656C0A0A5065726D697373696F6E20697320686572656279206772616E7465642C2066726565206F66206368617267652C20746F20616E7920706572736F6E206F627461696E696E67206120636F70790A6F66207468697320736F66747761726520616E64206173736F63696174656420646F63756D656E746174696F6E2066696C657320287468652022536F66747761726522292C20746F206465616C0A696E2074686520536F66747761726520776974686F7574207265737472696374696F6E2C20696E636C7564696E6720776974686F7574206C696D69746174696F6E20746865207269676874730A746F207573652C20636F70792C206D6F646966792C206D657267652C207075626C6973682C20646973747269627574652C207375626C6963656E73652C20616E642F6F722073656C6C0A636F70696573206F662074686520536F6674776172652C20616E6420746F207065726D697420706572736F6E7320746F2077686F6D2074686520536F6674776172652069730A6675726E697368656420746F20646F20736F2C207375626A65637420746F2074686520666F6C6C6F77696E6720636F6E646974696F6E733A0A0A5468652061626F766520636F70797269676874206E6F7469636520616E642074686973207065726D697373696F6E206E6F74696365207368616C6C20626520696E636C7564656420696E20616C6C0A636F70696573206F72207375627374616E7469616C20706F7274696F6E73206F662074686520536F6674776172652E0A0A54484520534F4654574152452049532050524F564944454420224153204953222C20574954484F55542057415252414E5459204F4620414E59204B494E442C2045585052455353204F520A494D504C4945442C20494E434C5544494E4720425554204E4F54204C494D4954454420544F205448452057415252414E54494553204F46204D45524348414E544142494C4954592C0A4649544E45535320464F52204120504152544943554C415220505552504F534520414E44204E4F4E494E4652494E47454D454E542E20494E204E4F204556454E54205348414C4C205448450A415554484F5253204F5220434F5059524947485420484F4C44455253204245204C4941424C4520464F5220414E5920434C41494D2C2044414D41474553204F52204F544845520A4C494142494C4954592C205748455448455220494E20414E20414354494F4E204F4620434F4E54524143542C20544F5254204F52204F54484552574953452C2041524953494E472046524F4D2C0A4F5554204F46204F5220494E20434F4E4E454354494F4E20574954482054484520534F465457415245204F522054484520555345204F52204F54484552204445414C494E475320494E205448450A534F4654574152452E0A
.txt
README
232044756554696D65720A0A54696D6572204C69627261727920746F20776F726B20776974682041726475696E6F204455450A0A232320496E7374616C6C6174696F6E0A0A312E205B446F776E6C6F61645D2868747470733A2F2F6769746875622E636F6D2F6976616E73656964656C2F44756554696D65722F72656C65617365732920746865204C61746573742072656C656173652066726F6D204769744875622E0A322E20556E7A697020616E64206D6F646966792074686520466F6C646572206E616D6520746F202244756554696D657222202852656D6F76652074686520272D76657273696F6E27290A332E20506173746520746865206D6F64696669656420666F6C646572206F6E20796F7572204C69627261727920666F6C64657220284F6E20796F757220604C69627261726965736020666F6C64657220696E7369646520536B65746368626F6F6B73206F722041726475696E6F20736F667477617265292E0A342E2052652D6F70656E2041726475696E6F20536F6674776172650A0A23232047657474696E6720537461727465640A0A546F2063616C6C20612066756E6374696F6E206068616E646C65726020657665727920603130303060206D6963726F7365636F6E64733A0A0A606060632B2B0A54696D6572332E617474616368496E746572727570742868616E646C6572292E73746172742831303030293B0A2F2F206F723A0A54696D6572332E617474616368496E746572727570742868616E646C6572292E736574506572696F642831303030292E737461727428293B0A2F2F206F722C20746F2073656C6563742077686963686576657220617661696C61626C652074696D65723A0A54696D65722E676574417661696C61626C6528292E617474616368496E746572727570742868616E646C6572292E73746172742831303030293B0A6060600A0A546F2063616C6C20612066756E6374696F6E206068616E646C65726020603130602074696D65732061207365636F6E643A0A0A606060632B2B0A54696D6572332E617474616368496E746572727570742868616E646C6572292E7365744672657175656E6379283130292E737461727428293B0A6060600A0A496E206361736520796F75206E65656420746F2073746F7020612074696D65722C206A75737420646F206C696B6520746869733A0A0A606060632B2B0A54696D6572332E73746F7028293B0A6060600A0A416E6420746F20636F6E74696E75652072756E6E696E673A0A0A606060632B2B0A54696D6572332E737461727428293B0A6060600A0A546865726520617265206039602054696D6572206F626A6563747320616C726561647920696E7374616E74696174656420666F7220796F753A0A6054696D657230602C206054696D657231602C206054696D657232602C206054696D657233602C206054696D657234602C206054696D657235602C206054696D657236602C206054696D6572376020616E64206054696D657238602E0A0A232323205449507320616E64205761726E696E67730A0A606060632B2B0A54696D6572342E617474616368496E746572727570742868616E646C6572292E7365744672657175656E6379283130292E737461727428293B0A2F2F204973207468652073616D652061733A0A54696D6572342E617474616368496E746572727570742868616E646C6572293B0A54696D6572342E7365744672657175656E6379283130293B0A54696D6572342E737461727428293B0A0A2F2F20546F20637265617465206120637573746F6D2074696D65722C20726566657220746F3A0A44756554696D6572206D7954696D6572203D2044756554696D65722830293B202F2F204372656174657320612054696D65722030206F626A6563742E0A44756554696D6572206D7954696D6572203D2044756554696D65722833293B202F2F204372656174657320612054696D65722033206F626A6563742E0A44756554696D6572206D7954696D6572203D2044756554696D65722874293B202F2F204372656174657320612054696D65722074206F626A6563742E0A2F2F204E6F74653A204D6178696D756D207420616C6C6F77656420697320382C206173207468657265206973206F6E6C7920392074696D657273205B302E2E385D3B0A0A54696D6572312E617474616368496E746572727570742868616E646C657231292E7374617274283130293B0A54696D6572312E617474616368496E746572727570742868616E646C657232292E7374617274283130293B0A44756554696D6572206D7954696D6572203D2044756554696D65722831293B0A6D7954696D65722E617474616368496E746572727570742868616E646C657233292E7374617274283230293B0A2F2F2057696C6C2072756E206F6E6C792068616E646C65332C206F6E2054696D657220312028596F7520617265206A757374206F766572726964696E67207468652063616C6C6261636B290A0A54696D65722E676574417661696C61626C6528292E617474616368496E746572727570742863616C6C6261636B31292E7374617274283130293B0A2F2F2053746172742074696D6572206F6E20666972737420617661696C61626C652074696D65720A44756554696D65723A3A676574417661696C61626C6528292E617474616368496E746572727570742863616C6C6261636B32292E7374617274283130293B0A2F2F2053746172742074696D6572206F6E207365636F6E6420617661696C61626C652074696D65720A2F2F20416E6420736F206F6E2E2E2E0A0A44756554696D6572206D7954696D6572203D2054696D65722E676574417661696C61626C6528293B0A696620286D7954696D657220213D2044756554696D6572283029290A2F2F204E6F77207765206B6E6F772074686174207468652074696D65722072657475726E65642069732061637475616C6C7920617661696C61626C650A2F2F2043616E20636F6D706172652074696D657273207573696E67203D3D206F7220213D0A0A6060600A0A23232320436F6D7061746962696C697479207769746820536572766F2E680A0A4265636175736520536572766F204C6962726172792075736573207468652073616D652063616C6C6261636B73206F662044756554696D65722C2077652070726F7669646573206120637573746F6D20736F6C7574696F6E20666F7220776F726B696E67207769746820626F7468206F66207468656D2E20486F77657665722C2054696D65727320302C322C332C3420616E6420352077696C6C206E6F7420576F726B20616E796D6F72652E0A0A596F752077696C6C206E65656420756E636F6D6D656E6420746865206C696E6520696E206044756554696D65722E686020696E206044756554696D65726020666F6C64657220696E736964652074686520604C69627261726965736020666F6C6465722E20556E636F6D6D656E742074686520666F6C6C6F77696E67206C696E6520696E206044756554696D65722E68603A0A0A6060600A23646566696E65205553494E475F534552564F5F4C494209747275650A6060600A0A2323204C696272617279205265666572656E63650A0A23232320596F752073686F756C64206B6E6F773A0A0A2D2060676574417661696C61626C65282960202D204765742074686520666972737420617661696C61626C652054696D65722E0A0A2D2060617474616368496E7465727275707428766F696420282A6973722928292960202D20417474616368206120696E74657272757074202863616C6C6261636B2066756E6374696F6E2920666F72207468652074696D6572206F6620746865206F626A6563742E0A0A2D2060646574616368496E74657272757074282960202D204465746163682063757272656E742063616C6C6261636B206F662074696D65722E0A0A2D20607374617274286C6F6E67206D6963726F7365636F6E6473203D202D312960202D205374617274207468652074696D6572207769746820616E206F7074696F6E616C20706572696F6420706172616D657465722E0A0A2D206073746F70282960202D2053746F70207468652074696D65720A0A2D20607365744672657175656E6379286C6F6E67206672657175656E63792960202D20536574207468652074696D6572206672657175656E63790A0A2D20606C6F6E67206765744672657175656E6379282960202D20476574207468652074696D6572206672657175656E63790A0A2D2060736574506572696F64286C6F6E67206D6963726F7365636F6E64732960202D20536574207468652074696D657220706572696F642028696E206D6963726F7365636F6E6473290A0A2D20606C6F6E6720676574506572696F64282960202D20476574207468652074696D657220706572696F642028696E206D6963726F7365636F6E6473290A0A23232320596F7520646F6E2774206E65656420746F206B6E6F773A0A0A3C3C3C3C3C3C3C20484541440A2D2060696E742074696D657260202D2053746F72657320746865206F626A6563742074696D65722069642028746F206163636573732054696D65727320737472756374206172726179292E0A0A2D206044756554696D657228756E7369676E65642073686F7274205F74696D65722960202D20496E7374616E74696174652061206E65772044756554696D6572206F626A65637420666F722054696D6572205F74696D657220284E4F54453A20416C6C206F626A656374732061726520616C726561647920696E7374616E74696174656421292E0A0A2D206073746174696320636F6E73742054696D65722054696D6572735B5D60202D2053746F72657320616C6C2074696D65727320696E666F726D6174696F6E0A0A2D206073746174696320766F696420282A63616C6C6261636B735B5D29282960202D2053746F72657320616C6C2063616C6C6261636B7320666F7220616C6C2074696D6572730A0A0A23232320486172647761726520496E666F726D6174696F6E0A0A4D6F726520696E666F726D6174696F6E206F6E207468652054696D657220436F756E746572206D6F64756C65206F662074686520C2B543206F6E207468652041726475696E6F204475650A63616E20626520666F756E6420696E2074686520646F63756D656E746174696F6E2066696C65205B54696D6572436F756E7465725D2854696D6572436F756E7465722E6D64292E
.md
TimerCounter
23205468652054696D657220436F756E74657220626C6F636B73206F662041726475696E6F204475652773204154393153414D335838450D0A0D0A546865204154393153414D3358384520656D6265646473206E696E652067656E6572616C2D707572706F73652033322D6269742074696D6572732F636F756E746572732E205468657920617265206F7267616E697A656420696E20746872656520626C6F636B73202860544330602C2060544331602C20605443326029206561636820636F6E7461696E696E67207468726565206368616E6E656C7320286030602C206031602C20603260292E0D0A4561636820626C6F636B20616E64206368616E6E656C2068617320696E707574206C696E657320666F7220746865697220636C6F636B20616E6420696E7075742F6F7574707574206C696E65732077686963682063616E206265207573656420696E20646966666572656E7420776179732C20737563682061732050574D2070696E73206574632E0D0A0D0A0D0A232323205265736F75726365730D0A0D0A496E666F726D6174696F6E206F6E207468652054696D657220436F756E74657220616E642069747320492F4F207369676E616C732070696E732063616E20626520666F756E6420686572653A0D0A0D0A2A2053656374696F6E202A2A33372054696D657220436F756E74657220285443292A2A20696E20746865205B41746D656C2053414D3358204461746173686565745D5B5D20200D0A2020596F752066696E6420746869732063686170746572206F6E2074686520706167657320383639207468726F756768203932302E204974206578706C61696E7320696E2064657461696C20686F7720746F206F7065726174652074686520636F756E74657220696E20646966666572656E74206D6F64657320616E6420686173206E696365206469616772616D7320746861742073686F7720796F7520686F772074686520636C6F636B20696E70757420776F726B7320616E6420686F7720746F2073657420757020696E7465727275707473206261736564206F6E20636F756E7465722076616C756573206574632E0D0A2A205B41726475696E6F2044756527732053414D33582050696E204D617070696E675D5B5D20616E6420746865200D0A2A205B41726475696E6F204475652070696E6F7574206469616772616D5D5B5D2E0D0A0D0A232323205468652054696D657220436F756E746572205369676E616C73202F2050696E730D0A0D0A4D616E79206F662074686520492F4F206C696E6573206F66207468652054696D657220436F756E74657220617265206469726563746C792061636365737369626C65206F6E2070696E2068656164657273206F66207468652041726475696E6F2044756520626F6172642E20546869732073656374696F6E2068656C707320796F7520746F2066696E64206F7574207768696368206F66207468656D2061726520616E6420776869636820617265206E6F742E0D0A0D0A496E206F7264657220746F2061637475616C6C7920636F6E6E6563742074686F7365207369676E616C7320286054434C4B78602C206054494F41786020616E64206054494F4278602920746F207468652070696E73206F6E207468652041726475696E6F204475652C20796F75206D7573742074656C6C2074686520506172616C6C656C20492F4F20436F6E74726F6C6C65727320286050494F41602C206050494F42602C206050494F4360206F72206050494F44602920746F20736574207570207468656972206D757820286D756C7469706C6578657229206163636F7264696E676C792E3C6272202F3E0D0A412075736566756C207265736F7572636520746F2066696E64206F757420686F7720746F20736574207468652050494F732069730D0A5B41726475696E6F277320636F6E7374206172726179206F662050696E4465736372697074696F6E735D2868747470733A2F2F6769746875622E636F6D2F61726475696E6F2F41726475696E6F2F626C6F622F6964652D312E352E782F68617264776172652F61726475696E6F2F73616D2F76617269616E74732F61726475696E6F5F6475655F782F76617269616E742E637070234C3131372920616E6420746865200D0A5B646566696E6974696F6E206F662050696E4465736372697074696F6E5D2868747470733A2F2F6769746875622E636F6D2F61726475696E6F2F41726475696E6F2F626C6F622F6964652D312E352E782F68617264776172652F61726475696E6F2F73616D2F636F7265732F61726475696E6F2F41726475696E6F2E68234C313636292C2074686520646174612074797065206F662069747320656E74726965732E0D0A0D0A23232323204F76657276696577206F662074686520492F4F206C696E6573206F66207468652054696D657220436F756E7465720D0A0D0A486572652069732061207461626C65206F66207468652054696D657220436F756E746572206368616E6E656C7320616E64207468656972206054434C4B7860202865787465726E616C20636C6F636B20696E707574292C206054494F4178602028492F4F204C696E65205F415F2920616E64206054494F4278602028492F4F204C696E65205F425F29207369676E616C733A0D0A0D0A496E7374616E6365207C20544320207C204368616E6E656C7C2045787465726E616C20436C6F636B20496E707574207C20492F4F204C696E652041207C20492F4F204C696E6520420D0A2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D7C2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D0D0A2054302020202020207C20544330207C20202030202020207C20202020202020202054434C4B3020202020202020207C20202054494F4130202020207C2020202054494F42300D0A2054312020202020207C20544330207C20202031202020207C20202020202020202054434C4B3120202020202020207C20202054494F4131202020207C2020202054494F42310D0A2054322020202020207C20544330207C20202032202020207C20202020202020202054434C4B3220202020202020207C20202054494F4132202020207C2020202054494F42320D0A2054332020202020207C20544331207C20202030202020207C20202020202020202054434C4B3320202020202020207C20202054494F4133202020207C2020202054494F42330D0A2054342020202020207C20544331207C20202031202020207C20202020202020202054434C4B3420202020202020207C20202054494F4134202020207C2020202054494F42340D0A2054352020202020207C20544331207C20202032202020207C20202020202020202054434C4B3520202020202020207C20202054494F4135202020207C2020202054494F42350D0A2054362020202020207C20544332207C20202030202020207C20202020202020202054434C4B3620202020202020207C20202054494F4136202020207C2020202054494F42360D0A2054372020202020207C20544332207C20202031202020207C20202020202020202054434C4B3720202020202020207C20202054494F4137202020207C2020202054494F42370D0A2054382020202020207C20544332207C20202032202020207C20202020202020202054434C4B3820202020202020207C20202054494F4138202020207C2020202054494F42380D0A0D0A23232323232054434C4B780D0A0D0A4865726520697320686F7720746865202A2A65787465726E616C20636C6F636B20696E707574732A2A2061726520726F7574656420746F2070696E73206F6E207468652041726475696E6F2044756520626F6172643A0D0A0D0A436C6F636B20496E707574207C20506F72742050696E206F6620C2B543207C2050696E206F6E2041726475696E6F2044756520426F6172640D0A2D2D2D2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0A54434C4B30202020202020207C2020202050422032362020207C2020204469676974616C2050696E2032320D0A54434C4B31202020202020207C2020202050412020342020207C202020202020416E616C6F6720496E20350D0A54434C4B32202020202020207C2020202050412020372020207C2020204469676974616C2050696E2033310D0A54434C4B33202020202020207C2020202050412032322020207C202020202020416E616C6F6720496E20330D0A54434C4B34202020202020207C2020202050412032332020207C202020202020416E616C6F6720496E20320D0A54434C4B35202020202020207C2020202050422031362020207C20202020202020202020202020444143310D0A54434C4B36202020202020207C2020202050432032372020207C20202020202020202F0D0A54434C4B37202020202020207C2020202050432033302020207C2020202020202020204C454420225258220D0A54434C4B38202020202020207C2020202050442020392020207C2020204469676974616C2050696E2033300D0A0D0A23232323232054494F41780D0A0D0A4865726520697320686F7720746865202A2A492F4F204C696E6573205F415F2A2A2061726520726F7574656420746F2070696E73206F6E207468652041726475696E6F2044756520626F6172643A0D0A0D0A492F4F204C696E652041207C20506F72742050696E206F6620C2B543207C2050696E206F6E2041726475696E6F2044756520426F6172640D0A2D2D2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0A54494F41302020202020207C202020205042203235202020202020207C2020204469676974616C2050696E20320D0A54494F41312020202020207C202020205041202032202020202020207C2020202020416E616C6F6720496E20370D0A54494F41322020202020207C202020205041202035202020202020207C2020202F0D0A54494F41332020202020207C202020205045202039202020202020207C2020202F0D0A54494F41342020202020207C202020205045203131202020202020207C2020202F0D0A54494F41352020202020207C202020205045203133202020202020207C2020202F0D0A54494F41362020202020207C202020205043203235202020202020207C2020204469676974616C2050696E2020350D0A54494F41372020202020207C202020205043203238202020202020207C2020204469676974616C2050696E2020330D0A54494F41382020202020207C202020205044202037202020202020207C2020204469676974616C2050696E2031310D0A0D0A23232323232054494F42780D0A0D0A4865726520697320686F7720746865202A2A492F4F204C696E6573205F425F2A2A2061726520726F7574656420746F2070696E73206F6E207468652041726475696E6F2044756520626F6172643A0D0A0D0A492F4F204C696E6520427C506F72742050696E206F6620C2B5437C2050696E206F6E2041726475696E6F2044756520426F6172640D0A2D2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D0D0A54494F423020202020207C20202020205042203237202020207C2020204469676974616C2050696E203133202F20416D626572204C454420224C220D0A54494F423120202020207C20202020205041202033202020207C202020416E616C6F6720496E20360D0A54494F423220202020207C20202020205041202036202020207C202020416E616C6F6720496E20340D0A54494F423320202020207C20202020205045203130202020207C2020202F0D0A54494F423420202020207C20202020205045203132202020207C2020202F0D0A54494F423520202020207C20202020205045203134202020207C2020202F0D0A54494F423620202020207C20202020205043203236202020207C2020204469676974616C2050696E2020342028616C736F20636F6E6E656374656420746F2050413239290D0A54494F423720202020207C20202020205043203239202020207C2020204469676974616C2050696E2031302028616C736F20636F6E6E656374656420746F2050413238290D0A54494F423820202020207C20202020205044202038202020207C2020204469676974616C2050696E2031320D0A0D0A2323232320544320436C6F636B20536F757263652053656C656374696F6E0D0A0D0A546865202A636C6F636B206F662074686520636F756E746572732A2063616E20626520736574207665727920666C657869626C7920746F20696E7465726E616C206F722065787465726E616C207369676E616C732E20546F202A75736520746865206368616E6E656C20617320612074696D65722A2C206974206D616B65732073656E736520746F20636F6E6E6563742069747320636C6F636B20696E70757420746F20616E20696E7465726E616C2074696D657220636C6F636B2E20486572652061726520746865206F7074696F6E733A0D0A0D0A4E616D652020202020202020207C20446566696E6974696F6E0D0A2D2D2D2D2D2D2D2D2D2D2D2D2D7C2D2D2D2D2D2D2D2D2D2D2D0D0A54494D45525F434C4F434B31207C20604D434B202F20202032600D0A54494D45525F434C4F434B32207C20604D434B202F20202038600D0A54494D45525F434C4F434B33207C20604D434B202F20203332600D0A54494D45525F434C4F434B34207C20604D434B202F20313238600D0A54494D45525F434C4F434B35207C2060534C434B600D0A0D0A0D0A576865726520604D434B6020697320746865206D617374657220636C6F636B20283834204D487A20666F72207468652041726475696E6F204475652920616E6420534C434B2069732074686520736C6F7720636C6F636B202877686963682063616E20626520636C6F636B65642061742033322E373638206B487A206279205932206F6E207468652041726475696E6F20447565292E0D0A0D0A5B41746D656C2053414D3358204461746173686565745D3A20687474703A2F2F7777772E61746D656C2E636F6D2F496D616765732F41746D656C2D31313035372D33322D6269742D436F727465782D4D332D4D6963726F636F6E74726F6C6C65722D53414D33582D53414D33415F4461746173686565742E7064660D0A5B41726475696E6F2044756527732053414D33582050696E204D617070696E675D3A20687474703A2F2F61726475696E6F2E63632F656E2F4861636B696E672F50696E4D617070696E6753414D33580D0A5B41726475696E6F204475652070696E6F7574206469616772616D5D3A20687474703A2F2F7777772E726F62677261792E636F6D2F74656D702F4475652D70696E6F75742E7064660D0A
.md
ШД1_v1.3
ШагДвиг_mod
FindEndSwitch
3dd2a884-0b23-4cb1-a919-c8fcdd913331
При true постоянно шагаем для поиска концевика по CCW
dd7e7512-0e44-4b12-a3f1-2bfb7f9fd8e0
SpeedEndSwitch
0da09e76-9abd-4209-8994-3906b4e99e09
Скорость ШД для поиска концевика
e8002159-6d09-4b1f-97de-6f287b7a5e9f
ШагДвиг Установка
En
22502748-2126-49f6-a695-bae1e55d0464
3d062544-2c05-4514-9cbe-cbdff30ee30f
MaxSpeed
b4f1be77-2577-4f2d-8375-3e1ea4216d92
Максимальная скорость вращения ротора двигателя (шагов/секунду)
d146d221-19f1-4a4d-b6ca-5801a5a3af91
Acceleration
12308427-b97e-437d-bd1c-aee97865b6ec
Ускорение вращения (шагов/секунду^2)
e0c65a93-e82f-4d23-a7a7-679313d04991
c4e4c49d-0b43-4310-82ce-026db0767636
Установка параметров шагового двигателя
Step
Пин управления шагами контроллера
66f1483d-3159-450f-8e82-e654741e6c57
8bc42495-0960-4300-adb7-22efc1573ceb
Dir
Пин направления вращения контроллера
c31d485e-f907-4651-bd19-51f5b0a023b8
72abb887-5e2a-4587-aebd-f3908812b2a9
If (En) {
Stepper1.setMaxSpeed(MaxSpeed);
Stepper1.setAcceleration(Acceleration);
}
1 - режим "external driver" (A4988)
Stepper1
(1, Step, Dir);
AccelStepper
EnSteps
Speed
Acceleration
ШагДвиг
En
Скорость
Ускорение
Шагов
4b139470-65a1-49a3-8a95-6418d90824c2
Количество шагов, которые должен сделать двигатель
011babd7-655e-464f-b4be-4f06bf7e3d31
Готов
f75858a5-7f06-4bf0-9caa-3515dd3118a4
Двигатель закончил движение
d1e9f08d-ba11-403b-8751-573ef2a3a8cb
198f8292-fe38-4914-8ded-a59a71b45bbe
Управление шаговым двигателем через контроллер А4988
If (En) {
SetStepperMaxSpeed(Скорость);
SetStepperAcceleration(Ускорение);
StepperMove(Шагов);
}
Готов = Stepper.distanceToGo() == 0;
Stepper.run();
#include
<AccelStepper.h>
1 - режим "external driver" (A4988)
Stepper
(1, Step, Dir);
AccelStepper
curMaxSpeed
= 0;
int
curAcceleration
= 0;
int
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
void
SetStepperMaxSpeed
int
MaxSpeed
if (curAcceleration != Acceleration) {
Stepper.setAcceleration(Acceleration);
curAcceleration = Acceleration;
}
void
SetStepperAcceleration
int
Acceleration
Stepper.move(Distance);
void
StepperMove
int
Distance
Steps
CCW
1749a012-0c84-41fa-bf04-5a19d56a9907
По часовой стрелке
385bd673-ed11-4ff5-b385-63a75de09b57
Ready
Позиция
3e95bd51-7ae3-449f-9b9d-986ce8be7e53
Текущая позиция двигателя
0d87726d-d3cb-406f-b42d-bc70bcf6c19c
0681950a-4e83-4f02-b52f-192689d207f9
If (En) {
SetStepperMaxSpeed(Скорость);
SetStepperAcceleration(Ускорение);
StepperMove(Шагов);
}
Готов = !Stepper.run();
Позиция = Stepper.currentPosition();
Position
0eeb9b7f-900c-46d1-bb27-99aec13d1572
if (En) {
SetStepperMaxSpeed(Speed);
SetStepperAcceleration(Acceleration);
StepperMove(Steps*(CCW ? 1 : -1));
}
Ready = !Stepper.run();
Position = Stepper.currentPosition();
Stepper.move(Distance);
SetZeroPosition
60c5b2c1-55c8-41ea-a856-60fc36f95afe
Установка начальной позиции в 0. Использовать через RTrig
b8593427-7917-4c17-a926-7694d939e155
AbsSteps
25f628bb-19fc-47b3-a5c9-e3b95ca997d8
Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последенй позиции
98054e13-9c74-4d04-bede-871f2478e134
8e86d344-9473-4f19-8548-4591a220e880
Управление шаговым двигателем через контроллер А4988 mod
Блог ШагДвиг для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h
Входы:
FindEndSwitch - При true постоянно шагаем для поиска концевика по CCW, имеет больший приоритет перед EnSteps
SpeedEndSwitch - Скорость ШД для поиска концевика
EnSteps - при true начинаем шагать
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения
CCW - true крутить по часовой, иначе против
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
AbsSteps - Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последенй позиции
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
if (FindEndSwitch) {Stepper.setSpeed(SpeedEndSwitch*(CCW ? -1 : 1)); Stepper.runSpeed()}
else{
if (EnSteps) {
SetStepperMaxSpeed(Speed);
SetStepperAcceleration(Acceleration);
if (AbsSteps) {StepperMoveA(Steps*(CCW ? -1 : 1));}
else {StepperMove(Steps*(CCW ? -1 : 1));}
}
Ready = !Stepper.run();
Position = Stepper.currentPosition();
if (SetZeroPosition) {Stepper.setCurrentPosition(0);}
}
Stepper.move(Distance);
void
StepperMove
long
Distance
Stepper.moveTo(AStep);
void
StepperMoveA
long
AStep
Continuous01
SpeedContinuous01
SetZeroPosition01
EnSteps01
на переднем фронте начинаем шагать, использовать через RTrig
MaxSpeed01
Acceleration01
Steps01
CCW01
Против часовой стрелки
AbsSteps01
ШагДвиг_mod_INT_v2
Continuous
SpeedContinuous
MaxSpeed
StopAccel
feb8597c-6c86-4cf8-a3f6-33b79fea3e86
Остановка с использованием текущей скорости и ускорения
e63ef32a-1278-4528-be56-9a9bd875735c
a3ce2693-d1c9-40a7-a191-f8250fdb2d78
ШагДвиг_mod (step/dir) INT
Блог ШагДвиг для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последеней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
period
Период прерывания, мкс, Менять Оторожно
41695f6c-ad2c-4843-8dc1-d29c1575da1b
761f7340-3f25-42dd-a366-852384a4cbf5
if (SetZeroPosition) {Stepper.setCurrentPosition(0);}
if (Continuous) {
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
if (curSpeed != SpeedContinuous) {
Stepper.setSpeed(SpeedContinuous*(CCW ? -1 : 1));
curSpeed = SpeedContinuous;
}}
else{
if (EnSteps) {
noInterrupts();
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
if (curAcceleration != Acceleration) {
Stepper.setAcceleration(Acceleration);
curAcceleration = Acceleration;
}
if (AbsSteps) {Stepper.moveTo(Steps*(CCW ? -1 : 1));}
else {Stepper.move(Steps*(CCW ? -1 : 1));}
interrupts();
}
if (StopAccel) {Stepper.stop;}
}
Position = Stepper.currentPosition();
Timer1.initialize( period ); // инициализация таймера 1,
Timer1.attachInterrupt ( timerInterrupt, period ); // задаем обработчик прерываний
Stepper.setMinPulseWidth(lengthPulse);
#include
<TimerOne.h>
#include
<AccelStepper.h>
Длительность испульса, вставлять больше 100 крайне не рекомендуется
#define
lengthPulse
10
1 - режим "external driver" (A4988)
Stepper
(1, Step, Dir);
AccelStepper
curSpeed
= 0;
int
curMaxSpeed
= 0;
int
curAcceleration
= 0;
int
if (Continuous) {Ready = Stepper.runSpeed();}
else Ready = !Stepper.run();
void
timerInterrupt
StopAccel01
Ready01
Position01
ac497bc2-5f8d-4455-b5d4-6243a59f66dd
ШД1_v1.3
Блок ШД1 для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
Step01
6
Dir01
if (curMaxSpeed01 != MaxSpeed01) {
Stepper01.setMaxSpeed(MaxSpeed01);
curMaxSpeed01 = MaxSpeed01;}
if (curAcceleration01 != Acceleration01) {
Stepper01.setAcceleration(Acceleration01);
curAcceleration01 = Acceleration01;}
if (curCCW01 != CCW01) {curCCW01 = CCW01;}
if (curSpeed01 != SpeedContinuous01) {
Stepper01.setSpeed(SpeedContinuous01*(curCCW01 ? -1 : 1));
curSpeed01 = SpeedContinuous01;}
if (SetZeroPosition01) {Stepper01.setCurrentPosition(0); curSpeed01=0; }
if (Continuous01) { curSpeed01=0;}
else{
if (EnSteps01) {
if (AbsSteps01) {Stepper01.moveTo(Steps01*(curCCW01 ? -1 : 1));}
else {Stepper01.move(Steps01*(curCCW01 ? -1 : 1));}
}
if (StopAccel01) {Stepper01.stop();}
}
Position01 = Stepper01.currentPosition();
745
Stepper01.setMinPulseWidth(lengthPulse);
1 - режим "external driver" (A4988)
Stepper01
(1, Step01, Dir01);
AccelStepper
curSpeed01
= 0;
int
curMaxSpeed01
= 0;
int
curAcceleration01
= 0;
int
curCCW01
=false;
bool
EnSteps01temp
= false;
bool
ШД основной для 5х ШД v1.3
f40b99b6-c448-40b4-bb17-020664aea28a
ШД основной для 5х ШД v1.3
Блок ШД для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Основной блок для управления одним ШД
Совместно использовать с блоком ШД1
Timer1.initialize( period ); // инициализация таймера 1,
Timer1.attachInterrupt ( timerInterrupt, period ); // задаем обработчик прерываний
143
#include
<TimerOne.h>
#include
<AccelStepper.h>
Длительность испульса, вставлять больше 100 крайне не рекомендуется
#define
lengthPulse
10
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
Ready03 = true;
if (Continuous03) {Ready03 = false; Stepper03.runSpeed();}
if (EnSteps03) {EnSteps03temp = true;}
if (EnSteps03temp)
{Ready03 = !Stepper03.run();
EnSteps03temp = !Ready03;}
Ready04 = true;
if (Continuous04) {Ready04 = false; Stepper04.runSpeed();}
if (EnSteps04) {EnSteps04temp = true;}
if (EnSteps04temp)
{Ready04 = !Stepper04.run();
EnSteps04temp = !Ready04;}
Ready05 = true;
if (Continuous05) {Ready05 = false; Stepper05.runSpeed();}
if (EnSteps05) {EnSteps05temp = true;}
if (EnSteps05temp)
{Ready05 = !Stepper05.run();
EnSteps05temp = !Ready05;}
1005
ШД основной для 4х ШД v1.3
c3794d9e-6819-4295-ac9b-9ee67111663c
ШД основной для 4х ШД v1.3
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
Ready03 = true;
if (Continuous03) {Ready03 = false; Stepper03.runSpeed();}
if (EnSteps03) {EnSteps03temp = true;}
if (EnSteps03temp)
{Ready03 = !Stepper03.run();
EnSteps03temp = !Ready03;}
Ready04 = true;
if (Continuous04) {Ready04 = false; Stepper04.runSpeed();}
if (EnSteps04) {EnSteps04temp = true;}
if (EnSteps04temp)
{Ready04 = !Stepper04.run();
EnSteps04temp = !Ready04;}
804
ШД основной для 3х ШД v1.3
2b6d56d2-b130-4570-a6c2-69e31adae4c1
ШД основной для 3х ШД v1.3
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
Ready03 = true;
if (Continuous03) {Ready03 = false; Stepper03.runSpeed();}
if (EnSteps03) {EnSteps03temp = true;}
if (EnSteps03temp)
{Ready03 = !Stepper03.run();
EnSteps03temp = !Ready03;}
603
ШД основной для 2х ШД v1.3
2a034ce6-688f-4b15-aa1a-654bfe5e9a92
ШД основной для 2х ШД v1.3
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
403
ШД основной для 1х ШД v1.3
706e369e-d7df-449d-a828-3a6b553ea523
ШД основной для 1х ШД v1.3
Блок ШД для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Основной блок для управления одним ШД
Совместно использовать с блоком ШД1
period
Период прерывания, мкс, Менять Оторожно
41695f6c-ad2c-4843-8dc1-d29c1575da1b
761f7340-3f25-42dd-a366-852384a4cbf5
Timer1.initialize( period ); // инициализация таймера 1,
Timer1.attachInterrupt ( timerInterrupt, period ); // задаем обработчик прерываний
#include
<TimerOne.h>
#include
<AccelStepper.h>
Длительность импульса, вставлять больше 100 крайне не рекомендуется
#define
lengthPulse
10
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
void
timerInterrupt
ШД основной для 6х ШД v1.3
3a4a04be-85a8-4273-a9fe-e3a0ad5c4307
ШД основной для 6х ШД v1.3
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
Ready03 = true;
if (Continuous03) {Ready03 = false; Stepper03.runSpeed();}
if (EnSteps03) {EnSteps03temp = true;}
if (EnSteps03temp)
{Ready03 = !Stepper03.run();
EnSteps03temp = !Ready03;}
Ready04 = true;
if (Continuous04) {Ready04 = false; Stepper04.runSpeed();}
if (EnSteps04) {EnSteps04temp = true;}
if (EnSteps04temp)
{Ready04 = !Stepper04.run();
EnSteps04temp = !Ready04;}
Ready05 = true;
if (Continuous05) {Ready05 = false; Stepper05.runSpeed();}
if (EnSteps05) {EnSteps05temp = true;}
if (EnSteps05temp)
{Ready05 = !Stepper05.run();
EnSteps05temp = !Ready05;}
Ready06 = true;
if (Continuous06) {Ready06 = false; Stepper06.runSpeed();}
if (EnSteps06) {EnSteps06temp = true;}
if (EnSteps06temp)
{Ready06 = !Stepper06.run();
EnSteps06temp = !Ready06;}
1206
ШД1_v1.3_UNI
ШагДвиг_mod
FindEndSwitch
3dd2a884-0b23-4cb1-a919-c8fcdd913331
При true постоянно шагаем для поиска концевика по CCW
dd7e7512-0e44-4b12-a3f1-2bfb7f9fd8e0
SpeedEndSwitch
0da09e76-9abd-4209-8994-3906b4e99e09
Скорость ШД для поиска концевика
e8002159-6d09-4b1f-97de-6f287b7a5e9f
ШагДвиг Установка
En
22502748-2126-49f6-a695-bae1e55d0464
3d062544-2c05-4514-9cbe-cbdff30ee30f
MaxSpeed
b4f1be77-2577-4f2d-8375-3e1ea4216d92
Максимальная скорость вращения ротора двигателя (шагов/секунду)
d146d221-19f1-4a4d-b6ca-5801a5a3af91
Acceleration
12308427-b97e-437d-bd1c-aee97865b6ec
Ускорение вращения (шагов/секунду^2)
e0c65a93-e82f-4d23-a7a7-679313d04991
c4e4c49d-0b43-4310-82ce-026db0767636
Установка параметров шагового двигателя
Step
Пин управления шагами контроллера
66f1483d-3159-450f-8e82-e654741e6c57
8bc42495-0960-4300-adb7-22efc1573ceb
Dir
Пин направления вращения контроллера
c31d485e-f907-4651-bd19-51f5b0a023b8
72abb887-5e2a-4587-aebd-f3908812b2a9
If (En) {
Stepper1.setMaxSpeed(MaxSpeed);
Stepper1.setAcceleration(Acceleration);
}
1 - режим "external driver" (A4988)
Stepper1
(1, Step, Dir);
AccelStepper
EnSteps
Speed
Acceleration
ШагДвиг
En
Скорость
Ускорение
Шагов
4b139470-65a1-49a3-8a95-6418d90824c2
Количество шагов, которые должен сделать двигатель
011babd7-655e-464f-b4be-4f06bf7e3d31
Готов
f75858a5-7f06-4bf0-9caa-3515dd3118a4
Двигатель закончил движение
d1e9f08d-ba11-403b-8751-573ef2a3a8cb
198f8292-fe38-4914-8ded-a59a71b45bbe
Управление шаговым двигателем через контроллер А4988
If (En) {
SetStepperMaxSpeed(Скорость);
SetStepperAcceleration(Ускорение);
StepperMove(Шагов);
}
Готов = Stepper.distanceToGo() == 0;
Stepper.run();
#include
<AccelStepper.h>
1 - режим "external driver" (A4988)
Stepper
(1, Step, Dir);
AccelStepper
curMaxSpeed
= 0;
int
curAcceleration
= 0;
int
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
void
SetStepperMaxSpeed
int
MaxSpeed
if (curAcceleration != Acceleration) {
Stepper.setAcceleration(Acceleration);
curAcceleration = Acceleration;
}
void
SetStepperAcceleration
int
Acceleration
Stepper.move(Distance);
void
StepperMove
int
Distance
Steps
CCW
1749a012-0c84-41fa-bf04-5a19d56a9907
По часовой стрелке
385bd673-ed11-4ff5-b385-63a75de09b57
Ready
Позиция
3e95bd51-7ae3-449f-9b9d-986ce8be7e53
Текущая позиция двигателя
0d87726d-d3cb-406f-b42d-bc70bcf6c19c
0681950a-4e83-4f02-b52f-192689d207f9
If (En) {
SetStepperMaxSpeed(Скорость);
SetStepperAcceleration(Ускорение);
StepperMove(Шагов);
}
Готов = !Stepper.run();
Позиция = Stepper.currentPosition();
Position
0eeb9b7f-900c-46d1-bb27-99aec13d1572
if (En) {
SetStepperMaxSpeed(Speed);
SetStepperAcceleration(Acceleration);
StepperMove(Steps*(CCW ? 1 : -1));
}
Ready = !Stepper.run();
Position = Stepper.currentPosition();
Stepper.move(Distance);
SetZeroPosition
60c5b2c1-55c8-41ea-a856-60fc36f95afe
Установка начальной позиции в 0. Использовать через RTrig
b8593427-7917-4c17-a926-7694d939e155
AbsSteps
25f628bb-19fc-47b3-a5c9-e3b95ca997d8
Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последенй позиции
98054e13-9c74-4d04-bede-871f2478e134
8e86d344-9473-4f19-8548-4591a220e880
Управление шаговым двигателем через контроллер А4988 mod
Блог ШагДвиг для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h
Входы:
FindEndSwitch - При true постоянно шагаем для поиска концевика по CCW, имеет больший приоритет перед EnSteps
SpeedEndSwitch - Скорость ШД для поиска концевика
EnSteps - при true начинаем шагать
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения
CCW - true крутить по часовой, иначе против
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
AbsSteps - Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последенй позиции
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
if (FindEndSwitch) {Stepper.setSpeed(SpeedEndSwitch*(CCW ? -1 : 1)); Stepper.runSpeed()}
else{
if (EnSteps) {
SetStepperMaxSpeed(Speed);
SetStepperAcceleration(Acceleration);
if (AbsSteps) {StepperMoveA(Steps*(CCW ? -1 : 1));}
else {StepperMove(Steps*(CCW ? -1 : 1));}
}
Ready = !Stepper.run();
Position = Stepper.currentPosition();
if (SetZeroPosition) {Stepper.setCurrentPosition(0);}
}
Stepper.move(Distance);
void
StepperMove
long
Distance
Stepper.moveTo(AStep);
void
StepperMoveA
long
AStep
Continuous01
SpeedContinuous01
SetZeroPosition01
EnSteps01
на переднем фронте начинаем шагать, использовать через RTrig
MaxSpeed01
Acceleration01
Steps01
CCW01
Против часовой стрелки
AbsSteps01
ШагДвиг_mod_INT_v2
Continuous
SpeedContinuous
MaxSpeed
StopAccel
feb8597c-6c86-4cf8-a3f6-33b79fea3e86
Остановка с использованием текущей скорости и ускорения
e63ef32a-1278-4528-be56-9a9bd875735c
a3ce2693-d1c9-40a7-a191-f8250fdb2d78
ШагДвиг_mod (step/dir) INT
Блог ШагДвиг для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абосютным координатам от нулевой позиции, иначе идем относительно последеней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
period
Период прерывания, мкс, Менять Оторожно
41695f6c-ad2c-4843-8dc1-d29c1575da1b
761f7340-3f25-42dd-a366-852384a4cbf5
if (SetZeroPosition) {Stepper.setCurrentPosition(0);}
if (Continuous) {
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
if (curSpeed != SpeedContinuous) {
Stepper.setSpeed(SpeedContinuous*(CCW ? -1 : 1));
curSpeed = SpeedContinuous;
}}
else{
if (EnSteps) {
noInterrupts();
if (curMaxSpeed != MaxSpeed) {
Stepper.setMaxSpeed(MaxSpeed);
curMaxSpeed = MaxSpeed;
}
if (curAcceleration != Acceleration) {
Stepper.setAcceleration(Acceleration);
curAcceleration = Acceleration;
}
if (AbsSteps) {Stepper.moveTo(Steps*(CCW ? -1 : 1));}
else {Stepper.move(Steps*(CCW ? -1 : 1));}
interrupts();
}
if (StopAccel) {Stepper.stop;}
}
Position = Stepper.currentPosition();
Timer1.initialize( period ); // инициализация таймера 1,
Timer1.attachInterrupt ( timerInterrupt, period ); // задаем обработчик прерываний
Stepper.setMinPulseWidth(lengthPulse);
#include
<TimerOne.h>
#include
<AccelStepper.h>
Длительность испульса, вставлять больше 100 крайне не рекомендуется
#define
lengthPulse
10
1 - режим "external driver" (A4988)
Stepper
(1, Step, Dir);
AccelStepper
curSpeed
= 0;
int
curMaxSpeed
= 0;
int
curAcceleration
= 0;
int
if (Continuous) {Ready = Stepper.runSpeed();}
else Ready = !Stepper.run();
void
timerInterrupt
StopAccel01
DisableOutputs
13727cce-546b-4faf-85bd-aef68f0afc56
Снять напряжение с обмоток ШД
c14c9329-1052-4b70-8179-9804d9e6ec14
Ready01
Position01
cbf4670b-7f06-4185-af57-59d803917b55
ШД1_v1.3_UNI
Блок ШД1 для управления ШД через драйвер типа А4988 и пр.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек
Acceleration - Ускорение шаг/сек2
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
IN1
2
Пин для подключения ШД
9f6f0df5-1ac4-468e-9565-04d8e913957f
6f05eb4a-9450-4aa2-9820-6dad686be572
IN2
3
Пин для подключения ШД
e21234ec-4e5c-4551-90d5-44ecc6227d1f
ac1cef2d-250a-4493-9898-a0ccc2d21e32
IN3
4
Пин для подключения ШД
9c710b24-beb1-4dd9-a16e-042de005ae39
d8529079-db84-4e86-a7bf-b5373846240d
IN4
5
Пин для подключения ШД
b0da95bf-e5bf-44f7-b43e-482c775e5af7
d6a90014-31e1-4e7c-a0c8-74b8f2ebab36
Full-4_Half-8
Для полношагового режима указать 4, для полушагового указать 8
1a1f50fa-24a3-43c6-89b3-0e8ec8a2923f
8
414c40d7-945c-4351-8942-63dc7d1458ff
if (DisableOutputs) Stepper01.disableOutputs();
if (curMaxSpeed01 != MaxSpeed01) {
Stepper01.setMaxSpeed(MaxSpeed01);
curMaxSpeed01 = MaxSpeed01;}
if (curAcceleration01 != Acceleration01) {
Stepper01.setAcceleration(Acceleration01);
curAcceleration01 = Acceleration01;}
if (curCCW01 != CCW01) {curCCW01 = CCW01;}
if (curSpeed01 != SpeedContinuous01) {
Stepper01.setSpeed(SpeedContinuous01*(curCCW01 ? -1 : 1));
curSpeed01 = SpeedContinuous01;}
if (SetZeroPosition01) {Stepper01.setCurrentPosition(0); curSpeed01=0; }
if (Continuous01) { curSpeed01=0;}
else{
if (EnSteps01) {
if (AbsSteps01) {Stepper01.moveTo(Steps01*(curCCW01 ? -1 : 1));}
else {Stepper01.move(Steps01*(curCCW01 ? -1 : 1));}
}
if (StopAccel01) {Stepper01.stop();}
}
Position01 = Stepper01.currentPosition();
795
Stepper01.setMinPulseWidth(lengthPulse);
4 - режим Full, 8 - Half
Stepper01
(Full-4_Half-8, IN1, IN3, IN2, IN4);
AccelStepper
curSpeed01
= 0;
int
curMaxSpeed01
= 0;
int
curAcceleration01
= 0;
int
curCCW01
=false;
bool
EnSteps01temp
= false;
bool
8f0fdf92-e176-4f25-9c6b-d0a7ec3d97f0
Блок ШД1 для управления ШД через драйвер типа ULN2003 и подобных.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек, если не указать по умолчанию 1
Acceleration - Ускорение шаг/сек2, если не указать по умолчанию 1
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
DisableOutputs - через Rtrig, Снять напряжение с обмоток ШД
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
1193
ШД DUE основной для 2х ШД v1.3
df885d31-8c4a-4320-8a7f-c11a8e7f5917
ШД DUE основной для 2х ШД v1.3
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
401
ШД DUE основной для 3х ШД v1.3
5291e930-e4b6-44cc-a891-336fc6443192
ШД DUE основной для 3х ШД v1.3
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
Ready03 = true;
if (Continuous03) {Ready03 = false; Stepper03.runSpeed();}
if (EnSteps03) {EnSteps03temp = true;}
if (EnSteps03temp)
{Ready03 = !Stepper03.run();
EnSteps03temp = !Ready03;}
602
ШД DUE основной для 4х ШД v1.3
92917d0f-bc4a-4d4e-aaa9-bb8bc8617fdd
ШД DUE основной для 4х ШД v1.3
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
Ready03 = true;
if (Continuous03) {Ready03 = false; Stepper03.runSpeed();}
if (EnSteps03) {EnSteps03temp = true;}
if (EnSteps03temp)
{Ready03 = !Stepper03.run();
EnSteps03temp = !Ready03;}
Ready04 = true;
if (Continuous04) {Ready04 = false; Stepper04.runSpeed();}
if (EnSteps04) {EnSteps04temp = true;}
if (EnSteps04temp)
{Ready04 = !Stepper04.run();
EnSteps04temp = !Ready04;}
803
ШД DUE основной для 5х ШД v1.3
f0c36cac-c026-4239-a84a-ed32f3cb9e02
ШД DUE основной для 5х ШД v1.3
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
Ready03 = true;
if (Continuous03) {Ready03 = false; Stepper03.runSpeed();}
if (EnSteps03) {EnSteps03temp = true;}
if (EnSteps03temp)
{Ready03 = !Stepper03.run();
EnSteps03temp = !Ready03;}
Ready04 = true;
if (Continuous04) {Ready04 = false; Stepper04.runSpeed();}
if (EnSteps04) {EnSteps04temp = true;}
if (EnSteps04temp)
{Ready04 = !Stepper04.run();
EnSteps04temp = !Ready04;}
Ready05 = true;
if (Continuous05) {Ready05 = false; Stepper05.runSpeed();}
if (EnSteps05) {EnSteps05temp = true;}
if (EnSteps05temp)
{Ready05 = !Stepper05.run();
EnSteps05temp = !Ready05;}
1004
ШД DUE основной для 6х ШД v1.3
ffdd28d4-b48b-4798-aecf-86ab676b353e
ШД DUE основной для 6х ШД v1.3
Ready01 = true;
if (Continuous01) {Ready01 = false; Stepper01.runSpeed();}
if (EnSteps01) {EnSteps01temp = true;}
if (EnSteps01temp)
{Ready01 = !Stepper01.run();
EnSteps01temp = !Ready01;}
Ready02 = true;
if (Continuous02) {Ready02 = false; Stepper02.runSpeed();}
if (EnSteps02) {EnSteps02temp = true;}
if (EnSteps02temp)
{Ready02 = !Stepper02.run();
EnSteps02temp = !Ready02;}
Ready03 = true;
if (Continuous03) {Ready03 = false; Stepper03.runSpeed();}
if (EnSteps03) {EnSteps03temp = true;}
if (EnSteps03temp)
{Ready03 = !Stepper03.run();
EnSteps03temp = !Ready03;}
Ready04 = true;
if (Continuous04) {Ready04 = false; Stepper04.runSpeed();}
if (EnSteps04) {EnSteps04temp = true;}
if (EnSteps04temp)
{Ready04 = !Stepper04.run();
EnSteps04temp = !Ready04;}
Ready05 = true;
if (Continuous05) {Ready05 = false; Stepper05.runSpeed();}
if (EnSteps05) {EnSteps05temp = true;}
if (EnSteps05temp)
{Ready05 = !Stepper05.run();
EnSteps05temp = !Ready05;}
Ready06 = true;
if (Continuous06) {Ready06 = false; Stepper06.runSpeed();}
if (EnSteps06) {EnSteps06temp = true;}
if (EnSteps06temp)
{Ready06 = !Stepper06.run();
EnSteps06temp = !Ready06;}
1205
ШД2_v1.3_UNI
Continuous02
SpeedContinuous02
SetZeroPosition02
EnSteps02
MaxSpeed02
Acceleration02
Steps02
CCW02
AbsSteps02
StopAccel02
DisableOutputs2
Ready02
Position02
f25001d9-01a4-4f56-bdf1-31a11f2b8ab1
ШД2_v1.3_UNI
Блок ШД2 для управления ШД через драйвер типа ULN2003 и подобных.
модификация AlexCrane, 2019
Работает на библиотеке AccelStepper.h и TimerOne.h
http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Входы:
Continuous - При true постоянно шагаем, имеет больший приоритет перед EnSteps
SpeedContinuous - Скорость ШД для "постоянно шагаем"
Эти два входа можно использовать для поиска концевика и просто чтобы покрутить двигателем, но без ускорений
SetZeroPosition - Установка начальной позиции в 0. Использовать через RTrig
EnSteps - при переднем фронте начинаем шагать. Использовать через RTrig
Speed - Максимальная скорость шаг/сек, если не указать по умолчанию 1
Acceleration - Ускорение шаг/сек2, если не указать по умолчанию 1
Steps - Количество шагов для выполнения (hint: можно и отрицательные)
CCW - true крутить против часовой, иначе по
AbsSteps - Если true то шагаем по абсолютным координатам от нулевой позиции, иначе идем относительно последней позиции
StopAccel - Остановка с использованием текущей скорости и ускорения
DisableOutputs - через Rtrig, Снять напряжение с обмоток ШД
Выходы:
Ready - true двигатель закончил движение
Position - Текущая позиция двигателя
if (DisableOutputs2) Stepper02.disableOutputs();
if (curMaxSpeed02 != MaxSpeed02) {
Stepper02.setMaxSpeed(MaxSpeed02);
curMaxSpeed02 = MaxSpeed02;}
if (curAcceleration02 != Acceleration02) {
Stepper02.setAcceleration(Acceleration02);
curAcceleration02 = Acceleration02;}
if (curCCW02 != CCW02) {curCCW02 = CCW02;}
if (curSpeed02 != SpeedContinuous02) {
Stepper02.setSpeed(SpeedContinuous02*(curCCW02 ? -1 : 1));
curSpeed02 = SpeedContinuous02;}
if (SetZeroPosition02) {Stepper02.setCurrentPosition(0); curSpeed02=0; }
if (Continuous02) { curSpeed02=0;}
else{
if (EnSteps02) {
if (AbsSteps02) {Stepper02.moveTo(Steps02*(curCCW02 ? -1 : 1));}
else {Stepper02.move(Steps02*(curCCW02 ? -1 : 1));}
}
if (StopAccel02) {Stepper02.stop();}
}
Position02 = Stepper02.currentPosition();
796
Stepper02.setMinPulseWidth(lengthPulse);
4 - режим Full, 8 - Half
Stepper02
(Full-4_Half-8, IN1, IN3, IN2, IN4);
AccelStepper
curSpeed02
= 0;
int
curMaxSpeed02
= 0;
int
curAcceleration02
= 0;
int
curCCW02
=false;
bool
EnSteps02temp
= false;
bool
ШД AlexCrane v1.3
d643677d-138a-428f-a210-f6273538d71a