Перейти к содержанию

Управление Шаговым Двигателем С Помощью Stm32


Рекомендуемые сообщения

Добрый день для самообучения решил крутить двигатель 28byj48, с помощью STM32 через L293D.

Схема двигателя http://robocraft.ru/...t/28BYJ-48.pdf.

Подключение двигателя к L293D:

Вывод двигателя 1 подключен к output 1.

Вывод двигателя 3 подключен к output 2.

Вывод двигателя 4 подключен к output 3.

Вывод двигателя 2 подключен к output 4.

Подключение STM32 к L293D:

PC1 подключен к input 1.

PC3 подключен к input 2.

PC5 подключен к input 3.

PC7 подключен к input 4.

Выводы Enable 1 и Enable 2,Vs,Vss драйвера подключены к 5v.Ну соответственно земля есть.

Прошиваю контроллер следующим кодом:

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
void Delay(unsigned int t)
{
unsigned int i;
for (i=0;i<t;i++);
}
void GPIOD_Initialize(){
GPIO_InitTypeDef GPIOC_Stepper;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIOC_Stepper.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_7;
GPIOC_Stepper.GPIO_Mode=GPIO_Mode_Out_PP;
GPIOC_Stepper.GPIO_Speed= GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIOC_Stepper);
}

int main(void)
{
GPIOD_Initialize();
 while(1)
 {
 GPIO_Write(GPIOC,GPIO_Pin_1);
 Delay(100);
 GPIO_Write(GPIOC,GPIO_Pin_1| GPIO_Pin_3);
 Delay(100);
 GPIO_Write(GPIOC,GPIO_Pin_3);
 Delay(100);
 GPIO_Write(GPIOC,GPIO_Pin_5|GPIO_Pin_3);
 Delay(100);
 GPIO_Write(GPIOC,GPIO_Pin_5);
 Delay(100);
 GPIO_Write(GPIOC,GPIO_Pin_5|GPIO_Pin_7);
 Delay(100);
 GPIO_Write(GPIOC,GPIO_Pin_7);
 Delay(100);
 GPIO_Write(GPIOC,GPIO_Pin_7|GPIO_Pin_1);
 Delay(100);
 }
}

В итоге моторчик при подаче тока начинает пищать но не крутится. Уважаемый форумчане подскажите что я делаю не так? Спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Если пищит значит высокая скорость переключения, понизить раз в 100 может больше, и медленно увеличивать пока происходит стабильный запуск

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

В характеристиках вашего двигателя указана максимальная частота под нагрузкой

Idle In-traction Frequency > 600Hz

без нагрузки

Idle Out-traction Frequency > 1000Hz

А вы судя по вашей программе задаете 100 мкс на шаг, т.е.10 кгц Естественно двигатель крутиться не будет. Кроме того у шагового двигателя существует такой параметр. как частота приемистости, т.е. максимальная частота, при которой двигатель будет крутиться с места. Она обычно намного ниже максимальной рабочей частоты.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Добрый день для самообучения решил крутить двигатель 28byj48, с помощью STM32 через L293D.

Схема двигателя http://robocraft.ru/...t/28BYJ-48.pdf.

while(1)

{

GPIO_Write(GPIOC,GPIO_Pin_1);

Delay(100);

GPIO_Write(GPIOC,GPIO_Pin_1| GPIO_Pin_3);

Delay(100);

GPIO_Write(GPIOC,GPIO_Pin_3);

Delay(100);

GPIO_Write(GPIOC,GPIO_Pin_5|GPIO_Pin_3);

Delay(100);

GPIO_Write(GPIOC,GPIO_Pin_5);

Delay(100);

GPIO_Write(GPIOC,GPIO_Pin_5|GPIO_Pin_7);

Delay(100);

GPIO_Write(GPIOC,GPIO_Pin_7);

Delay(100);

GPIO_Write(GPIOC,GPIO_Pin_7|GPIO_Pin_1);

Delay(100);

}

}

[/code]

В итоге моторчик при подаче тока начинает пищать но не крутится. Уважаемый форумчане подскажите что я делаю не так? Спасибо.

Приветствую. как ты подключил ШД? :umnik2: у него же 5 проводов. обмотки между собою (красный) нужно разделить. :yes: или разбирай ШД или ищи улн2003 вместо л293.

ну и конечно задержку увеличь хотяб на порядка а то и два.

кроме того не вижу где сбрасываются пины, вроде только установка. аа понял там перезапись всего порта.

судя по вашей программе задаете 100 мкс на шаг, т.е.10 кгц

интересно как вы выщитали 10кГц, не зная не чего о производительности камня :yes:

Изменено пользователем demo1420

Будем двигать прогресс сами. Мои нынишнее дела http://forum.cxem.ne...78#entry1564268

Ссылка на комментарий
Поделиться на другие сайты

Уже верно подсказали - скорость надо уменьшать.

Так же не понял в чем будет существенная разница от замены специализированной 293 на тупую 2003?

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

интересно как вы выщитали 10кГц, не зная не чего о производительности камня :yes:

При чем тут производительность? Сколько будет тактовая частота 1МГц или 10МГц Delay фиолетово. Если в настройках компиллятора тактовая частота указана правильно, то Delay будет давать ровно такую задержку, какую ему задали.

Delay(100);
GPIO_Write(GPIOC,GPIO_Pin_3);
Delay(100);

Если у интервал между шагами 100 мкс, то сколько по вашему будет частота?

Изменено пользователем Sergey-Ufa
Ссылка на комментарий
Поделиться на другие сайты

Не Сергей. В данном случае не фиолетово. Определение в начале текста и будет зависеть не только от тактовой частоты, но и от степени оптимизации компилятора. А частота в данном случае легко может быть и 48 и 72 и даже больше мегагерц

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

Уже верно подсказали - скорость надо уменьшать.

Так же не понял в чем будет существенная разница от замены специализированной 293 на тупую 2003?

Схема подключения двигателя в случае с 293, это два Н моста.. следовательно две обмотки двигателя должны быть биполярны и развязаны друг от друга (нужно 4 провода, 2 одной обмотки и 2 другой). На каждую обмотку поочереди подается то в одну сторону то в противоположную ток.

Тут же скоммутировано с общей точкой (красный провод), что отлично подходит для коммутации улнкой. Общий подключаем на плюс, остальные через микру на землю.

Преимущество биполярного (л293, 297) двигателя что работает целая обмотка а не лишь её половинка, следовательно и момент можна дать выше. Но схемотехника сильно усложняется.

ПС. Игрался с 297, тупая она однако. греется что дурная, там биполяры на выходе с высоким сопротивлением канала.

Изменено пользователем demo1420

Будем двигать прогресс сами. Мои нынишнее дела http://forum.cxem.ne...78#entry1564268

Ссылка на комментарий
Поделиться на другие сайты

Да просто древние они уже. Не знаю чего народ их до сих пор покупает, когда есть целая куча более продвинутых вариантов с адаптивным контролем тока, формирователя микрошага, шим и прочим блэкджеком в одном корпусе

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

Тут же скоммутировано с общей точкой (красный провод)

Вот разжевано ;)

На форумах принято общаться на "ты", что не является оскорбительным и подразумевает равноправие

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...