Синяя плата ULN2003, плата драйвера шагового двигателя + комплект четырехфазного пятипроводного двигателя 5 В для шагового двигателя

Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.
Описание товара
- Информация о товаре
- Фотографии
Список доставки:
ULN2003 Модуль x 1
5 В 4 фазы 5 Линия 28byj-48 Новый шаг в мотор 
Скачать здесь, чтобы скачать:https://pan.baidu.com/s/1gfjd1kRЗагрузите код на плату управления Arduino и посмотрите эффект.
- /*
- * Шаговый двигатель вращается вслед за потенциометром
- * (или другие датчики) используют аналоговый порт 0 для ввода
- * Используйте файл библиотеки Stepper.h, который поставляется с arduino IDE.
- */
-
- #include<Stepper.h>
-
- // Здесь задаем количество шагов за один оборот шагового двигателя
- #define STEPS 100
-
- // прилагается для установки количества шагов и контактов шагового двигателя
- Stepper stepper(STEPS, 8, 9, 10, 11);
-
- //Определяем переменные для хранения исторических показаний
- int previous = 0;
-
- void setup()
- {
- //Устанавливаем скорость двигателя в минуту на 90 шагов
- stepper.setSpeed(90);
- }
-
- void loop()
- {
- // Получаем показания датчика
- int val = analogRead(0);
-
- //Количество шагов движения равно текущему показанию минус историческое значение
- stepper.step(val - previous);
-
- //Сохраняем исторические показания
- previous = val;
- }
————————————————————————————————————————————————————————————
Реализация программы шагового двигателя
▼
Когда микроконтроллер управляет вращением шагового двигателя, выводы микроконтроллера должны отправлять импульсы упорядоченным образом.Шаговый двигатель 28BYJ-48 имеет четыре фазы и требует четырех контактов для управления.Далее мы напишем элементы управления микроконтроллера 51 и STM32 соответственно.Код программы C для шагового двигателя 28BYJ-48.
51 микроконтроллер:
При использовании микроконтроллера STC15F104E контакты управления шаговым двигателем — это P3.2, P3.3, P3.4 и P3.5.
void StepperMotor (битовый флаг, uint16 раз, скорость uint8)
{
uint16 T = 600000 / (2048 * speed);
static uint8 step;
P32 = P33 = P34 = P35 = 0;
while(times--)
{
if(flag == 0)
{
//A->B->C->D->A
switch(step)
{
case 0:
P35 = 0;
P32 = 1;
break;
case 1:
P32 = 0;
P33 = 1;
break;
case 2:
P33 = 0;
P34 = 1;
break;
case 3:
P34 = 0;
P35 = 1;
break;
}
}
else
{
//A->D->C->B->A
switch(step)
{
case 0:
P33 = 0;
P32 = 1;
break;
case 1:
P32 = 0;
P35 = 1;
break;
case 2:
P35 = 0;
P34 = 1;
break;
case 3:
P34 = 0;
P33 = 1;
break;
}
}
step = ++step>=4 ? 0 : step;
delay_100us(T);
}
P32 = P33 = P34 = P35 = 0;
}
Микроконтроллер STM32:
При использовании микроконтроллера STM32F103C8T6 контакты управления шаговым двигателем: PA0, PA1, PA2 и PA3.
void StepperMotor (флаг uint8_t, раз uint16_t, скорость uint8_t)
{
uint16_t T = 600000 / (2048 * speed);
static uint8_t step;
GPIO_ResetBits(GPIOA, GPIO_Pin_0 GPIO_Pin_1 GPIO_Pin_2 GPIO_Pin_3);
while(times--)
{
if(flag == 0)
{
//A->B->C->D->A
switch(step)
{
case 0:
GPIO_ResetBits(GPIOA, GPIO_Pin_3);
GPIO_SetBits(GPIOA, GPIO_Pin_0);
break;
case 1:
GPIO_ResetBits(GPIOA, GPIO_Pin_0);
GPIO_SetBits(GPIOA, GPIO_Pin_1);
break;
case 2:
GPIO_ResetBits(GPIOA, GPIO_Pin_1);
GPIO_SetBits(GPIOA, GPIO_Pin_2);
break;
case 3:
GPIO_ResetBits(GPIOA, GPIO_Pin_2);
GPIO_SetBits(GPIOA, GPIO_Pin_3);
break;
}
}
else
{
//A->D->C->B->A
switch(step)
{
case 0:
GPIO_ResetBits(GPIOA, GPIO_Pin_1);
GPIO_SetBits(GPIOA, GPIO_Pin_0);
break;
case 1:
GPIO_ResetBits(GPIOA, GPIO_Pin_0);
GPIO_SetBits(GPIOA, GPIO_Pin_3);
break;
case 2:
GPIO_ResetBits(GPIOA, GPIO_Pin_3);
GPIO_SetBits(GPIOA, GPIO_Pin_2);
break;
case 3:
GPIO_ResetBits(GPIOA, GPIO_Pin_2);
GPIO_SetBits(GPIOA, GPIO_Pin_1);
break;
}
}
step = ++step>= 4 ? 0 : step;
delay_100us(T);
}
GPIO_ResetBits(GPIOA, GPIO_Pin_0 GPIO_Pin_1 GPIO_Pin_2 GPIO_Pin_3);
}







