
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдкрдиреЗ arduino + nema 17 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЗрдВрдЬрди рд╢реБрд░реВ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рдЖрд╕рд╛рди, рд╢рд╛рдпрдж, рдиреЗрдорд╛рд╕реНрдЯреЗрдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдХрдИ рдмрд╛рд░ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд░реЛрдХ рдирд╣реАрдВ рдкрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреНрдп рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдПрдордЖрдИрдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдЕрдЪреНрдЫрд╛, рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рдХрдиреЗрдХреНрдЯ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред
рд╣рдо 500 рд░реВрдмрд▓ рдХреЗ рд▓рд┐рдП рдПрд▓рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рд╕рд░рд▓ рдиреЗрдорд╛ 17 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдПрд▓ 298 рдПрди рдЪрд╛рд▓рдХ рдФрд░ рдЕрд░рдбрд┐рдиреЛ рдЕрдиреЛред рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ:



- рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рдЪрд╛рд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдЖрд░реНрдбрд┐рдиреЛ рдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
- рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдиреЗрдорд╛ 17 рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдЗрд╕ рдкрд░ рдХрдИ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рддреЛ, рд╣рдо рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдореЛрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:


рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд╕реНрддреБ рдЙрдиреНрдореБрдЦ рд╣реИред рдЖрдЗрдП рдПрдХ рдореЛрдЯрд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:
NemaStepper Stepper1(2, 3, 4, 5, 200, 10, false); void Setup(){ Stepper1.SetStepCount(100);
рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд░реЛрдд рдХреЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЗрдбрд░ рдореЗрдВ рд╡рд┐рд╡рд░рдг рд╣реИ)ред
* рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред
рдФрд░ рдЕрдм рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг рд╣реИ (рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рд╡рд╣рд╛рдВ рдЕрдХреЗрд▓реЗ рд╣реИ), рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕реАрд░рд┐рдпрд▓ рдХреЗ рд╕рд╛рде рддреАрди рдореЛрдЯрд░реНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдЪрд▓реЛ рдЗрд╕реЗ рдЕрд▓рдЧ рд▓реЗ рдЬрд╛рдУред
рдЖрдЗрдП рд╣реЗрдбрд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ - рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА:
рдЕрдЧрд▓реЗ, рддреАрди рдореЛрдЯрд░реЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде:
1. рдкрд╣рд▓рд╛ рдкрд┐рди
2. рджреВрд╕рд░рд╛ рдкрд┐рди
3. рддреАрд╕рд░рд╛ рдкрд┐рди
4. рдЪреМрдерд╛ рдкрд┐рди
5. рдкреНрд░рддрд┐ рдХреНрд░рд╛рдВрддрд┐ рдХреЗ рдЪрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ - рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗрдорд╛ 17 рдЗрдВрдЬрди рдореЗрдВ 200 рд╣реИрдВред
6. рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЧрддрд┐
7. рдПрдХ рд╕рдВрдХреЗрдд рдЬреЛ рд░реЛрдХрдиреЗ рдХреЗ рдмрд╛рдж рд╢рд╛рдлреНрдЯ рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ (рдпрджрд┐ рд╕рдЪ рд╣реИ, рддреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдПрдХ рдмрд╛рд░рдмреЗрдХреНрдпреВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ)
NemaStepper Stepper1(2, 3, 4, 5, 200, 10, false); NemaStepper Stepper2(6, 7, 8, 9, 200, 10, false); NemaStepper Stepper3(10, 11, 12, 13, 200, 10, false);
рдЕрдЧрд▓рд╛ рдкреЛрд░реНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди:
void setup() { Serial.begin(9600); }
рдлрд┐рд░, рдорд╣рддреНрд╡рдкреВрд░реНрдг! рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ, рдЖрдкрдХреЛ рдЪрд░рдг () рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЗрдВрдЬрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
void loop() { if (IsStepperEnabled == true){ Stepper1.Step(); Stepper2.Step(); Stepper3.Step(); } GetCommandFromSerial(); }
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рд╕рдмрд░реВрдЯреАрди рд╣реИ рдЬреЛ рдкреЛрд░реНрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдореЛрдЯрд░реНрд╕ рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░рддрд╛ рд╣реИ, рдЧрддрд┐, рдмреНрд░реЗрдХ, рд░реЛрдЯреЗрд╢рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
void GetCommandFromSerial() { if (Serial.available() > 0) {
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдмреЛрд░реНрдб рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдбрд╛рдЙрдирд▓реЛрдб?
рдлрд┐рд░ рд╣рдо рдкреЛрд░реНрдЯ рдореЙрдирд┐рдЯрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рд╕реЗ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рдЖрджреЗрд╢ / рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рддреАрди рдЕрдХреНрд╖рд░ рдЯреАрдо рдХреЗ рдирд╛рдо рд╣реИрдВред
рдирд╛рдо рдФрд░ / - рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмреАрдЪред
рдЪрд▓реЛ рдореЛрдЯрд░реНрд╕ рдХреЛ "рдИрдПрдордПрд╕ /" (рдореЛрдЯрд░реНрд╕ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ) рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЪрд╛рд▓реВ рдХрд░реЗрдВред
рддрдм рд╣рдо рдХрдорд╛рдВрдб "SS160 /" (рд╕реЗрдЯ рд╕реНрдкреАрдб) рдХреЗ рд╕рд╛рде рдореЛрдЯрд░ 1 рд╕реНрдкреАрдб 60 рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдВ 60 рдХреА рдЧрддрд┐ рд╣реИред
рдФрд░ рдЕрдВрдд рдореЗрдВ, "MV1100 /", (MoVe) рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдореЛрдЯрд░ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ 100 рдХреНрд░рд╛рдВрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред
рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрд░ред
рдмрд╛рдХреА рдореЛрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рд╣реИред
рдЦреИрд░, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╣рд╛рдВ рд╕реЗ рд▓рд╛рдПрдВред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрдХрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреАрдордд рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реБрдП:
NemaStepper рдЬрд╛рдУрдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд▓реЗрдЦ рдиреЗ рдЖрдкрдХреА рдорджрдж рдХреАред
рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХреА, рддреЛ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдЙрдкрдпреБрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рдХрд▓рд╛ред