Помогите разогнать контроллер Шагового мотора ST300V2 (Toshiba TB6560 )
- Войдите на сайт для отправки комментариев
Решил сьекономить и купил китайскую плату на базе ToshibaTB6560 от фирмы Saintssmarts.
Ссылка на мануал.
Подключил. не работает как надо. Трясется, шумит, дергается. После 3 часов попыток выяснил,что требуется пауза между шагами в 2 милискекунды. А я меньше давал... Вот работающий код:
void Steps400(int steps) { digitalWrite(ENABLE_PIN, HIGH); // Set the direction. digitalWrite(DIR_PIN, LOW); // Set the direction. delay(100); Serial.println(">>"); for (i = 0; i<steps; i++) // Iterate for 4000 microsteps. { digitalWrite(STEP_PIN, LOW); // This LOW to HIGH change is what creates the delayMicroseconds(5); digitalWrite(STEP_PIN, HIGH); // "Rising Edge" so the easydriver knows to when to step. delay(2); // delay(2); // This delay time is close to top speed for this } // particular motor. Any faster the motor stalls. digitalWrite(DIR_PIN, HIGH); // Change direction. delay(100); Serial.println("<<"); for (i = 0; i<steps; i++) // Iterate for 4000 microsteps { digitalWrite(STEP_PIN, LOW); // This LOW to HIGH change is what creates the delayMicroseconds(5); digitalWrite(STEP_PIN, HIGH); // "Rising Edge" so the easydriver knows to when to step. delayMicroseconds(2000); } digitalWrite(ENABLE_PIN, LOW); // particular motor. Any faster the motor stalls. //delay(1000); }
Переписал код с прерыванием по таймеру, работает. Ставишь паузу меньше 1.5 милисекунд - брррррр.
Возможноли как-нибудь избавиться от 2 миллисекунд задержки? Мне нужно 800 шагов в секунду, а получается максимум 400. Мотор вроде как позволяет, блок питания только на 50% нагрузки (1,2 А при 15 в) , Тошиба тоже, ей нужно 30мкс.
Хотя в мануале на плат St330 aш 5 микросекунд указано... В немецких форумах написано, что это тормозят оптроны, но что то мне в это не верится.
Кто как решает эту проблему. Спасибо.
Даташит на Тошибу.
http://www.toshiba.com/taec/components2/Datasheet_Sync/382/27885.pdf
AccelStepper
AccelStepper
Что ты хочешь мне сказать? Что нужно использовать Эту библиотеку? Видел ее. Не использую в первую очередь из за того, что у меня продвинутый контроллер. Ему нужно сказать только оп 1 шаг, направление 1или 0. А эта библиотека дредназначеня для обычного H-Brigge. другими словами, синус генерирует для меня сам контроллер, а не AccelStepper
Я специально написал тестовый код, что бы было просто и наглядно.
Моя проблема: Я не понимаю, почему мне нужно делать такую большую паузу между шагами. По документации можно в 80-100 раз быстрее... Идеи?
Что ты хочешь мне сказать? Что нужно использовать Эту библиотеку? Видел ее. Не использую в первую очередь из за того, что у меня продвинутый контроллер. Ему нужно сказать только оп 1 шаг, направление 1или 0. А эта библиотека дредназначеня для обычного H-Brigge. другими словами, синус генерирует для меня сам контроллер, а не AccelStepper
Я специально написал тестовый код, что бы было просто и наглядно.
ТЫкать перестань, продвинутый ты наш. http://arduino.ru/forum/apparatnye-voprosy/pomogite-razobratsya-chainiku
А разгонять надо не контроллер, а шаговик. Подбираете соответствующее ускорение и нужную скорость.
А разгонять надо не контроллер, а шаговик. Подбираете соответствующее ускорение и нужную скорость.
Спасибо за идею! Ты имеешь в виду, что задержка 2мс связана с тем, что я пытаюсь слижком быстро мотор ускорить и ему "плохо" от такого ускорения? Что проблема не в контроллере, а в связке мотор/контроллер.Если его медленно раскручивать и тогда он сможет больше чем 400 шагов.
Спасибо за ссылку на дискуссию. Попробую вечером.
Двигателю не плохо, а он физически не может успеть за вращаением поля так как якорь имеет инерцию и поэтому двигатеть не может с нуля мгновенно разогнаться до 800 шагов, его нужно разгонять.
Двигателю не плохо, а он физически не может успеть за вращаением поля так как якорь имеет инерцию
Сорри за Сленг. Но ты меня понял.
У меня появился другой вопрос: Откуда контроллер знает, как долго длится шаг. Ведь для медленного шага надо делать медленную смену фаз , а для быстрого -быструю. А я питаю его только стартовыми импульсами...
Шаг длится до следующего шага.
Шаг длится до следующего шага.
Как это? Мне казалось, что шаг состоит из подачи двух управляющих импульсов на обмотки. С некотрым смещением по времени...
Вам казалось.