Помогите с шаговым двигателем
-
ReD_BuLL_1
- Родился
- Сообщения: 11
- Зарегистрирован: Ср мар 28, 2012 19:23:28
Помогите с шаговым двигателем
Всем доброго времени суток! Прошу помощи у вас, как у опытных людей в этой сфере.
Нужно управлять микроконтроллером ATmega16 (или другим) шаговым большим двигателем, вот таким - FL86ST (http://electroprivod.ru/st_motor.htm).
Задача такая: снимать показания с датчика влажности и на основе этих показаний поворачивать двигатель, если показания уменьшаются в одну сторону, если увеличивается в другую.
Помогите собрать схему. Как все это дело подключить, помогите плиз.
Нужно управлять микроконтроллером ATmega16 (или другим) шаговым большим двигателем, вот таким - FL86ST (http://electroprivod.ru/st_motor.htm).
Задача такая: снимать показания с датчика влажности и на основе этих показаний поворачивать двигатель, если показания уменьшаются в одну сторону, если увеличивается в другую.
Помогите собрать схему. Как все это дело подключить, помогите плиз.
- Реклама
Re: Помогите с шаговым двигателем
движок выбрал, потом надо выбрать датчик влажности, температуры.ReD_BuLL_1 писал(а): снимать показания с датчика влажности и на основе этих показаний поворачивать двигатель
далее надо определиться с алгоритмом - как вращать движком в зависимости от влажности влажности...
так что задача вращения движком здесь далеко не самая сложная
Re: Помогите с шаговым двигателем
Помогать не буду, поскоку болею не за RedBull, а за Ferrari
, но хочу обратить внимание на одну деталь, о которой часто забывают и вспоминают, когда : "А почему это оно так сделало ?" . При пропадании, а потом восстановлении питания следует озаботиться тем, чтобы у ШД оказалась запитана та же фаза, что и при отключении ( предполагается, что механика при этом тоже самопроизвольно не "уползет" ). Поэтому видится использование записи текущего состояния в EEPROM при каждом шаге ШД. Ну и учитывая ограниченный ресурс EEPROM, нужно продумывать равномерность распределения области EEPROM для записи.
А вообще-то с этим и Тинька справилась бы, я думаю, все равно драйверы ШД понадобятся.
А вообще-то с этим и Тинька справилась бы, я думаю, все равно драйверы ШД понадобятся.
-
ReD_BuLL_1
- Родился
- Сообщения: 11
- Зарегистрирован: Ср мар 28, 2012 19:23:28
Re: Помогите с шаговым двигателем
Хорошо. Помогите теперь это все завязать на ATmega16.
Вот двигатель - http://electroprivod.ru/fl86st.htm
какой там драйвер лучше выбрать?
Датчик влажности - http://www.chipdip.ru/product/sht75.aspx
ПАМАГИТЕ!!
Вот двигатель - http://electroprivod.ru/fl86st.htm
какой там драйвер лучше выбрать?
Датчик влажности - http://www.chipdip.ru/product/sht75.aspx
ПАМАГИТЕ!!
Re: Помогите с шаговым двигателем
так то и управление движком тоже можно былобы на россыпи сделать, но с драйвером проще программа получится.ReD_BuLL_1 писал(а): ПАМАГИТЕ!!
первый из рекомендуемых SMD-78 пойдет,
датчик влажости тоже ок - удобное управление по i2c.
Последний раз редактировалось igor-x Чт май 17, 2012 10:25:28, всего редактировалось 1 раз.
- Реклама
-
ReD_BuLL_1
- Родился
- Сообщения: 11
- Зарегистрирован: Ср мар 28, 2012 19:23:28
Re: Помогите с шаговым двигателем
теперь схему надо нарисовать, как двигатель подключается к драйверу, а потом к МК?? + еще датчик как то надо прикрутить, МК будет ATmega128, т.к. он будет еще и другие задачи выполнять.
Я пока не понимаю ничего, вот хочу разобраться.
Я пока не понимаю ничего, вот хочу разобраться.
Re: Помогите с шаговым двигателем
1.а почему мега128.. ах да там еще другие задачи.ReD_BuLL_1 писал(а):теперь схему надо нарисовать, как двигатель подключается к драйверу, а потом к МК?? + еще датчик как то надо прикрутить, МК будет ATmega128, т.к. он будет еще и другие задачи выполнять.
Я пока не понимаю ничего, вот хочу разобраться.
2.схема очень просто рисуется . датчик влажности подключаем к шине TWI микроконтроллера,
контроллер шаговика подключаем к любым оставшимся портам .там их примерно 58 свободных будет еще
3. не забыть подключить питание к схеме на мега128 и контроллеру шаговика.
вот и все.
-
ReD_BuLL_1
- Родился
- Сообщения: 11
- Зарегистрирован: Ср мар 28, 2012 19:23:28
Re: Помогите с шаговым двигателем
А можешь нарисовать, пожалуйста, если не трудно
Re: Помогите с шаговым двигателем
все очень просто. первый контакт датчика - на общий провод, второй контакт датчика на 26 ногу МКReD_BuLL_1 писал(а):А можешь нарисовать, пожалуйста, если не трудно
третий контакт датчика на 25 ногу Мк, четвертый контакт датчика на +5в
51 контак МК подаем на “ШАГ” контроллера шаговика
52 контакт МК подаем на“НАПРАВЛЕНИЕ” контроллера шаговика
53 контакт МК подаем на“РАЗРЕШЕНИЕ” контроллера шаговика
21 МК - питание 5 в
22 МК - питание 0 в.
и все
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Помогите с шаговым двигателем
Мне кажется, тут еще надо бы теорию систем автоматического регулирования учесть. Иначе, твоя схема может запросто войти в режим автоколебаний, если большой мотор будет управлять влажностью которая воздействует на датчик. Самый простой вариант линейного регулятора обладает плохими характеристиками по переходному процессу если объект управления обладает огромной инерцией, да и датчик не мгновенно реагирует на изменение влажности. Если выйдет так что воздействие на двигатель будет быстрее чем реагирует датчик - вся система войдет в автоколебательный режим и ничего хорошего с этого не выйдет.
Re: Помогите с шаговым двигателем
схема никуда не может войти.никаких автоколебаний, пока МК не прошитAlexeyslav писал(а): тут еще надо бы теорию
-
ReD_BuLL_1
- Родился
- Сообщения: 11
- Зарегистрирован: Ср мар 28, 2012 19:23:28
Re: Помогите с шаговым двигателем
Это все правильно. Но эти проблемы остаются на будущее. Надо просто с чего то начать.Alexeyslav писал(а):Мне кажется, тут еще надо бы теорию систем автоматического регулирования учесть. Иначе, твоя схема может запросто войти в режим автоколебаний, если большой мотор будет управлять влажностью которая воздействует на датчик. Самый простой вариант линейного регулятора обладает плохими характеристиками по переходному процессу если объект управления обладает огромной инерцией, да и датчик не мгновенно реагирует на изменение влажности. Если выйдет так что воздействие на двигатель будет быстрее чем реагирует датчик - вся система войдет в автоколебательный режим и ничего хорошего с этого не выйдет.
большое спасибо. будут еще вопросы напишу здесь. -)igor-x
Re: Помогите с шаговым двигателем
Чтоб не создавать новую тему, решил написать сюда, так как вопрос тоже по поводу ШД. Мне нужно управлять независимо двумя ШД. Управляющие последовательности решил выводить в порт С МК (PIC16F873A). С7-С4 для одного ШД, С3-С0 - для другого ШД. Как я понимаю, для режима полного шага нужно выводить такую последовательность:
1000
0100
0010
0001
Далее сначала.
Пока написал программу, которая в цикле вызывает подпрограмму формирования шага (код ниже)
Аналогично, когда надо, будет вызываться такая же подпрограмма для другого ШД. Вопрос: Будет ли это реально работать? Моделирую в Протеусе - вроде работает, вал в модели ШД вращается.
1000
0100
0010
0001
Далее сначала.
Пока написал программу, которая в цикле вызывает подпрограмму формирования шага (код ниже)
Код: Выделить всё
;-----------------------------------------------------------------------
; Подпрограмма формирования шага ШД
;------------------------------------------------------------------------------
StepCoil
call delay
incf StepC, f
movlw .4
subwf StepC, w
btfsc Status, 0
clrf StepC
movf StepC, w
call Table
return
Table
addwf Pcl, f
goto S5
goto S6
goto S7
goto S8
S5
bsf PortC, 7
bcf PortC, 4
return
S6 bsf PortC, 6
bcf PortC, 7
return
S7 bsf PortC, 5
bcf PortC, 6
return
S8 bsf PortC, 4
bcf PortC, 5
returnRe: Помогите с шаговым двигателем
на самом деле диаграмма управления двигателем напрямую может быть гораздо сложнее. зависит от типа движка.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Помогите с шаговым двигателем
Будет, но зачем так сложно... битовые операции с портом могут привести к сбою - ведь меняя один бит контроллер оперирует со всем байтом, и если где-то будет замыкание на выходе хоть и кратковременное состояние вывода порта может запомнится даже если менялся другой бит.
Проще делать это через массив, куда занесены последовательные состояния фаз положений ШД, просто прибавляешь 1 к индексу массива для движения в одну сторону и убавляешь для движения в другую. Массив один для всех ШД, надо только программно отслеживать фазу для каждого из них и научить контроллер устанавливать состояние порта выбранного ШД соответствующее выходу с массива.
Проще делать это через массив, куда занесены последовательные состояния фаз положений ШД, просто прибавляешь 1 к индексу массива для движения в одну сторону и убавляешь для движения в другую. Массив один для всех ШД, надо только программно отслеживать фазу для каждого из них и научить контроллер устанавливать состояние порта выбранного ШД соответствующее выходу с массива.



