Микроконтроллер и аппаратные модификации.

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
Вымогатель припоя
Сообщения: 507
Зарегистрирован: Чт июн 16, 2011 15:06:10
Откуда: электрощитовая

Сообщение Vova777 »

Я только начинаю работать с микроконтроллерами, хочется спросить мнение профессионалов.
Вопрос: можно ли с помощью Atmega32 (через контроллеры ШД, драйверы ШД или что там еще) управлять тремя шаговыми двигателями? Т.е. считывать положение роторов или поворачивать их на заданный угол, обрабатывать аналоговые сигналы с концевиков, и самое вкусное - показывать все это на экране компьютера (программу я бы мог написать сам на Delphi). Суть в чем, чтобы все хозяйство управлялось аппаратной частью или МК, а не моим компьютером. Комп только для отображения, ну и для загрузки программы в МК.
Возможно такое?
Какова будет дискретизация обратной связи МК-Компьютер?
даешь высокое напряжение
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2209
Зарегистрирован: Вт июл 27, 2010 11:31:59
Откуда: Кххх

Сообщение minakan »

Для начала: немного теории: http://www.purelogic.ru/doc/PDF/SM/SM_controller.pdf т.е.
шаговый двигатель не имеет датчика угла, но если известно, что двигатель делает 200 шагов на оборот, то подав на него 200 шагов мы будем знать, что он повернулся на 360град, или надо было выбирать более мощный движок.
Сигналы с концевиков аналоговыми не являются.
Когда станет ясно, что необходимо приобрести для твоей системы, и уровень трудозатрат, то окажется что не суть важно какой именно контроллер использовать: mega32 или скажем стартер от stm32 http://www.st.com/internet/evalboard/product/250863.jsp, тем более для последнего ничего кроме usb шнура и среды разработки (Кокос) не требуется.
По поводу драйверов - делал драйвера http://www.otocoup.com/CarteL6208_e.htm на 297 - 298 (задача типа чпу для сверлилки).
Надо определиться вот с чем: для чего система, какой мощности двигатель, какой тип обмотки (уни - биполярный см. ридико), отсюда тип драйвера двигателя, кроме того, если тебе надо хранить программу, то хватит ли внутреннего флеша, если нет - то надо сажать внешний флеш, тут у меня опыта нет. Ну скажем обслуга mmc карточки отжирает 512 байт памяти на формирование буфера блока.
Ковыряюсь сейчас с измерительным стендом, система выглядит так плата контроллера: контроллер mega8515 -АЦП mcp3204 - 232 порт - st232. Движок 16hm4401. Драйвер двигателя - leadshine M415b. Контроллер работает от любого терминала в текстовом режиме. Автономная работа стенда не предполагается.
Реклама
Вымогатель припоя
Сообщения: 507
Зарегистрирован: Чт июн 16, 2011 15:06:10
Откуда: электрощитовая

Сообщение Vova777 »

ну я хочу взять для начала ШД из dvd-rom.
спасибо за ссылки, я почитаю. пока мне это еще сложновато, но я разберусь со временем.

еще вопрос, какой кварц нужен для ATmega32, если для ATmega8-16PI идет кварц 4 МГц ? такой же?
даешь высокое напряжение
Вымогатель припоя
Сообщения: 507
Зарегистрирован: Чт июн 16, 2011 15:06:10
Откуда: электрощитовая

Сообщение Vova777 »

minakan писал(а): Сигналы с концевиков аналоговыми не являются.
А какие же они тогда?
даешь высокое напряжение
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2209
Зарегистрирован: Вт июл 27, 2010 11:31:59
Откуда: Кххх

Сообщение minakan »

Vova777 писал(а):ну я хочу взять для начала ШД из dvd-rom.
еще вопрос, какой кварц нужен для ATmega32, если для ATmega8-16PI идет кварц 4 МГц ? такой же?
Раньше брали из флопов, там достаточно 4 транзисторов, но флопы кончились :shock: ... Какие ШД в dvd-rom - незнаю.
То вам mega32, а то ATmega8-16PI, последний потянет до 16 Мгц, что ясно из названия.
Для нормальной работы uart лучше выбрать кварц из ряда 7.3728, 11.0592, 14.7456, тогда не будет "неудобных" скоростей обмена, на которых накапливается ошибка.
Сигнал с концевика - дискретный. т.е. тебе не требуется АЦП для анализа величины этого напряжения. Подаешь Vcc через резистор на концевик, подаешь напряжение с концевика на ногу контроллера, в основном цикле программы опрашиваешь эти ноги, если хоть гдето ноль - блокируешь автомат состояний, ответственный за движение.
Реклама
Ответить

Вернуться в «Практика»