Заголовок сообщения: Помогите с шаговым двигателем
Добавлено: Ср май 16, 2012 10:51:27
Родился
Зарегистрирован: Ср мар 28, 2012 19:23:28 Сообщений: 11
Рейтинг сообщения:0
Всем доброго времени суток! Прошу помощи у вас, как у опытных людей в этой сфере.
Нужно управлять микроконтроллером ATmega16 (или другим) шаговым большим двигателем, вот таким - FL86ST (http://electroprivod.ru/st_motor.htm). Задача такая: снимать показания с датчика влажности и на основе этих показаний поворачивать двигатель, если показания уменьшаются в одну сторону, если увеличивается в другую. Помогите собрать схему. Как все это дело подключить, помогите плиз.
снимать показания с датчика влажности и на основе этих показаний поворачивать двигатель
движок выбрал, потом надо выбрать датчик влажности, температуры. далее надо определиться с алгоритмом - как вращать движком в зависимости от влажности влажности...
так что задача вращения движком здесь далеко не самая сложная
Помогать не буду, поскоку болею не за RedBull, а за Ferrari , но хочу обратить внимание на одну деталь, о которой часто забывают и вспоминают, когда : "А почему это оно так сделало ?" . При пропадании, а потом восстановлении питания следует озаботиться тем, чтобы у ШД оказалась запитана та же фаза, что и при отключении ( предполагается, что механика при этом тоже самопроизвольно не "уползет" ). Поэтому видится использование записи текущего состояния в EEPROM при каждом шаге ШД. Ну и учитывая ограниченный ресурс EEPROM, нужно продумывать равномерность распределения области EEPROM для записи. А вообще-то с этим и Тинька справилась бы, я думаю, все равно драйверы ШД понадобятся.
так то и управление движком тоже можно былобы на россыпи сделать, но с драйвером проще программа получится. первый из рекомендуемых SMD-78 пойдет, датчик влажости тоже ок - удобное управление по i2c.
Последний раз редактировалось igor-x Чт май 17, 2012 10:25:28, всего редактировалось 1 раз.
Заголовок сообщения: Re: Помогите с шаговым двигателем
Добавлено: Чт май 17, 2012 09:13:58
Родился
Зарегистрирован: Ср мар 28, 2012 19:23:28 Сообщений: 11
Рейтинг сообщения:0
теперь схему надо нарисовать, как двигатель подключается к драйверу, а потом к МК?? + еще датчик как то надо прикрутить, МК будет ATmega128, т.к. он будет еще и другие задачи выполнять. Я пока не понимаю ничего, вот хочу разобраться.
теперь схему надо нарисовать, как двигатель подключается к драйверу, а потом к МК?? + еще датчик как то надо прикрутить, МК будет ATmega128, т.к. он будет еще и другие задачи выполнять. Я пока не понимаю ничего, вот хочу разобраться.
1.а почему мега128.. ах да там еще другие задачи. 2.схема очень просто рисуется . датчик влажности подключаем к шине TWI микроконтроллера, контроллер шаговика подключаем к любым оставшимся портам .там их примерно 58 свободных будет еще 3. не забыть подключить питание к схеме на мега128 и контроллеру шаговика.
все очень просто. первый контакт датчика - на общий провод, второй контакт датчика на 26 ногу МК третий контакт датчика на 25 ногу Мк, четвертый контакт датчика на +5в
Мне кажется, тут еще надо бы теорию систем автоматического регулирования учесть. Иначе, твоя схема может запросто войти в режим автоколебаний, если большой мотор будет управлять влажностью которая воздействует на датчик. Самый простой вариант линейного регулятора обладает плохими характеристиками по переходному процессу если объект управления обладает огромной инерцией, да и датчик не мгновенно реагирует на изменение влажности. Если выйдет так что воздействие на двигатель будет быстрее чем реагирует датчик - вся система войдет в автоколебательный режим и ничего хорошего с этого не выйдет.
Заголовок сообщения: Re: Помогите с шаговым двигателем
Добавлено: Чт май 17, 2012 11:57:43
Родился
Зарегистрирован: Ср мар 28, 2012 19:23:28 Сообщений: 11
Рейтинг сообщения:0
Alexeyslav писал(а):
Мне кажется, тут еще надо бы теорию систем автоматического регулирования учесть. Иначе, твоя схема может запросто войти в режим автоколебаний, если большой мотор будет управлять влажностью которая воздействует на датчик. Самый простой вариант линейного регулятора обладает плохими характеристиками по переходному процессу если объект управления обладает огромной инерцией, да и датчик не мгновенно реагирует на изменение влажности. Если выйдет так что воздействие на двигатель будет быстрее чем реагирует датчик - вся система войдет в автоколебательный режим и ничего хорошего с этого не выйдет.
Это все правильно. Но эти проблемы остаются на будущее. Надо просто с чего то начать.
Цитата:
igor-x
большое спасибо. будут еще вопросы напишу здесь. -)
Чтоб не создавать новую тему, решил написать сюда, так как вопрос тоже по поводу ШД. Мне нужно управлять независимо двумя ШД. Управляющие последовательности решил выводить в порт С МК (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
Аналогично, когда надо, будет вызываться такая же подпрограмма для другого ШД. Вопрос: Будет ли это реально работать? Моделирую в Протеусе - вроде работает, вал в модели ШД вращается.
Будет, но зачем так сложно... битовые операции с портом могут привести к сбою - ведь меняя один бит контроллер оперирует со всем байтом, и если где-то будет замыкание на выходе хоть и кратковременное состояние вывода порта может запомнится даже если менялся другой бит.
Проще делать это через массив, куда занесены последовательные состояния фаз положений ШД, просто прибавляешь 1 к индексу массива для движения в одну сторону и убавляешь для движения в другую. Массив один для всех ШД, надо только программно отслеживать фазу для каждого из них и научить контроллер устанавливать состояние порта выбранного ШД соответствующее выходу с массива.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения