Управлени шаговым двигателем

Обсуждаем контроллеры компании Atmel.
Ответить
master3763
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб дек 10, 2011 17:45:25
Контактная информация:

Управлени шаговым двигателем

Сообщение master3763 »

Здравствуйте увожаемые коты! Спасибо вам за уроки. Очень помогли узнать побольше о микроконтроллерах. Могли ли бы вы мне помочь разобраться с кодом в шаговом двигателе?

Задача такова:
  • 1)Нужно управлять шаговым двигателем 2-мя кнопками (по часовой, против часовой).
    2)И скоростью вращения двигателя c выводом "скорости" на LCD.
Написал код и высылаю его вам вместе с proteus. Скорость контролирую yменьшением или увеличиванием setsec. Думаю это не совсем правильно.. Когда setsec<=0 то то программа не уже не реагирует на кнопки..

Код: Выделить всё

PORTC=0b00001000;
delay_ms(setsec);
PORTC=0b00001100;
Как это исправить?
Eсть ли готовые фунции codevision для управления шаговым двигателем а то моим методом я должен подождать когда завершиться весь цыкл кода вращения ? (тоесть на определнный угол повернуть так не получится)
Как можно оптимизировать данный код?
Вложения
bipolar.rar
Codevision project + Proteus
(97.59 КБ) 125 скачиваний
bipolar.rar
(97.59 КБ) 96 скачиваний
Реклама
Аватара пользователя
mail_robot
Встал на лапы
Сообщения: 112
Зарегистрирован: Сб янв 05, 2013 07:03:09
Откуда: в #опе изумруды?

Re: Управлени шаговым двигателем

Сообщение mail_robot »

напиши свой, делов то
шаг, полушаг. Функции в принципе доступные микроконтроллеру. ШИМ управление уже сложнее, трэба спец микрухи и датчики тока
читаем даташит на движок, впитываем оттуда максимальную частоту шагов (обычно 200-300 шагов в секунду), пишем код чередования фаз и айда. Можно извратиться и написать функцию разгона-торможения, иначе может шаги пропускать на инерционной нагрузке
тащимся
Нужно делать то, что нужно. А то что не нужно, делать не нужно (с) Винни Пух
Реклама
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Управлени шаговым двигателем

Сообщение COKPOWEHEU »

Когда setsec<=0 то то программа не уже не реагирует на кнопки..
Наверное, реагирует, но с огромной задержкой. Какой там используется тип в делее? Вот переведите отрицательное число в беззнаковый тип - увидите свою задержку.
При отрицательном значении надо поменять местами управляющие комбинации, а задержку брать по модулю.
Ответить

Вернуться в «AVR»