Помогите разогнать контроллер Шагового мотора 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 шагов, его нужно разгонять.
Двигателю не плохо, а он физически не может успеть за вращаением поля так как якорь имеет инерцию
Сорри за Сленг. Но ты меня понял.
У меня появился другой вопрос: Откуда контроллер знает, как долго длится шаг. Ведь для медленного шага надо делать медленную смену фаз , а для быстрого -быструю. А я питаю его только стартовыми импульсами...
Шаг длится до следующего шага.
Шаг длится до следующего шага.
Как это? Мне казалось, что шаг состоит из подачи двух управляющих импульсов на обмотки. С некотрым смещением по времени...
Вам казалось.