Цитата(rihkov @ Feb 5 2006, 19:42)

Old1 скажите пожалуйста вы управляли ШД с LPT порта компьютера без помощи отдельного контроллера, если управляли подскажите пожалуйста следующее: у меня программа управления сделана так, в бесконечном цикле крутятся четыре оператора, каждый оператор изменяет состояние LPT порта (записывает в порт 1,2,4,8 и по новой), после каждого оператора стоит задержка допустим Sleep(100); , изменяя задержку я меняю скорость вращения, а если убрать задержку то с какой частотой будут перебираться операторы, и успеет ли за ними LPT порт ???
Я управлял двигателем при помощи микроконтроллера, одна из причин такого решения - это относительно высокие требования по точности частоты вращения ШД. ИМХО задавая шаговую последовательность через LPT хорошую точность и стабильность не получишь: влияют скорость процессора, загрузка процессора (количество задач выполняемых в системе в это время), быстродействие драйвера, через который обращаетесь к LPT и др. Но слышал, что люди все таки управляют ШД напрямую через LPT... В вашем случае, для начала, стоит определить реальную частоту чередования фаз при которой ротор еще вращается, например, подключив к LPT осциллограф, заодно убедитесь что импульсы управления фазами ШД одинаковые (по длительности), с чередованием фаз надеюсь у вас все в порядке (раз двигатель все таки вращается на низких оборотах, кстати какие обороты удается получить?).
Теперь об управляющей последовательности. У вас, как я понял, реализована волновая последовательность (в единицу времени включена только одна фаза)-ИМХО не самый лучший вариант: момент на валу при таком управлении самый низкий. Попробуйте сделать полушаговую последовательность:
фА фБ фВ фГ
1) + + - -
2) - + + -
3) - - + +
4) + - - +
при таком возбуждении и момент побольше будет и работать ровнее будет (правда частота вращения снизится)...
Кстати плавно разгонять двигатель пробовали?