ШД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