Шаговый двигатель 28BYJ-48: различия между версиями
(ещё буду править.) |
Нет описания правки |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 17: | Строка 17: | ||
* Номинальная скорость вращения – 15 оборот/мин; | * Номинальная скорость вращения – 15 оборот/мин; | ||
* Крутящий момент – 450 г*см; | * Крутящий момент – 450 г*см; | ||
* Размеры (диаметр,высота) –25x18 мм; | * Размеры (диаметр, высота) –25x18 мм; | ||
* Вес – 40 грамм. | *Вес – 40 грамм. | ||
== Распиновка шагового двигателя 28BYJ-48 == | ==Распиновка шагового двигателя 28BYJ-48== | ||
[[Файл:Stepper-motor-28BYJ-48-02.jpg|мини|301x301пкс|Принципиальная схема шагового двигателя 28BYJ-48.]] | [[Файл:Stepper-motor-28BYJ-48-02.jpg|мини|301x301пкс|Принципиальная схема шагового двигателя 28BYJ-48.]] | ||
Строка 28: | Строка 28: | ||
Остальные пины управляют фазами двигателя | Остальные пины управляют фазами двигателя | ||
* A-orange – Фаза A оранжевый проводок; | *'''A-orange''' – Фаза A оранжевый проводок; | ||
* yellow – Фаза A жёлтый проводок; | *'''B-yellow''' – Фаза A жёлтый проводок; | ||
* C-pink – Фаза A розовый проводок; | *'''C-pink''' – Фаза A розовый проводок; | ||
* D-blue – Фаза A голубой проводок; | *'''D-blue''' – Фаза A голубой проводок; | ||
== Режимы работы шагового двигателя 28BYJ-48 == | ==Режимы работы шагового двигателя 28BYJ-48== | ||
Для управления шаговым двигателем 28BYJ 48 используют один из двух режимов подключения. | Для управления шаговым двигателем 28BYJ 48 используют один из двух режимов подключения. | ||
1)полношаговый режим – 4 ступени импульсов на 1 шаг; | 1)полношаговый режим – 4 ступени импульсов на 1 шаг; | ||
[[Файл:Полношаговый1.jpg|центр|мини|385x385пкс|фазы шагового двигателя в полношаговом режиме.]] | [[Файл:Полношаговый1.jpg|центр|мини|385x385пкс|фазы шагового двигателя в полношаговом режиме.]] | ||
{| class="wikitable" | |||
|+ | |||
! rowspan="2" |Пины | |||
! colspan="4" |Такты | |||
|- | |||
!'''1''' | |||
!'''2''' | |||
!'''3''' | |||
!'''4''' | |||
|- | |||
!A-orange | |||
!1 | |||
!0 | |||
!0 | |||
!1 | |||
|- | |||
|'''B-yellow''' | |||
|0 | |||
|1 | |||
|1 | |||
|0 | |||
|- | |||
|'''C-pink''' | |||
|1 | |||
|1 | |||
|0 | |||
|0 | |||
|- | |||
|'''D-blue''' | |||
|0 | |||
|0 | |||
|1 | |||
|1 | |||
|} | |||
2)полушаговый режим – 8 ступеней импульсов на 1 шаг. | 2)полушаговый режим – 8 ступеней импульсов на 1 шаг. | ||
[[Файл:Полушаговый1.jpg|центр|мини|639x639пкс|фазы шагового двигателя полушаговом режиме.]] | [[Файл:Полушаговый1.jpg|центр|мини|639x639пкс|фазы шагового двигателя полушаговом режиме.]] | ||
{| class="wikitable" | |||
! rowspan="2" |Пины | |||
! colspan="8" |Такты | |||
|- | |||
!'''1''' | |||
!'''2''' | |||
!'''3''' | |||
!'''4''' | |||
! 5 | |||
! 6 | |||
! 7 | |||
! 8 | |||
|- | |||
!A-orange | |||
!1 | |||
!1 | |||
!0 | |||
!0 | |||
!0 | |||
!0 | |||
!0 | |||
!1 | |||
|- | |||
|'''B-yellow''' | |||
| 0 | |||
| 0 | |||
| 0 | |||
| 1 | |||
| 1 | |||
| 1 | |||
| 0 | |||
| 0 | |||
|- | |||
|'''C-pink''' | |||
| 0 | |||
| 1 | |||
| 1 | |||
| 1 | |||
| 0 | |||
| 0 | |||
| 0 | |||
| 0 | |||
|- | |||
|'''D-blue''' | |||
| 0 | |||
| 0 | |||
| 0 | |||
| 0 | |||
| 0 | |||
| 1 | |||
| 1 | |||
| 1 | |||
|} | |||
== Подключение шагового двигателя 28BYJ-48 к плате Arduino uno. == | ==Подключение шагового двигателя 28BYJ-48 к плате Arduino uno.== | ||
Драйвер двигателя состоит из 7 пар транзисторов Дарлингтона и является усилителем. Выводы IN1 – IN7 предназначены для подключения к микроконтроллеру, GND и VCC – для питания шагового двигателя. Схема подключения драйвера к плате Arduino показана на рисунке. | Драйвер двигателя состоит из 7 пар транзисторов Дарлингтона и является усилителем. Выводы IN1 – IN7 предназначены для подключения к микроконтроллеру, GND и VCC – для питания шагового двигателя. Схема подключения драйвера к плате Arduino показана на рисунке. | ||
[[Файл:Схема подключения двигателя к Arduino uno.jpg|центр|мини|463x463пкс|Схема подключения 28BYJ-48 к Arduino uno]] | [[Файл:Схема подключения двигателя к Arduino uno.jpg|центр|мини|463x463пкс|Схема подключения 28BYJ-48 к Arduino uno]] | ||
[[Файл:Внешний вид макета шагового двигателя 28BYJ-48.jpg|центр|мини|379x379пкс|шагового двигателя 28BYJ-48]] | [[Файл:Внешний вид макета шагового двигателя 28BYJ-48.jpg|центр|мини|379x379пкс|шагового двигателя 28BYJ-48]] | ||
== Программа для шагового двигателя 28BYJ-48. == | ==Программа для шагового двигателя 28BYJ-48.== | ||
Программа, которая вращает мотор в одну сторону и, когда пройдено определённое число шагов изменяющий направление движения. | Программа, которая вращает мотор в одну сторону и, когда пройдено определённое число шагов изменяющий направление движения. | ||
<syntaxhighlight lang="c"> | |||
// подключение библиотеки | |||
#include <AccelStepper.h> | |||
// создаем экземпляр AccelStepper | |||
#define IN1 8 | |||
#define IN2 9 | |||
#define IN3 10 | |||
#define IN4 11 | |||
AccelStepper s28BYJ-48(8, IN1, IN3, IN2, IN4); | |||
void setup(){ | |||
s28BYJ-48.setMaxSpeed(900.0); | |||
s28BYJ-48.setAcceleration(100.0); | |||
s28BYJ-48.setSpeed(200); | |||
s28BYJ-48.moveTo(2000); | |||
} | |||
void loop(){ | |||
// Изменяем направление, если пройдено заданное число шагов | |||
if(s28BYJ-48.distanceToGo()==0) | |||
s28BYJ-48.moveTo(-stepper1.currentPosition()); | |||
s28BYJ-48.run(); | |||
} | |||
</syntaxhighlight> |
Текущая версия от 21:32, 11 мая 2022
Шаговые двигатели применяют в механических системах точного позиционирования – ЧПУ станках, 3d-принтерах, принтерах, роботах-манипуляторах. Шаговые двигатели преобразуют электрические импульсы в перемещение вала на определенный угол. Минимально возможный угол перемещения шагового двигателя, называется шагом.
В любительской робототехнике очень часто используют бюджетный шаговый двигатель 28BYJ-48, в комплекте с которым продается драйвер двигателя на микросхеме ULN2003, необходимый для подключения шагового двигателя к плате Arduino.
Спецификация шагового двигателя 28BYJ-48
- Тип: униполярный шаговый двигатель;
- Напряжение питания – 5В или 12В;
- Подключение: 5-выводов;
- Число фаз – 4;
- Диаметр вала: 5 мм;
- Коэффициент редукции – 1/63.68395;
- Количество шагов ротора – 64;
- Угол шага: 5.625° × 1: 64;
- Номинальная скорость вращения – 15 оборот/мин;
- Крутящий момент – 450 г*см;
- Размеры (диаметр, высота) –25x18 мм;
- Вес – 40 грамм.
Распиновка шагового двигателя 28BYJ-48
Red – Это общий пин;
Остальные пины управляют фазами двигателя
- A-orange – Фаза A оранжевый проводок;
- B-yellow – Фаза A жёлтый проводок;
- C-pink – Фаза A розовый проводок;
- D-blue – Фаза A голубой проводок;
Режимы работы шагового двигателя 28BYJ-48
Для управления шаговым двигателем 28BYJ 48 используют один из двух режимов подключения.
1)полношаговый режим – 4 ступени импульсов на 1 шаг;
Пины | Такты | |||
---|---|---|---|---|
1 | 2 | 3 | 4 | |
A-orange | 1 | 0 | 0 | 1 |
B-yellow | 0 | 1 | 1 | 0 |
C-pink | 1 | 1 | 0 | 0 |
D-blue | 0 | 0 | 1 | 1 |
2)полушаговый режим – 8 ступеней импульсов на 1 шаг.
Пины | Такты | |||||||
---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
A-orange | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
B-yellow | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
C-pink | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
D-blue | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Подключение шагового двигателя 28BYJ-48 к плате Arduino uno.
Драйвер двигателя состоит из 7 пар транзисторов Дарлингтона и является усилителем. Выводы IN1 – IN7 предназначены для подключения к микроконтроллеру, GND и VCC – для питания шагового двигателя. Схема подключения драйвера к плате Arduino показана на рисунке.
Программа для шагового двигателя 28BYJ-48.
Программа, которая вращает мотор в одну сторону и, когда пройдено определённое число шагов изменяющий направление движения.
// подключение библиотеки #include <AccelStepper.h> // создаем экземпляр AccelStepper #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 AccelStepper s28BYJ-48(8, IN1, IN3, IN2, IN4); void setup(){ s28BYJ-48.setMaxSpeed(900.0); s28BYJ-48.setAcceleration(100.0); s28BYJ-48.setSpeed(200); s28BYJ-48.moveTo(2000); } void loop(){ // Изменяем направление, если пройдено заданное число шагов if(s28BYJ-48.distanceToGo()==0) s28BYJ-48.moveTo(-stepper1.currentPosition()); s28BYJ-48.run(); }