драйвер шагового двигателя A4988

arz_serg
Offline
Зарегистрирован: 05.04.2019

Доброго времени суток, форумчане!

Подскажите пожалуста, мучают два вопроса:

1. Чем отличаются режимы SLEEP и ENABLE? Ну т.е. какая разница усыплять драйвер через SLEEP или отрубать через ENABLE?

2. Возможно ли как-то на А4988 отключить функцию удержания двигателя? Имеется 7 шаговых двигателей, 7 драйверов и 1 ардуина. Пихать ещё 7 выходов ENABLE или SLEEP в ардуино некуда, да и нет желания, а функция удержания двигателя не нужна... Можно что-то придумать?

sadman41
Offline
Зарегистрирован: 19.10.2016

1) ENA просто выходы отключает, а SLEEP ещё и часть внутренней логики отключает;
2) Можно. Только тогда мотор не будет ходить. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

1) ENA просто выходы отключает, а SLEEP ещё и часть внутренней логики отключает;

Я вот не знаю, а проверять лезть .. может Вы так знаете.

Как раз в плане удержания слип и энабл одинаково себя ведут? Мне казалось энабл отключает удержание, а слип - нет. Я не прав?

sadman41
Offline
Зарегистрирован: 19.10.2016

ЕвгенийП пишет:

sadman41 пишет:

1) ENA просто выходы отключает, а SLEEP ещё и часть внутренней логики отключает;

Я вот не знаю, а проверять лезть .. может Вы так знаете.

Как раз в плане удержания слип и энабл одинаково себя ведут? Мне казалось энабл отключает удержание, а слип - нет. Я не прав?

Так я для Вас могу ещё раз слазалить ;)

Enable Input (ENABLE). This input turns on or off all of the FET outputs. When set to a logic high, the outputs are disabled. When set to a logic low, the internal control enables the outputs as required. The translator inputs STEP, DIR, and MSx, as well as the internal sequencing logic, all remain active, independent of the ENABLE input state.

Sleep Mode (SLEEP). To minimize power consumption when the motor is not in use, this input disables much of the internal circuitry including the output FETs, current regulator, and charge pump. A logic low on the SLEEP pin puts the A4988 into Sleep mode. A logic high allows normal operation, as well as start-up (at which time the A4988 drives the motor to the Home microstep position). When emerging from Sleep mode, in order to allow the charge pump to stabilize, provide a delay of 1 ms before issuing a Step command.

arz_serg
Offline
Зарегистрирован: 05.04.2019

sadman41 пишет:

1) ENA просто выходы отключает, а SLEEP ещё и часть внутренней логики отключает;
2) Можно. Только тогда мотор не будет ходить. 

1) т.е. для снижения потребляемого тока лучше использовать SLEEP, верно?

2) почему? можно поподробней? )

sadman41
Offline
Зарегистрирован: 19.10.2016

arz_serg пишет:

1) т.е. для снижения потребляемого тока лучше использовать SLEEP, верно?

Ну, если вы там много наэкономите, и никуда не торопитесь на старте, то лучше, конечно.

arz_serg пишет:

2) почему? можно поподробней? )

А что тут подробничать? Драйвер или подаёт ток на обмотки или не подаёт. В первом случае мотор ходит и удерживается, во втором - наоборот.

arz_serg
Offline
Зарегистрирован: 05.04.2019

sadman41 пишет:

А что тут подробничать? Драйвер или подаёт ток на обмотки или не подаёт. В первом случае мотор ходит и удерживается, во втором - наоборот.

а, я думал в смысле не долго жить будет

ну хотелось бы чтоб он ток подавал только когда есть импульсы на STEP, а пока импульсов нет - отдыхал

sadman41
Offline
Зарегистрирован: 19.10.2016

Думаю, что это могут делать более дорогие (раз в пять по цене) драйверы. Я читал, что они умеют снижать ток во время простоя. Т.е. если степов не было некоторое время - подаваемый ток понижается. Таким образом - на удержании мотор греется меньше.

arz_serg
Offline
Зарегистрирован: 05.04.2019

sadman41 пишет:

Думаю, что это могут делать более дорогие (раз в пять по цене) драйверы. Я читал, что они умеют снижать ток во время простоя. Т.е. если степов не было некоторое время - подаваемый ток понижается. Таким образом - на удержании мотор греется меньше.

ну вобщем в моем случае без вариантов: либо заводить SLEEP'ы на ардуину, либо оставлять удержание, третьего не дано, верно?

sadman41
Offline
Зарегистрирован: 19.10.2016

Простого способа я не вижу. Наверное можно что-то наколхозить на 555-х таймерах, чтобы они ENA манипулировали, если степов не было опр. время.

b707
Offline
Зарегистрирован: 26.05.2017

arz_serg пишет:

ну вобщем в моем случае без вариантов: либо заводить SLEEP'ы на ардуину, либо оставлять удержание, третьего не дано, верно?

если все 7 моторов спят примерно в одно и то же время - можно все СЛИПы завести на один общий пин

arz_serg
Offline
Зарегистрирован: 05.04.2019

b707 пишет:

если все 7 моторов спят примерно в одно и то же время - можно все СЛИПы завести на один общий пин

а вот это мысль )))

и как я сам не догадался... аж стыдно

спасибо! )

inspiritus
Offline
Зарегистрирован: 17.12.2012

Доброго времени суток.

надысь я экспериментировал с этими драйверами и кросс-платой CNC с прменением grbl

Sleep не успел проверить, но EN начисто вырубает выходы. Это конечно неприятно, тк, если на оси есть нагрузка ( например , как в моем случае она вертикальная) , то , мягко говоря "провисает". С другой стороны при вкл EN  моторы сильно греются.

в grbl есть параметр (кажется $1=...) который указывает время в ms активного состояния EN после завершения движения, причем параметр 255 означает всегда EN, которые в CNC шильде объединены.

конечно интересно при движении подавать максимальный ток , с целью обеспечения высокой скорости, а при удержании некоторый достаточный. 

Пока в этом драйвере такой возможности не нашел :(

Кстати так и не понял, почему grbl (328) с уной работает, а с мегой нет. Вроде как у стандартной меги уновские пины все разведены универсально. Насколько я помню у меги только SPI на других пинах???

sadman41
Offline
Зарегистрирован: 19.10.2016

В этом - нет. Есть, к примеру, в DM542 (что сходу вспомнил): http://www.americanmotiontech.com/Upload/Manuals/DM542m.pdf , стр 8 Standstill current settings.

У тринамика в TMC2100 и других есть тоже "энергосберегающие" технологии - они, если правильно помню, ток подают плавно наращивая в начале и снижая в конце "такта". Поэтому, в сущности, в "паузах" в обмотку не гонится полная моща.

inspiritus
Offline
Зарегистрирован: 17.12.2012

Поразмыслив , хочу завтра попробовать подавать шим на EN. Есть надежда, что можно будет регулировать усилие удержания, одновременно не перегревая двиг.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

inspiritus пишет:

хочу завтра попробовать подавать шим на EN. 

Ахренеть!

vvadim
Offline
Зарегистрирован: 23.05.2012

неужели так трудно почитать документацию на драйвер.....

inspiritus
Offline
Зарегистрирован: 17.12.2012

Расшифруйте Ваше замечание.

я читал и не нашел прямых возможностей управления токами удержания.

переменник тут не в счет , я хочу крутить полным током а удерживать пониженным.

vvadim
Offline
Зарегистрирован: 23.05.2012

если в документации на драйвер вы не нашли ваших хотелок, то ищите другой драйвер, где их можно реализовать.

elena.malyh.71
Offline
Зарегистрирован: 11.02.2020

Помогите решить тесты, пожалуйста... 

elena.malyh.71
Offline
Зарегистрирован: 11.02.2020
Какую комбинацию логических уровней следует подать на входы INPUT драйвера двигателя, чтобы мотор стал вращаться если на ENABLE подан LOW? *
0, 1
при 0 на ENABLE мотор не запустится
1, 0
0, 0
elena.malyh.71
Offline
Зарегистрирован: 11.02.2020

https://sites.google.com/site/ifizmat/robotics/test2018-05  На этом сайте все 5 тестов по робототехнике, кроме 1 (где 10 вопросов) и 5 (где 1 вопрос)

sadman41
Offline
Зарегистрирован: 19.10.2016

elena.malyh.71 пишет:

Какую комбинацию логических уровней следует подать на входы INPUT драйвера двигателя, чтобы мотор стал вращаться если на ENABLE подан LOW? 

http://www.ti.com/lit/ds/symlink/l293d.pdf  Table 3. Bidrectional DC Motor Control

elena.malyh.71
Offline
Зарегистрирован: 11.02.2020

Спасибо, что ответили. Хотя, я ничего не поняла...

elena.malyh.71
Offline
Зарегистрирован: 11.02.2020

Ещё раз СПАСИБО. Разобралась. И ещё вопрос: Представим, что на роботе установлен дальномер, как в эксперименте "Жесткая сцепка", в скетче есть весь код, касающийся конфигурации пинов, а основной цикл состоит из строчки drive(measure(), measure()); (Обе функции определены аналогично упомянутому эксперименту). Какие утверждения будут верны в отношении работы такого робота, запущенного в пустой комнате? Решите задачу без физической реализации, опираясь на известные вам сведения. 

sadman41
Offline
Зарегистрирован: 19.10.2016

Что делает drive(measure(), measure()) ?

elena.malyh.71
Offline
Зарегистрирован: 11.02.2020
из 6 ответов нужно выбрать несколько правильных
 
если расстояние до стены больше 255 см, робот не поедет
робот начнет движение, постепенно ускоряясь
робот остановится на расстоянии 255 см от стены
робот никогда не будет ехать назад
робот начнет движение быстро, но постепенно замедлится и остановится
робот будет ездить то вперед, то назад
 
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ну так и выбирай. На то тебе и образование дадено. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

http://www.ti.com/lit/ds/symlink/l293d.pdf  Table 3. Bidrectional DC Motor Control

Тоже мне - ответ :-(

Даме даташит водку даже Бегемот не предлагал! :-)

sadman41
Offline
Зарегистрирован: 19.10.2016

Дак я и не сказочный персонаж...