Помогите с шаговым двигателем

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
ReD_BuLL_1
Родился
Сообщения: 11
Зарегистрирован: Ср мар 28, 2012 19:23:28

Помогите с шаговым двигателем

Сообщение ReD_BuLL_1 »

Всем доброго времени суток! Прошу помощи у вас, как у опытных людей в этой сфере.

Нужно управлять микроконтроллером ATmega16 (или другим) шаговым большим двигателем, вот таким - FL86ST (http://electroprivod.ru/st_motor.htm).
Задача такая: снимать показания с датчика влажности и на основе этих показаний поворачивать двигатель, если показания уменьшаются в одну сторону, если увеличивается в другую.
Помогите собрать схему. Как все это дело подключить, помогите плиз.
Реклама
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Помогите с шаговым двигателем

Сообщение igor-x »

ReD_BuLL_1 писал(а): снимать показания с датчика влажности и на основе этих показаний поворачивать двигатель
движок выбрал, потом надо выбрать датчик влажности, температуры.
далее надо определиться с алгоритмом - как вращать движком в зависимости от влажности влажности...

так что задача вращения движком здесь далеко не самая сложная
Реклама
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Помогите с шаговым двигателем

Сообщение Jack_A »

Помогать не буду, поскоку болею не за RedBull, а за Ferrari :) , но хочу обратить внимание на одну деталь, о которой часто забывают и вспоминают, когда : "А почему это оно так сделало ?" . При пропадании, а потом восстановлении питания следует озаботиться тем, чтобы у ШД оказалась запитана та же фаза, что и при отключении ( предполагается, что механика при этом тоже самопроизвольно не "уползет" ). Поэтому видится использование записи текущего состояния в EEPROM при каждом шаге ШД. Ну и учитывая ограниченный ресурс EEPROM, нужно продумывать равномерность распределения области EEPROM для записи.
А вообще-то с этим и Тинька справилась бы, я думаю, все равно драйверы ШД понадобятся.
ReD_BuLL_1
Родился
Сообщения: 11
Зарегистрирован: Ср мар 28, 2012 19:23:28

Re: Помогите с шаговым двигателем

Сообщение ReD_BuLL_1 »

Хорошо. Помогите теперь это все завязать на ATmega16.
Вот двигатель - http://electroprivod.ru/fl86st.htm
какой там драйвер лучше выбрать?
Датчик влажности - http://www.chipdip.ru/product/sht75.aspx
ПАМАГИТЕ!!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Помогите с шаговым двигателем

Сообщение igor-x »

ReD_BuLL_1 писал(а): ПАМАГИТЕ!!
так то и управление движком тоже можно былобы на россыпи сделать, но с драйвером проще программа получится.
первый из рекомендуемых SMD-78 пойдет,
датчик влажости тоже ок - удобное управление по i2c.
Последний раз редактировалось igor-x Чт май 17, 2012 10:25:28, всего редактировалось 1 раз.
Реклама
ReD_BuLL_1
Родился
Сообщения: 11
Зарегистрирован: Ср мар 28, 2012 19:23:28

Re: Помогите с шаговым двигателем

Сообщение ReD_BuLL_1 »

теперь схему надо нарисовать, как двигатель подключается к драйверу, а потом к МК?? + еще датчик как то надо прикрутить, МК будет ATmega128, т.к. он будет еще и другие задачи выполнять.
Я пока не понимаю ничего, вот хочу разобраться.
Реклама
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Помогите с шаговым двигателем

Сообщение igor-x »

ReD_BuLL_1 писал(а):теперь схему надо нарисовать, как двигатель подключается к драйверу, а потом к МК?? + еще датчик как то надо прикрутить, МК будет ATmega128, т.к. он будет еще и другие задачи выполнять.
Я пока не понимаю ничего, вот хочу разобраться.
1.а почему мега128.. ах да там еще другие задачи.
2.схема очень просто рисуется . датчик влажности подключаем к шине TWI микроконтроллера,
контроллер шаговика подключаем к любым оставшимся портам .там их примерно 58 свободных будет еще
3. не забыть подключить питание к схеме на мега128 и контроллеру шаговика.

вот и все.
ReD_BuLL_1
Родился
Сообщения: 11
Зарегистрирован: Ср мар 28, 2012 19:23:28

Re: Помогите с шаговым двигателем

Сообщение ReD_BuLL_1 »

А можешь нарисовать, пожалуйста, если не трудно
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Помогите с шаговым двигателем

Сообщение igor-x »

ReD_BuLL_1 писал(а):А можешь нарисовать, пожалуйста, если не трудно
все очень просто. первый контакт датчика - на общий провод, второй контакт датчика на 26 ногу МК
третий контакт датчика на 25 ногу Мк, четвертый контакт датчика на +5в

51 контак МК подаем на “ШАГ” контроллера шаговика
52 контакт МК подаем на“НАПРАВЛЕНИЕ” контроллера шаговика
53 контакт МК подаем на“РАЗРЕШЕНИЕ” контроллера шаговика

21 МК - питание 5 в
22 МК - питание 0 в.

и все
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Помогите с шаговым двигателем

Сообщение Alexeyslav »

Мне кажется, тут еще надо бы теорию систем автоматического регулирования учесть. Иначе, твоя схема может запросто войти в режим автоколебаний, если большой мотор будет управлять влажностью которая воздействует на датчик. Самый простой вариант линейного регулятора обладает плохими характеристиками по переходному процессу если объект управления обладает огромной инерцией, да и датчик не мгновенно реагирует на изменение влажности. Если выйдет так что воздействие на двигатель будет быстрее чем реагирует датчик - вся система войдет в автоколебательный режим и ничего хорошего с этого не выйдет.
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Помогите с шаговым двигателем

Сообщение igor-x »

Alexeyslav писал(а): тут еще надо бы теорию
схема никуда не может войти.никаких автоколебаний, пока МК не прошит :))
ReD_BuLL_1
Родился
Сообщения: 11
Зарегистрирован: Ср мар 28, 2012 19:23:28

Re: Помогите с шаговым двигателем

Сообщение ReD_BuLL_1 »

Alexeyslav писал(а):Мне кажется, тут еще надо бы теорию систем автоматического регулирования учесть. Иначе, твоя схема может запросто войти в режим автоколебаний, если большой мотор будет управлять влажностью которая воздействует на датчик. Самый простой вариант линейного регулятора обладает плохими характеристиками по переходному процессу если объект управления обладает огромной инерцией, да и датчик не мгновенно реагирует на изменение влажности. Если выйдет так что воздействие на двигатель будет быстрее чем реагирует датчик - вся система войдет в автоколебательный режим и ничего хорошего с этого не выйдет.
Это все правильно. Но эти проблемы остаются на будущее. Надо просто с чего то начать.
igor-x
большое спасибо. будут еще вопросы напишу здесь. -)
Аватара пользователя
CODE43
Прорезались зубы
Сообщения: 231
Зарегистрирован: Пт июл 15, 2011 03:08:49

Re: Помогите с шаговым двигателем

Сообщение CODE43 »

Чтоб не создавать новую тему, решил написать сюда, так как вопрос тоже по поводу ШД. Мне нужно управлять независимо двумя ШД. Управляющие последовательности решил выводить в порт С МК (PIC16F873A). С7-С4 для одного ШД, С3-С0 - для другого ШД. Как я понимаю, для режима полного шага нужно выводить такую последовательность:
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
          return
Аналогично, когда надо, будет вызываться такая же подпрограмма для другого ШД. Вопрос: Будет ли это реально работать? Моделирую в Протеусе - вроде работает, вал в модели ШД вращается.
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Помогите с шаговым двигателем

Сообщение igor-x »

на самом деле диаграмма управления двигателем напрямую может быть гораздо сложнее. зависит от типа движка.
Аватара пользователя
CODE43
Прорезались зубы
Сообщения: 231
Зарегистрирован: Пт июл 15, 2011 03:08:49

Re: Помогите с шаговым двигателем

Сообщение CODE43 »

Движки униполярные, от принтеров. Есть еще ДШИ200-1. Управление будет через транзисторные ключи, как-то так:
Изображение
Только транзисторы полевые, типа IRLZ44.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Помогите с шаговым двигателем

Сообщение Alexeyslav »

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

Проще делать это через массив, куда занесены последовательные состояния фаз положений ШД, просто прибавляешь 1 к индексу массива для движения в одну сторону и убавляешь для движения в другую. Массив один для всех ШД, надо только программно отслеживать фазу для каждого из них и научить контроллер устанавливать состояние порта выбранного ШД соответствующее выходу с массива.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»