4-канальный оптоизолятор TZT TLP281 и странности в работе шагового мотора

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
283
23
Москва. Щукино
Имеем некое уст-во на котором 2 независимых мотора НЕМА17 и они управляются через драйверы TMC2208 обычной ардуинкой. Претензий к работе нет.
Возникло желание отойти от ус-ва на 30-50 метров. Беспроводной вариант не прокатывает !!!
Питание моторов через не толстый но длинный провод не прокатывает, значит удлинить нужно сигнальные провода. Практика показала что при такой длинне ловится немерено помех и тоже не прокатывает.
Что было сделано, купил эту оптопару на 4 канала, как раз 2 канала идут на Dir и 2 на шаги... Всё нормально. Оптопару поставил возле драйверов и моторов, и длинным проводом связал с ардуинкой... В качестве проводника взял обычную витую пару. Уст-во заработало. Вроде нужно радоваться, но не тут то было.
Уст-во называется слайдер. Он едет и крутит камеру. Так вот если он работает без оптопары, то он едет по выставленым точкам и не сбивается даже через 1 час. Как включаешь оптопару, длинна кабеля 1 метр всего, то постепенно точки начинают съезжать... причем в одну сторону... Это происходит не быстро, но за 10-20 минут на 5мм уезжает... и камера так же уходит с выставленого объекта...
Вопрос, в чем может быть причина такого поведения уст-ва ? Скорость вращения моторов не высокая, 10-20 оборотов в минуту...
Спасибо хоть за какие то идеи... даже не представляю в какую сторону копать...
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,363
964
58
Марий-Эл
Всё равно помехи ловятся.
Я так понял вы пытаетесь ардуинку отвести от двигателей подальше. Наподобие пульта.
Если так, то нужно ставить две ардуинки. Одна стоит у двигателей и управляет ими, вторая работает как пульт, а между ними помехозащищённый канал.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
283
23
Москва. Щукино
На проводе 1 метр помехи ? Не очень верится, там все же не аналоговый сигнал с милливольтами... Когда помехи, то моторы ведут себя неадекватно... А тут все работает четко, но такое ощущение что в одну сторону он дает 101 импульс вместо 100, а в обратную дает всегда 100 (цифры условные) и поэтому на каждом цикле перемещения он как бы отползает в сторону конечной точки... но при этом конечная точка так же отползает... А расстояние между точками остается неизменным. Тут явно не помеха. И такая работа у моторов и при 1 метре кабеля и при 10 метрах....
Скетч естественно один и тот же... И вот этот момент всё портит, а чем это вызвано даже и предположить не могу...
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,953
623
44
@Андрей К., Оптопара - это только гальваническая изоляция.
Хотите защиту от помех, то как предложил @Эдуард Анисимов ставьте два контроллера, а между ними помехозащищенный канал, например на проверенном RS485. А можно и без второго контроллера, TMC2208 судя по даташиту поддерживает UART.

Если уж хотите разобраться, помеха это или еще чего - без осциллографа не вижу смысла обмусоливать эту тему, это как гадать на кофейной гуще.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
283
23
Москва. Щукино
@Геннадий П,
Осцилографа нет.
Я когда всё это делал, рассуждал так - Оптопара на входе это светодиод. Помехой его засветить сложно... и получается что ардуинка по сути мигает диодом как на елке... А дальше от диода срабатывает ключ, который управляет пинами драйвера... В теории всё логично. Я даже 10см витую пару подключал, там точно помехам неоткуда прилететь... чтоб засветить диод и дать лишний импульс на движение...
Мой вариант работает корректно, но откуда то берется лишний (лишние) импульсы, причем только в одну сторону.
А настолько сильно усложнять схему за счет RS485 по моему не целесообразно. Я отчасти понимаю что это выход, но как то хотелось без таких выкрутасов. Тем более что у меня сейчас идет 4 провода управления драйверами и 2 питание на пульт для ардуинки. А если ставить RS485 то нужно будет ещё кабель цеплять...
Спасибо за ответ.
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,363
964
58
Марий-Эл
Тем более что у меня сейчас идет 4 провода управления драйверами и 2 питание на пульт для ардуинки. А если ставить RS485 то нужно будет ещё кабель цеплять...
Не понял логики.
Идёт 4 провода управления, плюс 2 провода питания. Это несложно.
Будет 2 провода управления и 2 провода питания. Это уже сложно.
Ничего не понял.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,953
623
44
Я когда всё это делал, рассуждал так - Оптопара на входе это светодиод. Помехой его засветить сложно... и получается что ардуинка по сути мигает диодом как на елке...
А ещё наверное этот светодиод (оптопара) подключён к выходу контроллера без всяких дополнительных цепей. Сколько вы там хотели тянуть провод, 30-50 метров? Вы знаете что у вас доходит вместо меандра?
 
  • Лойс +1
Реакции: poty

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
283
23
Москва. Щукино
@Геннадий П,
Согласен, осцилографа нет, и что доходит не знаю. Но даже при коротком проводе ситуация не меняется, о длинном проводе сейчас даже не говорю.
А что можно повесить для улучшения сигнала ? Какой то кондюк ? или что ? Подскажите...
Спасибо за совет.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
283
23
Москва. Щукино
@Эдуард Анисимов,
На 2 драйвера идут 2 сигнала шагов и соответственно 2 сигнала направления... Вот 4 провода. и 2 питания. Так же сигнал включения драйверов EN, и микрик крайнего положения. Все 8 проводов заняты.
Если я правильно понял, то по этому протоколу нужно подключать полную витую пару... Я не понимаю в этих моментах от слова совсем...
Еслиб можно было использовать этот контроллер просто как удлиннитель это одно, но я понимаю что нужно для подключения задействовать какой то протокол в ардуине, а там памяти уже не осталось...
 

poty

★★★★★★✩
19 Фев 2020
3,179
928
@Андрей К., считаю, что Ардуино, драйвер и мотор должны быть расположены рядом, как один блок, а выносить нужно управление Ардуино (кнопки или что там у Вас). Тогда оптопары на управлении мотором не потребуются.
Оптопары имеют время включения / выключения, что на ШИМ приводит к искажению формы импульсов и возможной их потере. Аналогично "действует" индуктивность/ёмкость кабеля.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
283
23
Москва. Щукино
@poty,
В пульте управления у меня стоит дисплей, энкодер... а это не отделить от ардуинки... поэтому пульт в одной коробке, а драйверы непосредственно там где моторы.
 

poty

★★★★★★✩
19 Фев 2020
3,179
928
@Андрей К., вот дисплей и энкодер оставляете в "пульте управления", а всё остальное - переносите в Ардуино, стоящую непосредственно рядом с мотором.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
283
23
Москва. Щукино
@poty,
просто удлинением проводов я полагаю не прокатит... и получается опять нужно ставить какой то соединитель сделаный на чем то... Усложнять конструкцию не хотелось, да и софт вероятно нужно переписывать... а я не програмист.
 

poty

★★★★★★✩
19 Фев 2020
3,179
928
Куда- то мой пост пропал после удаления сдвоенного сообщения, ну да ладно.
@Андрей К., я не понял про удлинение проводов, я говорил о том, что то, что Вы удлинили - не "сигнальные" провода. И предлагал разделить код на две части: первая - управление и отображение (ПДУ), вторая - исполнительный механизм. И разместить на разных Ардуино (вот первоначальное изложение идеи от @Эдуард Анисимов). Но если, действительно,
я не програмист.
, то остаётся биться с граблями. В качестве первой меры, для устранения помех на линии, можно попробовать убрать оптопары и нагрузить линию на допустимое по току сопротивление, установленное непосредственно на приёмном конце (у драйвера). Может не сработать, так как выходное сопротивление Ардуино может быть большим и размывать фронты импульсов из-за реактивностей в линии. Если это так, то можно поставить любой транзистор n-p-n в режиме эмиттерного повторителя в начале линии.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
283
23
Москва. Щукино
@poty,
Начал с простого, зашунтировал... пока тестится....первые впечатления вроде улучшилось... но нам нужно пару часов чтоб отработало...
Пока на прогоне.
Спасибо за совет.