H-мост

Ассиметричный или «косой» мост

Это однотактный, прямоходовой преобразователь, блок схема которого приведена ниже:

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

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

Но несмотря на выше перечисленные недостатки и низкий КПД устройства по схеме асимметричный или «косой» мост все еще применяются в сварочных инверторах. В данном случае транзисторы Т1 и Т2 будут работать синфазно, то есть закрываться и открываться одновременно. В данном случае накопление энергии будет происходить не в трансформаторе, а в катушке дросселя Др1. Именно поэтому для того, чтоб получить одинаковую мощность с мостовым преобразователем необходим удвоенный ток через транзисторы, так как рабочий цикл при этом не будет превышать 50%. Более подробно данную систему мы рассмотрим в следующих статьях.

Элементы платы

Драйвер двигателей TB6612FNG

Сердце и мускулы платы — микросхема двухканального H-моста TB6612FNG, которая позволяет управлять двумя коллекторными моторами или одним биполярным шаговым двигателем с помощью внешнего микроконтроллера.

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


В зависимости от текущего состояние переключателей возможно разное состояние мотора.

S1 S2 S3 S4 Результат
1 1 Мотор крутится вправо
1 1 Мотор крутится влево
Свободное вращение мотора
1 1 Мотор тормозит
1 1 Мотор тормозит
1 1 Короткое замыкание источника питания
1 1 Короткое замыкание источника питания

Ключи меняем на MOSFET-транзисторы, а для плавной регулировки скорости вращения вала мотора используем ШИМ-сигнал.

Питание

На плате драйвера моторов присутствует два контура питания: силовое и логическое.

  • Силовой контур (VM) — напряжение для питания моторов от силовой части микросхемы и светодиодов индикации. Силовое питание подключается через клеммник c входным диапазоном напряжения от 5 до 12 вольт.
  • Логический контур (Vcc) — питание вспомогательной цифровой логики управления микросхемы . Логическое питание поступает на плату модуля через контакт . Диапазон входного напряжения от 3,3 до 5 вольт.

Если отсутствует хотя бы один из контуров питания — драйвер H-мост работать не будет.

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

Нагрузка

Нагрузка разделена на два независимых канала. Первый канал на плате обозначен шёлком , а второй канал — . К каждому каналу можно подключить по одному коллекторному мотору или объединить каналы для подключения биполярного шагового двигателя.

Обозначения «+» и «−» показывают воображаемые начало и конец обмотки. Если подключить два коллекторных двигателя, чтобы их одноимённые контакты щёточного узла соответствовали одному и тому же обозначению на плате, то при подаче на H-Bridge одинаковых управляющих импульсов, моторы будут вращаться в одну и ту же сторону.

Светодиодная индикация

Имя светодиода Назначение
DIR1/EN1 Индикация состояния направления и скорости первого канала . При высоком логическом уровне светится зелёным светом, при низком — красным. Яркость светодиода пропорциональна скорости вращения двигателя.
DIR2/EN2 Индикация состояния направления и скорости первого канала . При высоком логическом уровне светится зелёным светом, при низком — красным. Яркость светодиода пропорциональна скорости вращения двигателя.

Управление двигателем при помощи биполярного транзистора

Самый простой способ приведения в действие двигателя показан ниже:

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

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

Следует также обратить внимание на мощность, выделяющуюся на транзисторе (P = Uкэ * Iк). Несмотря на то, что транзистор в данном случае работает в состоянии насыщения и напряжение Uкэ часто не превышает 1В, коллекторный ток все же велик (около 0,5 А для двигателя среднего размера) и, следовательно, мощность, излучаемая на транзисторе может потребовать от нас установки радиатора

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

Это приводит к тому, что если мы хотим, чтобы ток коллектора имел большое значение, это может потребовать большего тока, чем 20 мА, то есть больше, чем составляет нагрузочная способность порта микроконтроллера. В таких случаях решением может быть использование комбинации транзисторов – транзистор Дарлингтона:

Такая система ведет себя как один транзистор с большим значением усиления тока и малой скоростью работы.

Несколько слов об индуктивных нагрузках

Поскольку двигатель является индуктивной нагрузкой, мы должны быть осторожны. Если через обмотку течет ток, и мы внезапно остановим этот поток, то на выводах обмотки временно появляется большое напряжение. Это напряжение может привести к повреждению транзистора (в представленной схеме выше) вызывая пробой перехода база-коллектор. Кроме того, это может создавать значительные помехи. Для предотвращения этого необходимо параллельно с индуктивной нагрузкой подключить диод:

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

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

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

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

Номинальное рабочее напряжение, в основном, находится в диапазоне 9 — 24 В. При таких не малых напряжениях мы имеем дело также с большим током: 0,3 — 1A на одну фазу! Ниже приведен пример подключения шагового двигателя с 5 выводами:

В роли ключей мы можем также использовать MOSFET — транзисторы. Это даже более простое решение.
Так как нам нужно до 4-х транзисторов, которые занимают довольно много места на плате, хорошим решением будет использовать микросхему ULN2003A.

H-мост на транзисторах

Для создания электронного H-моста на транзисторах можно использовать транзисторы как NPN, так и PNP типа. Могут быть использованы также и полевые транзисторы. Мы рассмотрим версию с NPN-транзисторами, потому что это решение использовано в микросхеме L298, которую мы увидим позже.

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

Транзистор мы можем представить просто как электронный переключатель, который закрыт, когда на базе (b) 0 В и открыт, когда на базе положительное напряжение.

Хорошо, мы заменили механические переключатели транзисторными ключами. Теперь нам необходим блок управления, который будет управлять нашими четырьмя транзисторами. Для этого мы будем использовать логические элементы типа «И».

Полный мост с дросселем рассеивания

Схема его ничем практически не отличается от схемы резонансного моста или полумоста, только вместо резонансной цепи LC  последовательно с трансформатором включают не резонансную LC цепь. Емкость С, примерно С≈22мкф х 63В, работает как симметрирующий  конденсатор, а индуктивное сопротивление дросселя L как реактивное сопротивление, величина которого будет линейно изменятся в зависимости от изменения частоты. Преобразователь управляется частотным способом. Как известно нам с электротехники, при увеличении частоты напряжения сопротивление индуктивности возрастет, что уменьшит ток в силовом трансформаторе. Довольно простой и надежный способ. Поэтому довольно большое количество промышленных инверторов строят по такому принципу ограничения выходных параметров.

Элементы платы

Драйвер двигателей

Драйвер моторов — это сборка из двух H-полумостов. В нашем модуле мы запараллели оба канала микросхемы H-моста для компенсации нагрева.

Нагрузка

В качестве нагрузки для модуля H-мост(Troyka модуль) рациональнее всего использовать коллекторный мотор, так как есть смысл и потребность менять направления вращения двигателя. Если у вас иная нагрузка, используйте силовой ключ или реле.

Мотор подключается своими контактами к колодкам под винт и . Полярность в данном случае неважна, так она влияет на направления вращения вала и её можно изменять программно.

Питание нагрузки

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

Контакты подключения трёхпроводных шлейфов

1-группа

  • — направления вращения двигателя. Подключите к цифровому пину микроконтроллера.
  • — питание логической части модуля. Соедините с питанием микроконтроллера.
  • — земля. Дублирует пин из второй группы Troyka-контактов. Соедините с землёй микроконтроллера.

2-группа

  • — включение и управление скоростью вращения мотора. Подключите к цифровому пину микроконтроллера.
  • — силовое питание модуля. Подробнее про объединение питания.
  • — земля. Дублирует пин из первой группы Troyka-контактов. Соедините с землёй микроконтроллера.

Джампер объединения питания

Силовое питание можно также подключать через пины и из второй группы Troyka-контактов. Для этого установите джампер объединения питания . При этом подключать питание к контактам и уже не нужно.

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

Данный джампер будет полезен при установке H-моста на Troyka Slot Shield в пины поддерживающие .

Например, если на плату подаётся через разъём внешнего питания, то установив джампер на Troyka Slot Shield в положение вы получите напряжение и на ножке H-моста. Эти 12 В можно направить на питание нагрузки — просто установите джампер на H-мосте.

Световая индикация

Сдвоенный светодиод индикации скорости и направления вращения на плате.

При высоком логическом уровне на пине управления направлением вращения , индикатор светится красным светом. При низком уровне — зелёным.

Чем выше скорость вращения двигателя, тем ярче горит зелёный либо красный светодиод.

Эксплуатация полного H-моста

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

Обратите внимание, что вход разрешения (ENA) подключен к обеим ветвям моста, в то время как другие два входа (In1 и In2) независимы. Для наглядности схемы мы не указали защитные сопротивления на базах транзисторов

Когда на ENA 0В, то на всех выходах логических элементов также 0В, и поэтому транзисторы закрыты, и двигатель не вращается. Если на вход ENA подать положительный сигнал, а на входах IN1 и IN2 будет 0В, то элементы «B» и «D» будут активированы. В этом состоянии оба входа двигателя будут заземлены, и двигатель также не будет вращаться.

Если мы подадим на IN1 положительный сигнал, при этом на IN2 будет 0В, то логический элемент «А» активируется вместе с элементом «D», а «B» и «C» будут отключены. В результате этого двигатель получит плюс питания от транзистора, подключенного к элементу «А» и минус от транзистора, подключенного к элементу «D». Двигатель начнет вращается в одном направлении.

Если же мы сигналы на входах IN1 и IN2 инвертируем (перевернем), то в этом случае логические элементы «C» и «B» активируются, а «A» и «D» будут отключены. Результат этого — двигатель получит плюс питания от транзистора, подключенного к «C» и минус от транзистора, подключенного к «B». Двигатель начнет вращаться в противоположном направлении.

Если на входах IN1 и IN2 будет положительный сигнал, то активными элементами с соответствующими транзисторами будут «A» и «C», при этом оба вывода мотора будут подключены к плюсу питания.

Резонансный полумост

Довольно перспективный вид полумостового преобразователя, его схема показана ниже:

Резонансный полумост будет немного проще, чем полумост с ШИМ. Это обусловлено наличием индуктивности резонансной, которая ограничивает максимальный ток транзисторов, а коммутация транзисторов происходит в нуле тока или напряжения. Ток, протекающий по силовой цепи, будет иметь форму синусоиды, что снимет нагрузку с конденсаторных фильтров. При таком построении схемы необязательно необходимы драйверы, переключение может осуществляться обычным импульсным трансформатором. Качество управляющих импульсов в данной схеме не столь существенно как в предыдущей, но безтоковая пауза все равно должна быть.

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

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

Как правило, выходные параметры регулируются изменением частоты. Но и регулирование фазное тоже дает немного своих плюсов и является более перспективным для сварочных инверторов. Он позволяет обойти такое неприятное явление как совпадение режима короткого замыкания с резонансом, а также увеличивает диапазон регулирования выходных параметров. Применение фазовой регулировки может позволить изменять выходной ток в диапазоне от 0 до Imax.

Управление двигателем при помощи MOSFET транзистора

Так же можно управлять постоянным двигателем с помощью полевого транзистора MOSFET:

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

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

Примеры работы для Arduino и XOD

В качестве мозга для управления моторами рассмотрим платформу из серии Arduino, например Arduino Uno.

  • Как начать работу с Arduino?

  • Как начать работу с XOD?

Подключение к Arduino

Выберите один из вариантов коммуникации драйвера с внешним микроконтроллером:

  • Подключите H-мост к платформе Arduino. Для коммуникации понадобятся соединительные провода «мама-папа».
  • Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводные шлейфы «мама-мама», который идут в комплекте с модулем.

Управление коллекторными моторами

Код для Arduino

Для начала покрутим каждый мотор в одну, а затем другую сторону.
Прошейте платформу Arduino скетчем, приведённым ниже.

troyka-h-bridge-dual-example-arduino-dc-motors.ino
// Пины управления скоростью и направлением мотора
constexpr auto pinM1Speed = 9;
constexpr auto pinM1Direction = A1;
constexpr auto pinM2Speed = 10;
constexpr auto pinM2Direction = A0;
 
int pins = {pinM1Speed, pinM1Direction, pinM2Speed, pinM2Direction};
 
void setup() {
  // Настраиваем все пины управление моторами в режим выхода
  for (int i = ; i < 4; i++) {     
    pinMode(pinsi, OUTPUT);
  }
} 
 
void loop() {
  // Крутим мотор M1 в одну сторону в течении 1 секунды
  motorsDrive(255, );
  delay(1000);
 
  // Крутим мотор M1 в другую сторону в течении 1 секунды
  motorsDrive(-255, );
  delay(1000);
 
  // Крутим мотор M2 в одну сторону в течении 1 секунды
  motorsDrive(, 255);
  delay(1000);
 
  // Крутим мотор M2 в другую сторону в течении 1 секунды
  motorsDrive(, -255);
  delay(1000);
 
  // Стоим на месте
  motorsDrive(, );
  delay(1000);
 
}
 
// Функция управления моторами
void motorsDrive(int M1Speed, int M2Speed) {
  if (M1Speed > ) {
    digitalWrite(pinM1Direction, HIGH);
  } else {
    digitalWrite(pinM1Direction, LOW);
  }
 
  if (M2Speed > ) {
    digitalWrite(pinM2Direction, HIGH);
  } else {
    digitalWrite(pinM2Direction, LOW);
  }
  analogWrite(pinM1Speed, abs(M1Speed));
  analogWrite(pinM2Speed, abs(M2Speed));
}

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

troyka-h-bridge-dual-example-arduino-dc-motors-pwm.ino
// Пины управления скоростью и направлением мотора
constexpr auto pinM1Speed = 9;
constexpr auto pinM1Direction = A1;
constexpr auto pinM2Speed = 10;
constexpr auto pinM2Direction = A0;
 
int pins = {pinM1Speed, pinM1Direction, pinM2Speed, pinM2Direction};
 
void setup() {
  // Настраиваем все пины управление моторами в режим выхода
  for (int i = ; i < 4; i++) {     
    pinMode(pinsi, OUTPUT);
  }
} 
 
void loop() {
  // Медленно разгоняем M1 в одну сторону
  for (int i = ; i <= 255; i++) {
    motorsDrive(i, );
    delay(10);
  }
  // Медленно тормозим мотор
  for (int i = 255; i >= ; i--) {
    motorsDrive(i, );
    delay(10);
  }
  // Медленно разгоняем M1 в другую сторону
  for (int i = ; i <= 255; i++) {
    motorsDrive(-i, );
    delay(10);
  }
  // Медленно тормозим мотор
  for (int i = 255; i >= ; i--) {
    motorsDrive(-i, );
    delay(10);
  }
 
  // медленно разгоняем M2 в одну сторону
  for (int i = ; i <= 255; i++) {
    motorsDrive(, i);
    delay(10);
  }
  // медленно тормозим мотор
  for (int i = 255; i >= ; i--) {
    motorsDrive(, i);
    delay(10);
  }
  // медленно разгоняем M2 в другую сторону
  for (int i = ; i <= 255; i++) {
    motorsDrive(, -i);
    delay(10);
  }
  // медленно тормозим мотор
  for (int i = 255; i >= ; i--) {
    motorsDrive(, -i);
    delay(10);
  }
 
}
 
// Функция управления моторами
void motorsDrive(int M1Speed, int M2Speed) {
  if (M1Speed > ) {
    digitalWrite(pinM1Direction, HIGH);
  } else {
    digitalWrite(pinM1Direction, LOW);
  }
 
  if (M2Speed > ) {
    digitalWrite(pinM2Direction, HIGH);
  } else {
    digitalWrite(pinM2Direction, LOW);
  }
  analogWrite(pinM1Speed, abs(M1Speed));
  analogWrite(pinM2Speed, abs(M2Speed));
}

Код для Arduino

troyka-h-bridge-dual-example-arduino-stepper.ino
// Библиотека для работы с шаговым двигателем
#include <AmperkaStepper.h>
 
// Создаём объект для работы с шаговым двигателем
// и передаём фиксированное количество шагов за полный оборот.
// Подробности в характеристиках двигателя
AmperkaStepper motor(200, A0, A1, 9, 10);
 
void setup() {
  // Устанавливаем скорость вращения 30 оборотов в минуту.
  motor.setSpeed(30);
}
 
void loop() {
  // 180° по часовой стрелке в двухфазном режиме
  motor.step(100, FULL_STEP);
  delay(1000);
 
  // 180° против часовой стрелки в однофазном режиме
  motor.step(-100, WAVE_DRIVE);
  delay(1000);
 
  // 180° по часовой стрелке в полушаговом режиме
  motor.step(200, HALF_STEP);
  delay(1000);
 
  // 180° против часовой стрелки в двухфазном режиме
  // этот режим используется по умолчанию, если не передан
  // второй аргумент
  motor.step(-100);
  delay(1000);
}
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector