Форум программистов, компьютерный форум, киберфорум
Робототехника и умный дом
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/83: Рейтинг темы: голосов - 83, средняя оценка - 4.88
Xokipok
1

Подскажите алгоритм разгона и замедления шаговика

07.04.2010, 22:17. Показов 15697. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.

Есть два шаговика управляемые в микрошаге, нужно линейно их разгонять и тормозить (раздельно), так как вращают они массивные вещи. (контроллер ATmega8515) Нашел на просторах интернета описание (AVR446: Linear speed control of stepper motor http://www.atmel.som/dyn/resou... oc8017.pdf), но с английским не в ладах, нашел еще архив с этим примером описном в пэ-дэ-эф, так вот он скомпилировался в ~19 кб :(.

помогите кто чем может.

[13.01 Кб]
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2010, 22:17
Ответы с готовыми решениями:

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

Подскажите по составляющим системника для игр, без разгона. Калининград.
Добрый день. Калининград, системник нужен для игр и домашних нужд, без разгона. Пока остановился...

Подскажите конфигурацию системника для игр, без разгона. 20 000 рублей.
Добрый день! Нужен системник в основном для игр. Разгоном заниматься не собираюсь. Бюджет 20...

STM32F4Discovery + L6470 драйвер шаговика
Здравствуйте всем! Помогите пожалуйста разобраться с подключением и управлением этой...

sot-23 hexfet для шаговика?
Можно ли крошечными мосфетом в sot-23 с очень маленьким сопротивлением открытого канала (типа...

7
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 29
08.04.2010, 09:56 2
На сайте gaw.ru переведены многие апноуты AVR - пошукайте.
0
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 1,230
08.04.2010, 11:05 3
Семенов Нихиил, не поверите, конкретно этот не переведен.
0
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 67
08.04.2010, 11:54 4
Может я и не прав , но мне кажется что это не так уж и сложно .
Каждый шаг делать по прерыванию таймера а уже в таймере плавно уменьшать значение для разгона и увеличивать для торможения .
0
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 1,230
08.04.2010, 11:59 5
Здесь даже ШИМ подойдет для процентного управления скоростью, главное конденсаторы не подключать.
0
Xokipok
08.04.2010, 15:24 6
думаю использовать для этого TIMER1 с прерываниями по совпадению, A и B.. для первого и второго шаговика.
думал есть что-то готовое что бы не городить огороды.
Xokipok
17.04.2010, 21:11 7
если есть у кого пример, поделитесь пожалуйста, а то ускорение как то криво выходит, процесс ускорения и замедления медленно происходит, а сами шаги нормально...
ixpirt
17.11.2013, 06:30 8
Цитата Сообщение от Xokipok
если есть у кого пример, поделитесь пожалуйста, а то ускорение как то криво выходит, процесс ускорения и замедления медленно происходит, а сами шаги нормально...
Пример для AVR, писал для шагавика который стоит на слайдэре для видеокамеры, плавный старт и плавное торможения, код сжирает 2 таймера, один тикает для упровления шаговика (драйвер L297) , второй таймер как раз задает время плавного старта

//**********векторы прерывания (обработчики прерываний.)****************************

SIGNAL(__vector_default){}; // убиваем левые прерывания
SIGNAL(TIMER0_COMPA_vect) // прерывания по совпадению счeтного таймера 0 (работает при запуска драйвера ШД, передергивает пин clock апаратного драйвера шд.(L297)
{CLR(PortMotor,pin_CLOCK);
SIT(PortMotor,pin_CLOCK);
if(!(flag_timer&0b00000001))
{
if(number_of_step==0)
{CLR(flag_timer,1);}else{number_of_step--;};
if(program_step_flag){ // включается если работает режим - программное упровления
if(number_of_step<=(step_to_cm-45)){number_of_step=1000;distance_drv--;};};
};};

SIGNAL(TIMER1_COMPA_vect) // прерывания по совпадению счeтного таймера 1 (плавность хода)
{
if(flag_timer&0b00000010){if(OCR0A>=speed_motor){OCR0A--;}}
else{if(OCR0A==255){Stop_motor();}
else{OCR0A++;};};
};

//*********драйвер шагового двигателя***********************************************
void StepMotor(char direction1, unsykned long clock2, char speed_motor_drv,int smooth) // направление(1 влево), сколько шагов(если 0 то шаги бесконечны), скорость вращения(255min-11мах), плавность старта/торможение.
{
if(direction1==1){SIT(PortMotor,pin_direction );}else{CLR(PortMotor,pin_direction );}; // проверяем, и выстfвляем пин в какую сторону вращаться
if(clock2==0){SIT(flag_timer,0);}else{CLR(flag_timer,0);number_of_step = clock2;}; //проверяем на бесконечный цикл,и в соответствии с этим ставим флаг, суем значения количество шагов в глобальную переменную для последующей обработке (отсчета)
speed_motor = speed_motor_drv; // переносим значения скорости в глобальную перемеyнную
CLR(MDCR,3);
motor_step_on; // включаем драйвер мотора
SIT(flag_timer,1);

if(smooth==0){OCR0A=speed_motor;}else{OCR0A=254;};
OCR1A = smooth; // прерывания устанавливается как плавно будет стартовать мотор
TCCR1A = 0b00000000;
TCCR1B = 0b00001011; // сброс при совпадении OCR1A, запуск таймера, fc/64
TIMSK1 = (1<<OCIE1A);

TCCR0A = 0b00000010; // сброс при совподении OCR0A
TCCR0B = 0b00000100; // запуск таймера, fc/256
TIMSK0 = (1<<OCIE0A);
sei();
};

void Stop_motor()
{
TCCR0B = 0; // останавливаем таймер 0
TCCR1B = 0; // останавливаем таймер 1
SIT(MDCR,3); // бит показывает что мотор завершил работу
};
17.11.2013, 06:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2013, 06:30
Помогаю со студенческими работами здесь

максимальная скорость шаговика из 5.25 дисковода?
может, кто-нибудь баловался и знает наперед?

Помогите с питанием контроллера для шаговика.
Здравствуйте, собрал контроллер для ШД управление в полушаге, на выходе обычные ключи на КТ829А...

Драйвер шаговика Easy Driver на A3967 - помогите разобраться
Доброй ночи. Заказал из Китая несколько драйверов для шаговых двигателей, Easy Dryver на микросхеме...

Понимание эффекта замедления времени
В процессе знакомства со СТО у многих людей возникает непонимание и даже отторжение этой теории....

проблема со звуком, а именно замедления (искажения)!
Приветствую вас! Прошу помочь с такой проблемой, при работе с каким либо приложением, например при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru