- Сигналы управления драйвера ШД: PUL/DIR, STEP/DIR, CW/CCW. Управление шаговыми драйверами DM860H, DM556, TB6600. с Arduino.
- Общие сведения:
- Микрошаг:
- Ограничение тока фазы:
- Ток удержания:
- Силовые выводы драйвера:
- Сигналы управления STEP/DIR (PUL/DIR):
- Сигналы управления CW/CCW:
- Подключение управляющих выводов драйвера:
- Подключение драйвера к Arduino:
- Управление двигателем при помощи Arduino:
- Драйвер шагового двигателя DM860H (7.2A)
- Общие сведения:
- Характеристики:
- Подключение:
- Настройка:
- Индикация ошибок:
Сигналы управления драйвера ШД: PUL/DIR, STEP/DIR, CW/CCW. Управление шаговыми драйверами DM860H, DM556, TB6600. с Arduino.
Общие сведения:
Шаговый двигатель это бесколлекторный двигатель, ротор которого вращается не плавно, а шагами (дискретно). Один оборот ротора (360°) состоит из определённого количества шагов. Количество полных шагов в одном обороте указывается в технической документации двигателя.
Например, ротор шагового двигателя 17HS1352-P4130, за один полный шаг, поворачивается на 1,8°. Значит для поворота ротора на 360° двигатель должен совершить 200 полных шагов.
Для совершения одного полного шага на обмотки двигателя поступает серия сигналов от драйвера (как в полношаговом «1», так и в микрошаговых режимах «2», «4», «8», «16»).
С принципом работы шаговых двигателей можно ознакомиться в разделе Wiki — ШД.
Микрошаг:
Большинство драйверов позволяют разделить полный шаг двигателя на несколько микрошагов. Выбор микрошага устанавливается согласно таблице в инструкции к драйверу. В таблице указывается количество микрошагов на полный шаг «Microstep» (1/2/4/8/16/32/. ) и/или количество тактов на полный оборот вала «Pulse/rev» (200/400/800/1600/3200/6400/. ).
Если для целого поворота ротора двигателя в режиме 1 микрошаг на полный шаг требуется 200 тактов, то в режиме 4 микрошага на полный шаг, потребуется уже 800 тактов.
Чем больше микрошагов в полном шаге, тем точнее и плавнее поворачивается ротор шагового двигателя, но для поддержания той же скорости, требуется увеличивать частоту следования тактовых импульсов.
Ограничение тока фазы:
Большинство драйверов позволяют ограничить ток фазы (ток протекающий через обмотки двигателя). Выбор тока фазы осуществляется согласно таблице в инструкции к драйверу. В таблице указывается действующий ток «Current» и/или пиковый ток «PK Current». Чем выше ток, тем выше отдаваемый момент (сила двигателя).
Слишком большой ток приведёт к перегреву двигателя и может вызвать его поломку, а слишком маленький может привести к пропуску шагов, или нестабильному вращению ротора.
У некоторых драйверов ограничение тока осуществляется поворотом потенциометра.
Ток удержания:
Ток удержания это постоянный ток проходящий через обмотки двигателя, удерживающий вал в неподвижном состоянии. Некоторые драйверы позволяют снизить ток удержания.
Снижение тока удержания приводит к снижению нагрева двигателя при его удержании.
Силовые выводы драйвера:
Силовые выводы используются для подачи напряжения питания шагового двигателя и подключения его обмоток.
- Входы «VCC», «GND» / «+V», «GND» / «AC+», «AC-» — предназначены для получения напряжения питания шагового двигателя.
- Выводы «A+» и «A-» — предназначены для подключения первой обмотки шагового двигателя.
- Выводы «B+» и «B-» — предназначены для подключения второй обмотки шагового двигателя.
Подключение обмоток двигателя к драйверу зависит от количества выводов у двигателя.
Драйверы DM860H, DM556, TB6600 позволяют работать только с биполярными двигателями. Двигатели с 4 выводами подключаются по схеме А. Двигатели с 6 выводами подключаются по схеме Б или В. Двигатели с 8 выводами подключаются по схеме Г или Д.
Запрещается подключать или отключать обмотки двигателя на включенном драйвере!
Сигналы управления STEP/DIR (PUL/DIR):
- Вход драйвера «STEP» (он же «PULSE») — предназначен для получения тактовых импульсов. За один импульс ротор двигателя поворачивается на один микрошаг. Вход может работать по фронту или спаду импульса. Чем выше частота импульсов, тем выше скорость вращения ротора.
- Вход драйвера «DIR» — предназначен для выбора направления вращения двигателя («0» — в одну сторону, «1» — в другую сторону). Смена состояния вывода «DIR» должна осуществляться при отсутствии импульсов на выводе «STEP».
- Вход драйвера «ENABLE» — разрешает работу двигателя. У большинства драйверов данный вход является инверсным, работа двигателя разрешена при отсутствии напряжения на входе. Некоторые драйверы позволяют вообще не подключать этот вход. Если работа двигателя запрещена, то его обмотки электрически отключаются и вал двигателя не удерживается.
- Двигатель отключён если на входе «ENABLE» есть напряжение.
Сигналы на входах «STEP» и «DIR» игнорируются драйвером. Вал двигателя освобождён. - Вал поворачивается на один микрошаг с каждым импульсом на входе «STEP», при условии что на входе «ENABLE» нет напряжения.
Направление поворота вала зависит от состояния на входе «DIR». - Вал двигателя удерживается в неподвижном состоянии если на входе «ENABLE» нет напряжения и на вход «STEP» не подаются импульсы.
- t1: После снятия напряжения со входа «ENABLE» должно пройти не менее 5мкс до изменения уровня на входе «STEP» или «DIR».
- t2: После изменения состояния на входе «DIR» должно пройти не менее 5мкс до подачи импульса на вход «STEP».
- t3, t4: Длительность импульса или паузы на входе «STEP» не должна быть меньше 2,5мкс.
- t5: Автоматическое снижение тока удержания происходит через 1-2 сек после подачи последнего импульса на вход «STEP». Время зависит от типа драйвера.
Сигналы управления CW/CCW:
(Данные сигналы не поддерживаются драйверами DM860H, DM556, TB6600)
- Вход драйвера «CW» — предназначен для получения тактовых импульсов. За один импульс ротор двигателя поворачивается на один микрошаг. Вход может работать по фронту или спаду импульса. Чем выше частота импульсов, тем выше скорость вращения ротора.
- Вход драйвера «CCW» — выполняет те же действия что и вход «CW», но ротор двигателя поворачивается в другую сторону.
- Вход драйвера «ENABLE» — разрешает работу двигателя. У большинства драйверов данный вход является инверсным, работа двигателя разрешена при отсутствии напряжения на входе. Некоторые драйверы позволяют вообще не подключать этот вход. Если работа двигателя запрещена, то его обмотки электрически отключаются и вал двигателя не удерживается.
- Двигатель отключён если на входе «ENABLE» есть напряжение.
Сигналы на входах «CW» и «CCW» игнорируются драйвером. Вал двигателя освобождён. - Вал поворачивается на один микрошаг с каждым импульсом на входе «CW» или «CCW», при условии что на входе «ENABLE» нет напряжения.
Направление поворота вала зависит от того, на какой вход поступают импульсы. - Вал двигателя удерживается в неподвижном состоянии если на входе «ENABLE» нет напряжения и на входы «CW» и «CCW» не подаются импульсы.
- t1: После снятия напряжения со входа «ENABLE» должно пройти не менее 5мкс до подачи импульса на вход «CW» или «CCW».
- t2: После последнего импульса на одном входе должно пройти не менее 5мкс до подачи импульса на дрогой вход.
- t3, t4: Длительность импульса или паузы не должна быть меньше 2,5мкс.
- t5: Автоматическое снижение тока удержания происходит через 1-2 сек после подачи последнего импульса. Время зависит от типа драйвера.
Подключение управляющих выводов драйвера:
Для подключения управляющих выводов можно использовать одну их следующих схем:
Допускается подключать драйвер к контроллеру без использования сигнала ENABLE, тогда выводы ENA+ и ENA- остаются свободными (не подключёнными).
- При уровне логической «1» = 5В, все сопротивления R исключаются из схемы.
- При уровне логической «1» = 12В, все сопротивления R равны 1кОм.
- При уровне логической «1» = 24В, все сопротивления R равны 2кОм.
Подключение драйвера к Arduino:
Так как логические уровни Arduino UNO равны 5В, то при подключении управляющих выводов к драйверу, ограничивающие сопротивления R не нужны.
Для подключения драйвера к Arduino воспользуемся схемой где выводы PUL-, DIR-, ENA- подключены к GND контроллера (правая схема на картинке выше).
Если подключить драйвер к Arduino без использования сигнала ENABLE, оставив выводы ENA+ и ENA- не подключёнными, то приведённый ниже скетч не сможет освобождать вал. Вал двигателя будет удерживаться всё время, пока он не вращается.
Выводы драйвера ENA+, DIR+ и PUL+ можно подключить к любым выводам Arduino, их номера указываются в начале скетча. В примере это выводы 2, 3 и 4 соответственно.
Если для подключения драйвера воспользоваться схемой где выводы PUL+, DIR+, ENA+ подключены к 5V контроллера (левая схема на картинке выше), то в скетче нужно изменить логические уровни устанавливаемые функциями digitalWrite().
Управление двигателем при помощи Arduino:
Для работы скетча установите микрошаг 1/4, что соответствует 800 тактов на 1 оборот. Микрошаг устанавливается DIP-переключателями драйвера согласно таблице на его корпусе.
Скетч постоянно повторяет 4 действия:
- Поворот вала на 2 полных оборота в одну сторону.
- Остановка двигателя на 5 секунд с удержанием вала.
- Поворот вала на 2 полных оборота в другую сторону.
- Остановка двигателя на 5 секунд с освобождением вала.
- Движение вала на 2 оборота в одну сторону:
Перед началом движения вала мы разрешаем работу двигателя (установив 0 на выводе ENA) и выбираем направление движения (установив 0 или 1 на вывод DIR), далее выполняем движение подачей импульсов на вывод PUL в теле цикла for. Каждый импульс поворачивает ротор на угол одного микрошага. Микрошаг установлен DIP-переключателями в положение 800 тактов на полный оборот. Код цикла выполняется 1600 раз, значит вал повернётся на 2 оборота. - Остановка вала с удержанием:
Двигатель не вращается, если на вывод PUL не поступают импульсы. Значит обычная задержка на 5000 мс приведёт к остановке двигателя на 5 секунд. Так как работа двигателя была разрешена (на выводе ENA ранее был установлен 0), то через обмотки двигателя будет протекать ток удержания вала. - Движение вала на 2 оборота в другую сторону:
Направление движения вала определяется логическим уровнем на выводе DIR. Ранее на нём был установлен 0, значит теперь нужно установить 1. Далее подачей импульсов на вывод PUL мы заставляем вращаться вал, но теперь в другую сторону. - Остановка вала без удержания:
В предыдущий раз мы останавливали двигатель прекращая подавать импульсы на вывод PUL, но не запрещали работу двигателя, в результате через его обмотки протекал ток удержания вала. Теперь мы запретим работу двигателя установив на выводе ENA уровень логической 1, что приведёт к исчезновению токов в обмотках двигателя. Теперь в течении 5 секунд, двигатель будет не только остановлен, но и его вал можно свободно вращать руками.
Управление шаговым двигателем по прерываниям от 2 таймера Arduino:
Данный скетч выполняет те же действия что и предыдущий. Но подача импульсов на вывод PUL осуществляется не в цикле основного кода, а по прерываниям от таймера.
Как только переменной step присваивается число отличное от 0, то на драйвер начинают поступать импульсы. Значение step убывает с каждым поданным импульсом, пока не достигнет 0, что приведёт к остановке вала двигателя. Частота подачи импульсов в Гц указывается функцией funcSetTimer2().
В данном скетче мы ждём завершение вращения вала проверяя значение step в цикле while, вместо этого можно выполнять другие действия, например, опрашивать концевики, датчики, измерять пройденное расстояние и т.д.
Код работает на Arduino UNO, Pro Mini, Nano, Mega.
Источник
Драйвер шагового двигателя DM860H (7.2A)
Общие сведения:
Драйвер шагового двигателя DM860H — предназначен для управления биполярным шаговым двигателем с номинальным напряжением от 24В до 110В и пиковым током до 7,2А. Драйвер оснащен защитой от перегрева, от повышенного напряжения и от перегрузки по току. Все входы управления имеют оптическую развязку. На радиаторе драйвера установлен вентилятор принудительного охлаждения.
В драйвере реализована высокая плавность движения вала шагового двигателя, высокий отдаваемый момент, алгоритмы подавления резонанса шагового двигателя и определения остановки вала двигателя («срыва»), функция автоматического снижения тока удержания и снижение уровня шума при работе двигателя.
Характеристики:
- Напряжение шагового двигателя: 24-110В постоянного тока;
- Драйвер позволяет запитать ШД от напряжения 18-80В переменного тока.
- Рабочий ток шагового двигателя: до 6,0А;
- Пиковый ток шагового двигателя: до 7,2А;
- Микрошаг: 2 / 4 / 8 / 16 / 32 / 64 / 128 / 5 / 10 / 20 / 25 / 40 / 50 / 100 / 125;
- Напряжение на управляющих входах: 5-24В.
(напряжение выше 5В подаётся через ограничительный резистор, см. схему); - Сигналы управления: PUL/DIR (STEP/DIR);
- Частота импульсов PUL (STEP): до 200кГц;
- Рабочая температура: от 0 до +50 °C.
Подключение:
Назначение силовых выводов колодки «High Viltage»:
- «AC+» и «AC-» — Вход напряжения питания шагового двигателя;
- «A+» и «A-» — Подключение первой обмотки шагового двигателя;
- «B+» и «B-» — Подключение второй обмотки шагового двигателя.
Подключение обмоток двигателя к драйверу зависит от количества выводов у двигателя.
Биполярные двигатели с 4 выводами подключаются по схеме А. Двигатели с 6 выводами подключаются по схеме Б или В. Двигатели с 8 выводами подключаются по схеме Г или Д.
Запрещается подключать или отключать обмотки двигателя на включенном драйвере!
Назначение выводов управления колодки «Signal»:
- «PUL+» и «PUL-» — Вход импульсов PULSE (сигнал STEP).
- «DIR+» и «DIR-» — Вход направления вращения (сигнал DIRECTION);
- «ENA+» и «ENA-» — Вход разрешения работы (инверсный сигнал ENABLE).
Для подключения управляющих выводов можно использовать одну их следующих схем:
Допускается подключать драйвер к контроллеру без использования сигнала ENABLE, тогда выводы ENA+ и ENA- остаются свободными (не подключёнными).
- При уровне логической «1» = 5В, все сопротивления R исключаются из схемы.
- При уровне логической «1» = 12В, все сопротивления R равны 1кОм.
- При уровне логической «1» = 24В, все сопротивления R равны 2кОм.
Подключение драйвера к Arduino и назначение управляющих сигналов, описано в статье Wiki — Сигналы управления драйвера ШД.
Настройка:
Выбор тока фазы:
Ток фазы настраивается DIP-переключателями SW1, SW2 и SW3 согласно таблице на корпусе.
В таблице указан рабочий ток, пиковый ток и положение переключателей.
Выбор тока удержания:
Ток удержания настраивается переключателем SW4.
- ON — ток в момент удержания не снижается «Full Cerrent» — полный ток фазы;
- OFF — ток в момент удержания снижается «Half Current» — половинный ток фазы.
Удержанием считается остановка двигателя с удержанием вала.
Выбор микрошага:
Микрошаг настраивается DIP-переключателями SW5, SW6, SW7 и SW8 согласно таблице на корпусе.
В таблице указано количество тактов на полный оборот вала и положение переключателей
(дополнительно может быть указано количество микрошагов на полный шаг).
Индикация ошибок:
Зелёный светодиод:
- Не светится — отсутствует питание на выводах «AC+» и «AC-» колодки «High Viltage».
Красный светодиод:
- Мигает 1 раз через паузу — ток в обмотках двигателя превысил допустимый предел;
- Мигает 2 раза через паузу — напряжение питания превысило допустимый предел;
Источник