Страница 1 из 1

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

Добавлено: Чт окт 23, 2014 14:07:34
master3763
Здравствуйте увожаемые коты! Спасибо вам за уроки. Очень помогли узнать побольше о микроконтроллерах. Могли ли бы вы мне помочь разобраться с кодом в шаговом двигателе?

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

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

PORTC=0b00001000;
delay_ms(setsec);
PORTC=0b00001100;
Как это исправить?
Eсть ли готовые фунции codevision для управления шаговым двигателем а то моим методом я должен подождать когда завершиться весь цыкл кода вращения ? (тоесть на определнный угол повернуть так не получится)
Как можно оптимизировать данный код?

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

Добавлено: Чт окт 23, 2014 15:20:17
mail_robot
напиши свой, делов то
шаг, полушаг. Функции в принципе доступные микроконтроллеру. ШИМ управление уже сложнее, трэба спец микрухи и датчики тока
читаем даташит на движок, впитываем оттуда максимальную частоту шагов (обычно 200-300 шагов в секунду), пишем код чередования фаз и айда. Можно извратиться и написать функцию разгона-торможения, иначе может шаги пропускать на инерционной нагрузке
тащимся

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

Добавлено: Чт окт 23, 2014 18:15:55
COKPOWEHEU
Когда setsec<=0 то то программа не уже не реагирует на кнопки..
Наверное, реагирует, но с огромной задержкой. Какой там используется тип в делее? Вот переведите отрицательное число в беззнаковый тип - увидите свою задержку.
При отрицательном значении надо поменять местами управляющие комбинации, а задержку брать по модулю.