Официальный сайт компании Arduino по адресу arduino.cc
Степмотор, задачка для пытливых
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сб, 06/02/2016 - 20:17
Помогите со степмотором
В начале вращения вал рывком отбрасывает в обратную сторону и потом начинает вращение в нужную сторону, при реверсе повторяется то же самое. В программе нашёл где сидит заноза, но не могу понять почему она там возникает.
Вот скэтч:
void loop() { if (digitalRead(btn1) == HIGH) { digitalWrite(11, HIGH); stepper.step(10); stepper.setSpeed(50); digitalWrite(led1, HIGH); } else {digitalWrite(btn1, LOW);} if (digitalRead(btn2) == HIGH) { stepper.step(-1); stepper.setSpeed(20); digitalWrite(11, HIGH); digitalWrite(led2, HIGH); } else {digitalWrite(btn2, LOW);} if (digitalRead(btn3) == HIGH) { stepper.step(1); stepper.setSpeed(20); digitalWrite(11, HIGH); digitalWrite(led3, HIGH); } else {digitalWrite(btn3, LOW);} if (digitalRead(btn1) == LOW && digitalRead(btn2) == LOW && digitalRead(btn3) == LOW) { digitalWrite(11, LOW); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); } }
проблема в 27 строке, если убираю эту строку мотор работает ровно.
Эта строка отключает мотор в драйвере DVR8825 motor NEMA14, обесточивает RTS+SLP
Отключаю для того чтобы мотор не грелся.
Вопрос: почему сначала бросок назад, а потом идёт вперёд?
Схема включения секретна? Могу предположить, что мотор незашунтирован диодом, но это лишь предположение. Точнее спрашивайте у того, кто схему видел.
схема простая, драйвер, на выходе 4 пина на две обмотки, мотор биполярник, на входе, два пина DIR и STEP, подклюаются к ардуино NANO, Пин 8 и 9, а с 11 пина снимается напряжение и подаётся на пины RTS + SLP на драйвере, чтобы мотор крутился нужно чтобы на эти два пина подавалось низкое положительное напряжение. Когда на выходе НАНО пин 11 - 0 вольт, драйвер отключает мотор , когда на 11 пине 5 вольт, мотор включается. Питание для мотора подаётся отдельно на пин V , там 9 вольт. Вот и вся схема. Спасибо за участие.
И скетч частично секретный? А зачем вы его (ШД) выключаете?
Нет не скрываю
Выключаю, потому, что греется мотор, очень сильно, если мотор не крутится, то к обмоткам прикладывается полное напряжение, да есть переменный резистор в драйвере, да он уменьшает напряжение но и уменьшается крутящий момент.
Вот полный скэтч:
Если выключаю 54 и 57 строку всё работает прекрасно, но мотор начинает греться.
Рабочая температура ШД до 80 по Цельсию (это горячо), разумеется в удержании поменьше, так как ток удержания можно регулировать. При штатной работе никто и никогда не отключает ШД, потому что вы теряете отсчет (если вам он важен). На хорошем драйвере есть регулировка тока удержания, обычно перемычки на несколько дискретов.
да, так и есть, на драйвере резистор, он ограниивает ток удержания и за одно убивает мощность двигателя, вот тут и компромис. Возвращаясь к программе, почему идёт бросок назад, выявил точнее, это делает 57 строка, 54 непричём.
Спасибо за участие.
На 11 пине - drv, что это? Скорее dir? Вы уже несколько раз упомянули о моменте и мощности двигателя, а вы считали моменты выбирая типоразмер ШД? Может перейти на NEMA 23 и не "париться"!
Нашел в тексте (комментарии пишите) это Enable. Включение ШД всегда сопровождается небольшим толчком, мотор занимает место у одного из полюсов, при нагрузке это сопровождается изредка звуком и рывком.
drv пин это 11 пин который включает и выключает RTS+SLP на драйвере, я пользуюсь номером пина , int drv можно убрать.
Тут толчок приличный и при реверсе получается как бы программой искуственно созданный люфт. Не могу придумать локальный таймер - задержку на выключение 11 пина, перевода в 0 вольт.
Толчки и моменты уже процентов на 90 механика а не Ардуино, а я понятия не имею, что у вас крутится, толкает и т.п. у вас тоже сериал X-files стали показывать?
. Когда убираю те две строки всё нормально, это не механика. Я смотрю Kartina TV интернет ТВ, начали показывать, одгим словом ГОЛИВУД, не смотрю.
;) Я в смысле ваше устройство что делает? Мотор там крутит, а само устройство секрет? (X-file).
Ладно загляну в библиотеку Stepper я ей не пользуюсь, тогда и с кодом станет ясно. btn это кнопки?
устройство крутит конденсатор насторойки в антенне, всё очень просто.
Я разобрался в чём дело, нельзя запитывать RTS+SLP через выхода ардуино, все дёрганья идут от туда. Спасибо за участие.