С моторами робоняши происходит вот что: два мотора, что были изначально в наборе, работали нормально. Потом один стал крутиться медленнее, а при 0.3 от мощности и ниже не работать в принципе. Заменили. Теперь то же самое со вторым мотором. Из-за чего это происходит?
Я прошу прощения у ТС, но, что бы не плодить одинаковых тем, спрошу тут. Имеется драйвер шагового двигателя (Troyka-модуль http://amperka.ru/product/troyka-stepper-motor-driver) и пытаюсь через него управлять шаговым двигателем. Что бы наверняка, купил для начала шаговый двигатель 28STH45-0674A (http://amperka.ru/product/stepper-motor-ldo-28sth45-0674a), набросал скетчик. К плате (не к шилде) подвел внешнее питание +5 вольт. В целом скетч работает как надо. Решил, подключить собственно целевое исполнительное устройство (китайский перельстальтический насос Kamoer). Движок у него на 12В. Согласно описания, к шилде подвел внешнее питание 12В/2,5А. Результат - отрицательный. С внешним питанием движок вибрирует как прокаженный, на управляющие команды (реализованы через кнопки) не реагирует, ни фига не поворачивается. Отключение внешнего питания 12В позволяет управлять движком, но, очевидно, ввиду недостаточности напряжения и, возможно, тока, работа весьма не стабильна. Бывает, что не происходит поворот на заданное число градусов, мотор "заедает". Не всегда удается совершить один шаг оборота (1.8 градуса). Т.е. с внешним питанием 12В совсем не работает, а с недостаточным работает, но нестабильно. Переплюсовка исключена. Шилда исправна, тем более одинаковый глюк наблюдается на обоих имеющихся шилдах. Скетч исправен, потому как "тестовый" мотор работает как надо. Без подключения питания к мотор-шилде на ней сильно греется микросхема, что в общем-то логично. Что я делаю не так?
Двигатель наоса биполярный. По линиям подключения вопросов нет - потому что, прокинув линию питания и земли отдельными проводами с платы Arduino на motor shield, удалось заставить работать насос в соответствии с ожиданиями и программой. Только скорость вращения относительно небольшая, что объяснимо, учитывая, что на плату Arduino я подаю внешнее напряжение 5В, а моторо - 12В. Но вот попытка на тот же разъем шилда подать внешние 12 вольт непосредственно от источника питания приводят к непонятным глюкам. Земля в розетке у обоих блоков питания общая и к ней в принципе вопросов нет. Пока грешу на источники питания (вероятно импульсные, но вот как раз в этом я не очень большой специалист). Как бы к самой программе и подключению мотора к шилде вопросы отпали.
А с чего вы решили, что заземление в розетке связано с выходом блока питания? Не надо вообще ездить по мозгам, такие вопросы начинаются со схемы.
Схема предельно простая. Arduino Mega 2560. На нее сверху прицеплена Troyka Shield и Troyka Mega Tail Shield. К цифровым выводам 2-5 прицеплена четырехкнопочная клавиатура (http://amperka.ru/product/troyka-quad-switch). К выходам 14,15,16 "хвоста" прицеплен драйвер шагового двигателя (http://amperka.ru/product/troyka-stepper-motor-driver). Разъемы на плате Troyka Shield GND и VIN соединены с соответствующим разъемом на драйвере двигателя. К остальным четырем контактом подключен двигатель в соответствии со схемой подключения обмоток. Программа для теста самая элементарная - кнопку нажал - мотор сделал шаг (или полный оборот, в зависимости от того какая из кнопок нажата). К коду вопросов нет. К подключению глобально - тоже. Оба мотора работают. НО! Проблема, что питание двигателя идет от питания платы, соответственно оно 5-вольтовое. Мало того, что из-за этого мотор не развивает максимальных оборотов - это еще полбеды, но основная проблема - это, что у меня к плате будет подключено ПЯТЬ моторов и еще куча всякой другой требухи от термометров до GPS модуля, которые сами по себе тоже потребляют прилично. Соответственно, я понимаю, что в таком режиме у меня либо в все умрет от недостатка тока, либо, если ток подать приличный, то сначала перегреется и потом умрет. В описании драйвера шагового мотора конкретно говорится, что на разъем питания можно подать внешний источник. Но, его подключение сразу вносит сумятицу в работу мотора. И я никак не могу понять почему это происходит. И еще очень сильно греется микросхема драйвера мотора. Единственное, что мне приходит в голову, что этот шилд на самом деле весьма маломощный и даже заявленные 0.6A для него перебор, хотя в своем же примере они предлагают использовать связку мотором на 0,67А (http://amperka.ru/product/stepper-motor-ldo-28sth45-0674a). Завтра привезут другой, более мощный драйвер двигателя - поглядим, может с ним повеселее будет.
TMC - это уже для серьезных установок. Для прототипирования нет смысла тратить 100+ евро за драйвер. Опять же, на серьезной установке, когда все алгоритмы будут отработаны, и перельстальтический насос надо брать не китайский Kamoer, а японский Welco. Но тогда и Arduino тоже выкидывается за борт и ставится нормальный промышленный ПЛК.
У меня в принтере стоят TMC2660. Не такие уж и дорогие. Работают - песТня.)) 1.7а безо всяких радиаторов.
Боюсь, что у меня недостаточно знаний сделать грамотную обвязку голого чипа, что бы подружить его с одной стороны с Arduino, с другой - c моторами. Тем не менее, спасибо за совет. Я буду иметь ввиду.
Вы совершенно правы. Проблема оказалась именно в таковой перегрузке драйвера. Купил другой - на 5А и все зашелестело как и задумывалось. Всем спасибо за помощь.