0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Блок питания для шаговых двигателей схема

Шаговый мотор 28BYJ-48 (5V) + драйвер SBT0811 (на микросхеме ULN2003) + Arduino NANO.

Управление шаговым двигателем с помощью платы Arduino.

В этой и нескольких следующих статьях я планирую продемонстрировать, как управлять различными видами моторов.
Начнём мы своё изучение с шагового двигателя Step motor 28BYJ-48 (5V).


Этот миниатюрный и довольно дешёвый моторчик, как нельзя лучше подходит для экспериментов и обучения электронным премудростям.

Шаговый двигатель — это двигатель, который может точно перемещаться на минимально возможный угол, называемый шагом. Этот угол обусловлен устройством каждого конкретного мотора.
Преимуществом шаговых двигателей является возможность его неприрывного вращения, подобно двигателю постоянного тока, тогда как сервоприводы, обычно, ограничены углом поворота в диапазоне от 0 до 180°.
Недостатком шаговых двигателей является более сложное управление, чем в случаях с другими типами моторов.
Двигатель данного мотора имеет четыре обмотки, которые запитываются последовательно, чтобы повернуть вал с магнитом.

Получается 4 фазы, поэтому такой электромагнитный прибор называют шаговый 4-х фазный двигатель. Каждый из контактов четырех фаз соединен с красным проводом. Двигатель является к униполярным (однополярным) благодаря схеме соединения фаз. К красному проводу подключается питание. Перемещение вала на шаг происходит под действием импульса тока.
28BYJ-48-5V содержит пластмассовый понижающий редуктор с передаточным числом 64:1.

Основные характеристики мотора:

/*У данного мотора 4 провода (син., розов., жёлт., оранж.), которые мы подключаем к контактам ардуино. Номера контактов
указываем в массиве MotorPins, в порядке, соответствующем перечислению цветов, в нашем случае с D9 по D12*/

/*Целочисленная константа, показывающая количество фаз подачи сигналов для одного шага мотора. Для полушагового режима — 8
Для шагового — 4*/
const int OneTurnPhasesCount = 8;

/*Целочисленная константа, показывающая задержку в миллисекундах между фазами подачи сигналов мотору. Для полушагового режима — 2,
для шагового — 3*/
const int TurnPhasesDelay = 2;

/*Целочисленная константа, показывающая задержку в миллисекундах между переходами к вращению в другую сторону*/
const int Turn360Delay = 100;

/*Целочисленная константа, показывающая количество шагов, которые должен выполнить двигатель за полный оборот на 360 град.
Внутренний вал мотора совершает 64 шага за полный оборот, с учётом передаточного числа редуктора 64:1, то мотор должен совершать 64×64=4096 шагов*/
const int CountStepsOneDirection = 4096;

/*Целочисленная переменная, показывающая количество шагов, которые выполнил двигатель в одном направлении*/
int CurrentStepOneDirection = 0;

/*Целочисленная переменная, показывающая номер текущей фазы*/
int CurrentPhase = 0;

/*Целочисленная переменная, показывающая направление вращения мотора: 1 — по часовой стрелке, -1 — против*/
int TurnDirection = 1;

// Для полушагового режима

/*Массив, в котором указано какие сигналы подавать на контакты мотора в той или иной фазе. [фаза][контакт]. Контакты даются в порядке, перечисленном в массиве MotorPins — оранж., жёлт., розов., син. 0 — нет сигнала, 1 — есть сигнал*/
bool MotorTurnPhases[8][4] = <
< 1, 0, 0, 0>,
< 1, 1, 0, 0>,
< 0, 1, 0, 0>,
< 0, 1, 1, 0>,
< 0, 0, 1, 0>,
< 0, 0, 1, 1>,
< 0, 0, 0, 1>,
< 1, 0, 0, 1>>;

/*Функция CheckLastPhase проверяет не вышел ли номер текущей фазы за пределы размера массива MotorTurnPhases, который определяется переменной OneTurnPhasesCount и не пора ли поменять направление вращения*/
void CheckLastPhase()
<
if (CurrentPhase >= OneTurnPhasesCount)
<
CurrentPhase = 0;
>
if (CurrentPhase //Увеличиваем шаг на 1
CurrentStepOneDirection++;

//проверяем не совершил ли мотор полный оборот
if(CurrentStepOneDirection == CountStepsOneDirection)
<
CurrentStepOneDirection = 0;
TurnDirection *= -1;
delay(Turn360Delay);
>
>

/*Функция, в которой происходит инициализация всех переменных программы*/
void setup()
<
/*перебираем в цикле все контакты массива MotorPins и присваиваем им значение выходных, то есть дающих напряжение в 5В*/
for (int i = 0; i /*Функция-цикл в которой задаётся поведение программы*/
void loop()
<
//проверяем индекс текущей фазы
CheckLastPhase();

/*подаём напряжения на контакты мотора соответственно фазе, заданной в массиве MotorTurnPhases*/
for (int i = 0; i //переходим к другой фазе
CurrentPhase += TurnDirection;

// Пауза между фазами
delay(TurnPhasesDelay);
>

Если мы имеем дело с другими, моторами, требующими напряжение более 5В, то нужен дополнительный драйвер. Обычно, вместе с мотором 28BYJ-48 поставляется модуль SBT0811, содержащий микросхему ULN2003.

Он позволяет управлять мощными нагрузками с током до 500 мА и напряжением до 12 В на канал с помощью слабого тока микроконтроллера, такого как Arduino.
Плата содержит 4 контакта IN1-IN4, которые следует соединить проводами с контактами платы Arduino. От них будут поступать управляющие сигналы с микроконтроллера.
Белый разъём на плате — для подключения мотора.
Два контакта: «- + 5-12V» — это выводы для подключения внешнего источника питания от 5 до 12В. В нашем случае, источником питания будет сама плата Arduino NANO, так как наш мотор питается от 5V. Поэтому эти два контакта драйвера мы подключаем к 5V и GND разъёмам на плате Arduino.
Четыре светодиода на плате — это индикаторы шага, показывают на какой из четырёх проводов мотора подаётся напряжение.

Схема соединения такая.

Для того, чтобы её собрать воспользуемся такими, заблаговременно подготовленными проводочками, у которых на одном конце разъём, на другом штырёк.

Для удобства их присоединения к плате Arduino UNO, воспользуемся пластиковым элементом, напечатанным на 3D принтере, к которому приклеены два ряда контактов попарно спаянные с обратной стороны. В один ряд втыкается плата Arduino, в другой провода.

Вот так выглядит наша схема в сборке.

Подключаем питание к плате Arduino с предыдущей залитой программой. Устройство должно работать точно таким же образом, как и в предыдущем примере, с прямым подключением мотора к Arduino.
Если мы имеем дело с, скажем, 9ти вольтовым мотором, то у нас появляется в схеме блок питания на 9V. Тогда, «+» контакт на драйвере, для внешнего источника питания мы соединяем не с платой Arduino, а с проводом питания от блока, по такой схеме:

Добавляем кнопку и потенциометр (переменный резистор) в схему.

Теперь усложним схему и внесём в неё кнопку, которая будет задавать направление вращения мотора и потенциометр, задающий скорость вращения.

Мы к ним припаяли провода со штырьками.
Для подключения их к плате Arduino, нам понадобятся еще вот такие провода и два резистора на 10 КОМ.

Всё подключаем согласно схеме.

Вот что получилось.

Пишем код программы.

/*У данного мотора 4 провода (оранж., жёлт., розов., син.), которые мы подключаем к контактам ардуино. Номера контактов указываем в массиве MotorPins, в порядке, соответствующем перечислению цветов, в нашем случае с D12 по D9*/
int MotorPins[4] = <9, 10, 11, 12>;

/*Контакты от двух положений кнопки — цифровые*/
const int ButtonOn1 = 5;
const int ButtonOn2 = 4;

/*Контакт регистрирующий значение потенциометра — аналоговый*/
const int PotenciomData = 3;

/*Целочисленная константа, показывающая количество фаз подачи сигналов для одного шага мотора. Для полушагового режима — 8
Для шагового — 4*/
const int OneTurnPhasesCount = 8;

/*Целочисленная переменная, показывающая задержку в миллисекундах между фазами подачи сигналов мотору. Для полушагового режима — 2,
для шагового — 3*/
int TurnPhasesDelay = 2;

/*Целочисленная переменная, показывающая номер текущей фазы*/
int CurrentPhase = 0;

//состояние кнопки включено-выключено
int ButtonState = 0;

/*Целочисленная переменная, показывающая направление вращения мотора: 1 — по часовой стрелке, 0 — против*/
int TurnDirection = 1;

/*целочисленная константа, показывающая временную задержку между считыванием состояния кнопки и потенциометра*/
const int CheckButtonDelay = 15;

/*Целочисленная переменная показывающая, сколько прошло времени и не пора ли считывать состояние кнопки*/
int CurrentButtonDelay = 0;

//Для полушагового режима

/*Массив, в котором указано какие сигналы подавать на контакты мотора в той или иной фазе. [фаза][контакт]. Контакты даются в порядке, перечисленном в массиве MotorPins — оранж., жёлт., розов., син. 0 — нет сигнала, 1 — есть сигнал*/
bool MotorTurnPhases[8][4] = <
< 1, 1, 0, 0>,
< 0, 1, 0, 0>,
< 0, 1, 1, 0>,
< 0, 0, 1, 0>,
< 0, 0, 1, 1>,
< 0, 0, 0, 1>,
< 1, 0, 0, 1>,
< 1, 0, 0, 0>>;

/*Функция, в которой происходит инициализация всех переменных программы*/
void setup()
<
/*перебираем в цикле все контакты массива MotorPins и присваиваем им значение выходных, то есть дающих напряжение в 5В*/
for (int i = 0; i /*Функция-цикл в которой задаётся поведение программы*/
void loop()
<
if(CurrentButtonDelay >= CheckButtonDelay)
<
CheckButtonState();
CurrentButtonDelay = 0;
>

if(ButtonState != 0)
<
//проверяем индекс текущей фазы
CheckLastPhase();

/*подаём напряжения на контакты мотора соответственно фазе, заданной в массиве MotorTurnPhases*/
for (int i = 0; i //переходим к другой фазе
CurrentPhase += TurnDirection;

Читать еще:  Что делать если пересос двигателя

// Пауза между фазами
delay(TurnPhasesDelay);
>

/*Функция CheckLastPhase проверяет не вышел ли номер текущей фазы за пределы размера массива MotorTurnPhases, который определяется переменной OneTurnPhasesCount*/
void CheckLastPhase()
<
if (CurrentPhase >= OneTurnPhasesCount)
<
CurrentPhase = 0;
>
if (CurrentPhase /*функция, в которой проверяется текущее состояние кнопки*/
void CheckButtonState()
<
int CurrentButtonState = 0, CurrentButtonDirection = 0, CurrentTurnPhasesDelay = 0;

//считываем данные с положения кнопки I
bool readbuttonparam = digitalRead(ButtonOn1);

if(readbuttonparam)
<
CurrentButtonState = 1;
CurrentButtonDirection = 1;
>

//считываем данные с положения кнопки II
readbuttonparam = digitalRead(ButtonOn2);

if(readbuttonparam)
<
CurrentButtonState = 1;
CurrentButtonDirection = -1;
>

/*Проверяем, изменилось ли состояние кнопки по сравнению с предыдущим, и если изменилось, то записываем изменения в глобальные переменные*/
if(ButtonState != CurrentButtonState)
<
ButtonState = CurrentButtonState;
>

if(TurnDirection != CurrentButtonDirection)
<
TurnDirection = CurrentButtonDirection;
>

CurrentTurnPhasesDelay = map(analogRead(PotenciomData), 0, 1023, 2, CheckButtonDelay);

if(TurnPhasesDelay != CurrentTurnPhasesDelay)
<
TurnPhasesDelay = CurrentTurnPhasesDelay;
>
>

Но всё-таки во имя Красоты нужно довести наше устройство до совершенства, так как большое количество проводов смотрится отпугивающе.
Для этого мы берём вот такую печатную плату, припаиваем к ней контакты для присоединения всех элементов схемы. С обратной стороны всё как нам нужно аккуратно соединяем проводочками.

Затем подсоединяем плату Arduino, драйвер мотора, сам мотор, кнопку и потенциометр на свои места. Проверяем так ли работает наш прибор, как и в предыдущем случае и радуемся, смотря на чудеса современной техники.

Система управления шаговым двигателем ШД-5Д1МУ3 (ДШР-80)

Как подключить шаговый двигатель – подробное пошаговое руководство и схемы подключения шаговых двигателей с 4, 5, 6 и 8 выводами. © Автор статьи интернет-магазин DARXTON

  1. Что такое шаговый двигатель?
  2. Преимущества и недостатки шагового электродвигателя
  3. Что такое шаговый двигатель?
  4. Управление шаговым двигателем
  5. КАК ПОДКЛЮЧИТЬ ШАГОВЫЙ ДВИГАТЕЛЬ
  6. КАК ПОДКЛЮЧИТЬ ШАГОВЫЙ ДВИГАТЕЛЬ С 4 ВЫВОДАМИ
  7. КАК ПОДКЛЮЧИТЬ УНИПОЛЯРНЫЙ ШАГОВЫЙ ДВИГАТЕЛЬ С 6 ВЫВОДАМИ
  8. КАК ПОДКЛЮЧИТЬ ШАГОВЫЙ ДВИГАТЕЛЬ С 8 ВЫВОДАМИ
  9. Карданные шарниры для дельта-принтера
  10. Устройство и принцип работы
  11. Какой термоборьер для Pet-g
  12. Типы шаговых двигателей
  13. По конструкции ротора
  14. Реактивный
  15. С постоянными магнитами
  16. Гибридные
  17. По виду обмоток
  18. Униполярный
  19. Биполярный
  20. Перейдем к практике
  21. Подключение шагового двигателя
  22. Типичные схемы подключения ШД
  23. Волнистые стенки.
  24. Простейший драйвер шагового двигателя своими руками

Что такое шаговый двигатель?

Шаговый двигатель представляет собой электрическую машину, предназначенную для преобразования электрической энергии сети в механическую энергию. Конструктивно состоит из обмоток статора и магнитомягкого или магнитотвердого ротора. Отличительной особенностью шагового двигателя является дискретное вращение, при котором заданному числу импульсов соответствует определенное число совершаемых шагов. Наибольшее применение такие устройства получили в станках с ЧПУ, робототехнике, устройствах хранения и считывания информации.

В отличии от других типов машин шаговый двигатель совершает вращение не непрерывно, а шагами, от чего и происходит название устройства. Каждый такой шаг составляет лишь часть от его полного оборота. Количество необходимых шагов для полного вращения вала будет отличаться, в зависимости от схемы соединения, марки двигателя и способа управления.

Преимущества и недостатки шагового электродвигателя

К преимуществам эксплуатации шагового двигателя можно отнести:

  • В шаговых электродвигателях угол поворота соответствует числу поданных электрических сигналов, при этом, после остановки вращения сохраняется полный момент и фиксация;
  • Точное позиционирование – обеспечивает 3 – 5% от установленного шага, которая не накапливается от шага к шагу;
  • Обеспечивает высокую скорость старта, реверса, остановки;
  • Отличается высокой надежностью за счет отсутствия трущихся компонентов для токосъема, в отличии от коллекторных двигателей;
  • Для позиционирования шаговому двигателю не требуется обратной связи;
  • Может выдавать низкие обороты для непосредственно подведенной нагрузки без каких-либо редукторов;
  • Сравнительно меньшая стоимость относительно тех же сервоприводов;
  • Обеспечивается широкий диапазон управления скоростью оборотов вала за счет изменения частоты электрических импульсов.

К недостаткам применения шагового двигателя относятся:

  • Может возникать резонансный эффект и проскальзывание шагового агрегата;
  • Существует вероятность утраты контроля из-за отсутствия обратной связи;
  • Количество расходуемой электроэнергии не зависит от наличия или отсутствия нагрузки;
  • Сложности управления из-за особенности схемы

Что такое шаговый двигатель?

Прежде чем перейти к статье, давайте сразу договоримся, что статья не направлена на специалистов, а её цель – донести любознательным любителям техники и технологий о таком устройстве, как шаговый двигатель и об основах работы с ними. Поэтому умников и критиков, жаждущих поговорить о великом многообразии управляемого и регулируемого электропривода, прошу идти общаться на тематические ресурсы по ЧПУ-станкам и 3D-принтерам.

Итак, для начала сформулируем определение. Согласно Википедии: « Шаговый электродвигатель — синхронный бесщёточный электродвигатель с несколькими обмотками, в котором ток, подаваемый в одну из обмоток статора, вызывает фиксацию ротора. Последовательная активация обмоток двигателя вызывает дискретные угловые перемещения (шаги) ротора».

Формулировка достаточно понятна, но её последнее предложение может вызвать некоторое недопонимание. Поэтому я предлагаю провести небольшое сравнение.

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

Ротор такого двигателя вращается просто вокруг своей оси без каких-либо ограничений, на 360 градусов, и остановится он в любом месте. Зафиксировать его положением можно только механически (тормозом). По этой причине не получится добиться точного позиционирования исполнительных механизмов, что требуется в робототехнике, ЧПУ-станках и другом автоматизированном оборудовании.

Но шаговые двигатели разработаны для применения в механизмах, где детали поворачиваются точно на требуемый угол.

В приведенном выше определении было сказано «… вызывает дискретные угловые перемещения (шаги) ротора …» — это значит, что ротор шагового двигателя не вращается в обычном понимании, а поворачивается на какой-то определенный, «дискретный» угол. Этот угол называется шагом, отсюда и название «шаговый двигатель». Мне нравится еще одно название этих устройств — «двигатель с конечным числом положений ротора».

Питание такого двигателя невозможно без системы управления, или как его еще называют, драйвера — он подаёт импульсы в нужные обмотки, чтобы повернуть ротор на нужный угол. Это наглядно иллюстрирует приведенная ниже анимация.

Кроме того, что можно поворачивать двигатель на определенный угол и фиксировать его в этом положении, делать это всё можно без схемы обратной связи (датчиков положения и прочего).

Рассматривать типы шаговых двигателей в пределах этой статьи мы не будем, лишь кратко перечислим, какими они бывают. По конструкции:

2. С постоянными магнитами.

По способу питания:

  1. Униполярные (однополярные — ток пропускают через обмотки только в одну сторону).
  2. Биполярные (ток пропускают через обмотки в обе стороны). Здесь драйвер должен подавать напряжение различной полярности, что несколько усложняет схемотехнику. При тех же размерах развивают бОльшую мощность по сравнению с униполярными.

В униполярном двигателе зачастую 5 проводов — 1 общий, от середины каждой из двух обмоток, и 4 от концов обмоток. Иногда говорят «4 обмотки» – это также правильно, поскольку фактически мы получаем 4 обмотки соединенных в общей точки.

Униполярный шаговый двигатель

Также ШД могут отличаться и по количеству проводов, это зависит от того, как соединены обмотки и какое питание предполагается, некоторые варианты вы видите в таблице ниже.

Варианты схем соединения обмоток в шаговых двигателях

Управление шаговым двигателем

Различают два способа управления шаговым двигателем:

1. Полношаговое .
Одновременно включается только пара обмоток (без перекрытия с другими). Достигается максимальный момент на валу, но точность установления угла меньше, чем в других способах.

2. Полушаговое .
В этом случае увеличивается количество шагов, соответственно повышается точность установки положения вала. На каждый первый шаг включается одна обмотка, на каждый второй шагами (полушаг) – пара обмоток. Но когда включена одна обмотка момент на валу снижается вдвое.

На анимациях ниже наглядно продемонстрировано

В некоторых источниках отдельно обозначают микрошаговое управление. Используется, когда необходимо максимальное количество шагов и точность управления. По способу управления оно похоже на полушаговый режим, между шагами включаются две обмотки, а отличие в том, что токи в них распределяются не равномерно. Главный недостаток такого подхода — усложняется коммутация (система управления).

КАК ПОДКЛЮЧИТЬ ШАГОВЫЙ ДВИГАТЕЛЬ

Как подключить шаговый двигатель с 4, 5, 6 и 8 выводами к драйверу.

В предыдущих статьях мы рассматривали процесс выбора шагового электродвигателя (см. статью

«Как выбрать шаговый двигатель»

) в зависимости от способа его применения. В данной статье мы подробно рассмотрим как подключить шаговый двигатель.

Читать еще:  Что такое механическое повреждения двигателя

Шаговые электродвигатели могут поставляться с несколькими вариантами схем подключения. Выбор схемы будет определяться типом двигателя. Большинство наиболее распространенных шаговых двигателей имеют схемы, предполагающие использование 4-х, 5-ти, 6-ти или 8-ми проводов.

КАК ПОДКЛЮЧИТЬ ШАГОВЫЙ ДВИГАТЕЛЬ С 4 ВЫВОДАМИ

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

Найдите замкнутые между собой провода(которые прозваниваются) и подключите их к шаговому двигателю. Лучше сразу свяжите их вместе, чтобы не повторять операцию постоянно

КАК ПОДКЛЮЧИТЬ УНИПОЛЯРНЫЙ ШАГОВЫЙ ДВИГАТЕЛЬ С 6 ВЫВОДАМИ

Также, как и шаговый двигатель с четырехконтактным соединением, униполярный двигатель с 6 проводами имеет пару проводов для каждой обмотки. Однако, он также имеет центральный вывод для каждой обмотки, что дает возможность подключать его как в качестве

биполярного шагового двигателя

, так и в качестве однополярного.

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

Подключение к биполярному драйверу(коих подавляющее большинство) потребует от вас использования только одного конца провода с одним выводом и одного центрального вывода для подключения к каждой обмотке.

Схема подключения шагового электродвигателя с 5-ю выводами очень похожа на схему подключения с 6-ю контактами. Главное ее отличие состоит в том, что центральные выводы замкнуты между собой внутри, соединяясь в один провод. Это обеспечивает работу электродвигателя только по однополярной схеме.

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

КАК ПОДКЛЮЧИТЬ ШАГОВЫЙ ДВИГАТЕЛЬ С 8 ВЫВОДАМИ

Наконец, существуют шаговые электродвигатели, подключаемые при помощи 8-ми проводов. Для того, чтобы понять, как подключить шаговый двигатель с 8 выводами, мы должны вернуться к инструкциям выше.Их схема подключения во многом схожа со схемой, предполагающей использование 6-ти проводов. Разница между ними состоит в том, что две фазы разделены на две отдельных обмотки. Имея указанную схему, вы сможете подключить шаговый двигатель по однополярной схеме, а также иметь три различные комбинации для биполярного подключения.

Установка тока шаговых двигателей 3D дельта принтера. Снижение резонансных вибраций

30.09.2016 Сайт https://anteh.ru

Они не позволяют установить максимальный паспортный ток шаговых двигателей 3х вертикальных X Y Z осей 1.7A (и это хорошо). Предельный ток для шагового двигателя экструдера(JK42HS40-1204D) 1.2A, для шаговых двигателей X Y Z осей(JK42HS60-1704A) 1.7А. Согласно документации максимальный ток у А4988 2A. Но у используемой платы драйвера A4988 его невозможно установить более 1.5A. Т.е. максимальный ток можно установить только для шагового двигателя экструдера. Связано с использованием вместо 20k резистора 30k в цепи формирования опорного напряжения платы драйвера. Сделано скорее для предотвращения перегрева и повреждения шаговых двигателей. Слишком большой ток может их повредить и в установке максимального тока нет необходимости, особенно для дельта принтера. Для дельта принтера ток устанавливаю на 30% меньше их максимального паспортного значения.

Забегая вперёд, использование дробления шага 1/32 вместо 1/16 не приведёт к увеличению разрешения принтера. Это приведёт к увеличению нагрева драйвера и двигателя, снижению момента двигателя. Не всегда использование 1/32 приведёт к снижению шума, как в режиме удержания, так и режиме хода. Поправить разрешение можно здесь. Всё будет зависеть от индивидуальных особенностей принтера, платы драйвера, шаговых двигателей. Причём оно настолько индивидуально, что при перестановке вроде бы одинаковых плат драйверов шум может уменьшиться или увеличится. Т.е. «шаманство» ещё то. В моём случае использование DRV8825 с дроблением 1/32 привело к существенному увеличению шума при удержании. Слабо уловимый свист А4988(Vref=1.2V=1.5A дробление 1/16) сменился на довольно заметное шипение/шелест DRV8825(Vref=0.85V=1.7A дробление 1/32) и только снижение тока до 0.9A поменяло шипение на еле различимый свист. Причём Y двигатель перестал шипеть при 1.2A, X при 1.1A, Z при 0.9. Перестановка одинаковых X Y Z драйверов меняет картину. В общем двигатель Y шипит/свистит существенно меньше остальных как с DRV8825 так и с А4988. Причём перестановка одинаковых драйверов меняет его шумность. Как видим всё не просто. Получается, для снижения шума нужно подбирать двигатели, драйвера, провода, мощность блока питания, напряжение питания двигателей, например поднять с 12 до 14V.
Субъективно показалось, что при 1/32 ход по Z более тихий, но были положения в которых двигатель начинал очень сильно «шелестеть» почти скрипеть и положения, в которых его было не слышно.
Фантазии по поводу разрешения. Для увеличения разрешения нужно использовать 0.9градусные двигатели вместо 1.8, с энкодером. Не дёшево и в ряде случаев это ничего, кроме опыта и морального удовлетворения не даст. Использую сопло 0.8мм толщина слоя 0.5мм, планирую на сопло 1.2 переходить. Диаметр стола 400 высота 835. Измеренная микрометром вертикальная погрешность, каждой из X Y Z осей используемого дельта принтера, при смене направления движения каретки 0.11мм. С такой погрешностью нет смысла о разрешении шагового двигателя беспокоиться, но это сравнительно малая погрешность. Используются рельсовые направляющие HIWIN, ремень GT2.

Это стандартные значения для 1.8град двигателя, дробление 1/16, ремень GT2 шаг 2мм и количество зубьев на шкиве двигателя =20. Для дробления 1/32 нужно установить Xsteps/mm, Ysteps/mm, Zsteps/mm в 160. Esteps не трогал, для него оставлен А4988.
Также можно в исходнике прошивки marlin поменять:
#define DEFAULT_AXIS_STEPS_PER_UNIT <80, 80, 80, 155>//
на:
#define DEFAULT_AXIS_STEPS_PER_UNIT <160, 160, 160, 155>//
При необходимости 4ре коэффициента можно вычислить так:
Для дельта принтера первые 3 коэффициента будут одинаковыми -это X Y X одинаковые двигатели.
360/1.8 = 200 шагов на оборот. 1.8 -угол шага.
(200*16)/(2*20) = 80 = (шагов на оборот * количество микро шагов устанавливается джамперами на RAMPS 1.4) /(приводной ремень GT2 с шагом 2 мм * 20-ти зубчатые шкивы на роторе шаговых двигателей каждой из XYZ осей)
Последний коэффициент экструдера рассчитывается так:
((200*16) / (d шкива подачи прутка * 3.14))*1.1 = (3200/(7.2мм*3.14))*1.1=

155
d шкива подачи прутка -это наименьший его диаметр в центе. Коэффициенты могут быть дробными.

Расчёт опорного напряжения, для выставления предельного тока драйвера делается так:
Для A4988:
Vrefэкструдер = 1.2А * 8 * 0.1Ом = 0.96V
Vrefxyz = 1.7А * 8 * 0.1Ом = 1.36V
Для DRV8825:
Vrefэкструдер = 1.2А * 5 * 0.1Ом = 0.6V
Vrefxyz = 1.7А * 5 * 0.1Ом = 0.85V
Значения можем уменьшить на 30%.
Для установки опорного напряжения используем любой мультиметр и отвёртку с изолированной ручкой. Включаем принтер, щуп минуса мультиметра на GND(земля) платы драйвера, плюс на движок подстроечного резистора -то что отвёрткой будем крутить. Двигатели должны быть отключены. Отвёрткой аккуратно выставляем нужное напряжение. Разные драйвера мешать можно, повторюсь соблюдайте правильную ориентацию установки драйвера, или приобретайте их с запасом.

На +5 и +12V была добавлена чип керамика 10u и 0.1u. И вместо +3.3V опоры, на подстроечный резистор, через 12k, были заведены +5V. Т.е. реализована схема как у A4988.
Ток был выставлен такой же, как и для A4988. Дробление задано такое же 1/16.
Результат:
С Vref всё было в порядке, субъективно, по показаниям осциллографа встроенные 3.3V лучше, чем внешние +5V. Т.е. предположение о повышенном шуме из-за нестабильности Vref было не верным. Доработка не нужна. Из произведённой доработки смысл есть оставить на +12V конденсаторы 10u и 0.1u.
Что касается акустического шума, с DRV8825 он субъективно стал меньше на 1/16. После autohome слышится ощутимый шелест, но при минимальном движении по X или Y наступает тишина, еле различимый свит, субъективно меньше, чем у A4988. Не обошлось без перестановки местами драйверов, шум при удержании снизился.
Единственно явное преимущество замены A4988 на DRV8825 -это снижение тепловыделения, можно смело палец на радиаторе держать сколько угодно долго. DRV8825 с током 1.2А. шаг дробления 1/16. Под платой драйвера первый второй джампера сняты, третий установлен. Если использовать шаг дробления 1/32 то тепловыделение будет больше, чем для A4988 c 1/16.

Из всего делаю выводы:
0. Со стабильностью Vref=3.3V у DRV8825 никаких проблем.
1. Для тестируемого принтера предпочтительно использование DRV8825 с шагом дробления 1/16 и с правильно выставленным током для используемой скорости печати. Снижает шум и в силу особенностей конструкции существенно снижает нагрев драйвера. Можно в цепь +12V на драйвер напаять конденсаторы, чип керамику, например 10u(или более) 25V 1206 и 0.1u 0805, хуже не будет.
2. Но если Вы решили собрать принтер сами, безопаснее использовать A4988, в отличие от DRV8825 у неё производитель выставляет безопасный ток 1A, предельный ток 1.5A, который при недосмотре не угробит, ни сам драйвер, ни двигатель. На A4988 можно в цепи питания +5 и +12V на драйвере напаять дополнительную чип керамику.
3. Единственное что позволило снизить шипение при удержании -это снижение тока и перестановка драйверов местами, дробление(для используемого принтера) осталось 1/16. DRV8825 субъективно начинал шипеть на большем токе, чем A4988. С DRV8825 печать различимо тише. Можно попробовать купить пачку другую шаговых двигателей и подобрать наименее шумные, вряд ли в этом есть смысл.

Читать еще:  Характеристики двигателя камаз 260 л с

Реально и объективно замена A4988 на DRV8825, снизит тепловыделение при дроблении 1/16 и шум при печати. Перестановка драйверов местами может снизить шум/шелест при удержании двигателя. Снижение тока драйверов снижает шум, но нужно следить за отсутствием пропуска шагов. Для дельта принтера можно ставить ток на 30% и более % меньше максимального паспортного тока шагового двигателя, но нужно следить за отсутствием пропуска шагов и отсутствием вибраций эффектор. Использование дробления 1/32 увеличивает тепловыделение драйвера, снижает максимальную скорость печати и не всегда приводит к снижению аккустического шума и резонансных явлений.

Установка тока X Y Z драйверов дельта принтера

Последняя на 15.09.2016 прошивка marlin, меняем параметр DEFAULT_STEPPER_DEACTIVE_TIME с 60 на 600, чтобы двигатели не отключались через 60 секунд при простое:
#define DEFAULT_STEPPER_DEACTIVE_TIME 600
Команда autohome g28, включаем шаговые двигатели на удержание. Меряем и настраиваем токи XYZ драйверов, как 30% от максимального паспортного значения тока двигателя. По паспорту 1.7A настраиваем 1.2А.
Создаём или берём какую-либо длинную модель, растягиваем на весь рабочий стол, скорость печати задаём, например 35мм/сек, формируем G код. Высоту печати настраиваем, чтобы она началась на высоте, например 50мм от поверхности стола, филамент вытаскиваем из экструдера, реальная печать не производится. Через SD карту запускаем на печать. На LCD экране принтера скорость печати 100%, фейдером её можно до 999% довести т.е. увеличить с 35мм/сек до 35*9.99 до 350мм/сек. Смотрим максимальную паспортную скорость принтера, в текущем случае производитель заявляет 300мм/сек. Т.е. при скорости печати 35мм/сек могу произвести аппаратное увеличение скорости печати через меню принтера до 850%.
Далее, у нас есть 2 настраиваемых параметра, аппаратная скорость печати от 100%(35мм/сек) до 850%, это 35-300мм/сек и ток X Y Z драйверов. Как обратную связь контролируем пропуск шагов и вибрации эффектора при движении хотэнда по окружности и/или прямой.
Проверим пропуски шагов, настраиваем токи X Y Z в 1.2A (для 1.7А двигателей), и плавно увеличиваем скорость печати шагами по 50%. Для DRV8825 ток 1.2А заметные пропуски начинаются на 850%. Проявляются в виде щелчков и опускании плоскости печати по вертикальной оси вниз, во время щелчков экструдер понемногу приближается к столу, причём наблюдается перекос плоскости печати. Ниже 3 демонстрационных видео демонстрирующих пропуски шагов:
DRV8825 ток 1.2А скорость 300мм/сек
DRV8825 ток 1.6A скорость 300мм/сек
A4988 ток 1.2A скорость 300мм/сек

Реальная комфортная скорость для точной печати у этого принтера 25-40мм/сек, после описанных изменений. Можно печатать до 100мм/cек. Драйвер DRV8825 ток 0.8А, дробление 1/16. Максимальная скорость в районе 200мм/сек, с DRV8825, если выше, то наблюдаются пропуски.
Для DRV8825 ток 0.5А, 1/16, пропуски наблюдаются на 300% или 105мм/сек. В управляющем файле задана скорость 35мм/сек.
Тестируемый принтер, вопреки маркетинговым заявлением продавца, не будет работать со скоростью печати 300мм/сек, нужно пробовать увеличить напряжение питания шаговых двигателей.
Наблюдается некая вилка скоростей печати, при которых эффектор не вибрирует, резонансные явления минимальны. Он вообще не вибрирует, до скоростей 40-60мм/сек, далее начинает немного вибрировать в центральной части стола. Потом вибрации усиливаются и затем на 250мм/сек и более, снижаются. Увеличение напряжения питания шаговых двигателей должно увеличить скорость их работы, и соответственно скорость печати, что весьма актуально, в том числе изменить шумность работыи повлиять на резонансные явления.
На скоростях, в районе 300мм/сек и более, для тестируемого принтера, вибрации эффектора слабы. Чем плохи вибрации эффектора или резонанс? Качество печати не проверял, но помимо шума резонанс убивает механику принтера, существенно снижает момент. В любом случае 40-60мм/сек качественной печати это очень хорошо. Резонанс существенно снижает момент двигателя, дробление шага также снижает момент, но если, например при дроблении 1/8 будет наблюдаться резонанс, а при 1/16 его не будет, то можно сказать что при увеличении дробления до 1/16 момент увеличился т.к. исчез резонанс. Паразитный резонанс может снижать момент в большей степени, чем дробление.
Пока закончилось так: драйвер DRV8825, ток X Y Z =1.3A, дробление 1/16. Питание шаговых двигателей оставлено прежним +12V. На глаз — увеличение тока драйверов X Y Z приводит к снижению вибраций эффектора. Возможно, ток будет установлен в 0.6A и напряжение питания +24VDC от линейного источника питания. Об этом в других статьях

Системы и схемы управления шаговыми двигателями без обратной связи

Одной из наиболее важных проблем при использовании ШД является раз­работка систем управления без обратной и с обратной связью по положе­нию ротора. В этой главе рассмотрены системы управления без обратной связи.

5.1. Система управления

Простая система управления для ШД показана на схеме рис. 5.1.

Рис. 5.1. Схема системы управления ШД: 1 — логический блок; 2 — коммутатор; 3 — двигатель; 4 — входной контроллер.

Для удоб­ства объяснения она разделена на две части, ШД в примере четырехфазный на рис. 5.1, а представлена часть системы управления от логического бло­ка до двигателя.

Сигнал управления, приходящий на логический блок, обеспечивает подачу сигнала управления на коммутатор, тем самым способствуя пере­мещению ротора двигателя на один шаг. Направление вращения опреде­ляется логическим состоянием входа, т.е. Н-уровень для вращения по ча­совой стрелке и L-уровень против часовой стрелки. В некоторых случаях применяются логические блоки с не зависящим от направления выход­ным сигналом. Если один инкремент движения осуществляется за один шаг, то на схеме рис. 5.1, а представлена вся система управления. Но если шагов два или больше, то перед логическим блоком необходимо поставить еще одно устройство для создания соответствующей инкре­менту цепочки входных импульсов. Это устройство называется входным контроллером (рис. 5.1, б). В сложных случаях функцию входного конт­роллера выполняют такие электронные устройства, как микропроцессо­ры, которые генерируют цепочки импульсов для ускорения или замедле­ния движения оптимальным образом. В гл. 5 будут рассмотрены элемен­ты логических блоков, а затем устройств коммутаторов и входных конт­роллеров. В заключение приведен пример использования микропроцессо­ра в схеме управления без обратной связи.

5.2. Логические блоки системы управления

Логический блок — это логическая схема, которая управляет последова­тельностью возбуждения обмоток в соответствии с поступлением вход­ных импульсов. Обычно логический блок состоит из регистра сдвига и логических схем (функций) таких, как НЕ-И, НЕ-ИЛИ и т.д. В настоящее время в качестве регистра сдвига применяют универсальные схемы. Одна­ко для конкретных целей можно сконструировать необходимый логи­ческий блок подбором соответствующей интегральной микросхемы, реализующей триггер с логическим входом, срабатывающий по обратно­му фронту сигнала управления (триггеры JK-FF), и логических схем. Базисные функции схем и триггеров приведены на рис. 5.2.

Рис. 5.2. Логические блоки и их функции

Триггер JK-FF реализует функцию, задаваемую таблицей и выполняемую тогда, когда на вход* поступает сигнал Н. Если на вход* поступает сигнал L, то на выходе О будет сигнал L, а на Q — Н. Поэтому вместо составления логического блока из набора соответствующих интегральных микросхем можно использовать универсальные логические блоки, разработанные для ШД.

Рассмотрим несколько типов логических блоков, состоящих из инте­гральных микросхем с транзисторно-транзисторной логической схемой (TTL), изготовленных по КМОП — технологии.

5.2.1. Двухфазное управление четырехфазным двигателем.

Для случая без указаний направления вращения ротора простой логический блок можно построить с помощью лишь двух триггеров JK-FF, как показано на рис. 5.3.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector