Мостовая схема управления двигателем постоянного тока: Мостовая схема управления вращением двигателя постоянного тока

Мостовая схема управления вращением двигателя постоянного тока

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

Как добавить наш сайт в исключения AdBlock

QRZ.RU > Каталог схем и документации > Схемы наших читателей > Радиолюбительские конструкции > Мостовая схема управления вращением двигателя постоянного тока

class=»small»>

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

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

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

 

 

Рис. 1. Мостовая схема управления вращением двигателя

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

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

DEVELOPMENT OF DC-MOTOR CONTROL MODULE, BASED ON H-BRIDGE SCHEME

Research article

Chernykh A.A.

Issue: № 1 (32), 2015

Published:

2015/02/16

Черных А.А.

Студент, НИ Томский политехнический университет

РАЗРАБОТКА СИЛОВОГО МОДУЛЯ ДЛЯ УПРАВЛЕНИЯ ДВИГАТЕЛЯМИ ПОСТОЯННОГО ТОКА  НА ОСНОВЕ СХЕМЫ H-МОСТ

Аннотация

В данной работе будет описан расчет и сборка усилителя на основе биполярных транзисторов. Подбор элементной базы, которая соответствовала нагрузке, и обеспечивалась стабильная работа. Тестирование данного силового модуля под управлением МК Atmega16.

Ключевые слова: транзистор, эмиттер, база, коллектор, оптопара, гальваническая развязка, двигатель, микроконтроллер.

Chernykh A.A.

Student, Tomsk Polytechnic University

DEVELOPMENT OF DC-MOTOR CONTROL MODULE, BASED ON H-BRIDGE SCHEME

Abstract

This article describes the calculation and assembly of the amplifier based on bipolar transistors. Selection of new elements, which correspond to the load, and ensures stable operation. Testing of the power module running controlled by Atmega16 microcontroller.

Keywords: emitter, base, collector, opto-galvanic isolation, motor, microcontroller.

Введение

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

Выбор структуры усилителя

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

Принцип работы и расчет силового модуля

Как правило, управление двигателем постоянного тока осуществляется изменением напряжения, подаваемого на концы обмотки якоря. Для реверсирования двигателя необходимо менять полярность этого напряжения. Для этого используется мостовая схема: Н-мост (драйверы двигателей), состоящая из четырех силовых ключей (в некоторых случаях 2х управляющих дополнительно) и управляющих элементов. Управляющий сигнал, подаваемый на силовую часть схемы, генерируется с помощью микроконтроллера. Для изменения напряжения (аналогового сигнала) используется широтно-импульсная модуляция (ШИМ). Микроконтроллер генерирует ШИМ–сигнал  с определенным коэффициентом заполнения (см. рис. 1).

Коэффициент заполнения определяет среднее значение напряжения, которое может составлять от 0 до 5В на выводе микроконтроллера, что соответствует 0..7,2В, подаваемым на обмотку якоря двигателя, а также необходимый ток, так как микроконтроллер подает очень маленький ток. На графике показаны сигналы с коэффициентом заполнения 0,25 и 4.

Рис. 1 – ШИМ-сигнал

Пунктирная линия соответствует средним значениям напряжения – 1В и 4В соответственно. Коэффициент заполнения устанавливается с помощью установки значения регистра в AVR микроконтроллере ATmega16 – OCR1AL (для 8-битного ШИМ, который используется для управления двигателем). Это позволяет установить 256 различных скоростей вращения электродвигателя. Значению OCR1AL = 0 соответствует среднее напряжение на выводе OC1A 0В, значению OCR1AL = 255 соответствует напряжение 5В. Частота ШИМ–сигнала составляет 4 000 000 / 256 = 15 625 Гц.

Силовая часть мостовой схемы приведена на рисунке 2.  Она состоит из четырех силовых транзисторов, двух управляющих транзисторов, резисторов, ограничивающих базовые токи, шунтирующих диодов и гальванической развязки в виде двух оптопар. Питание Н-моста происходит от блока питания, подающего постоянное напряжение +7,2В относительно земли.

Рассчитываем параметры для маломощного ДПТ, потребляемого ток до 1А и напряжением 7,2В.

Максимальный коллекторный ток на силовых транзисторах (при пуске двигателя) составляет  2 А. Чтобы обеспечить переход транзисторов в режим насыщения, базовый ток должен быть не меньше:

С учетом падения на переходах база-эмиттер напряжения 0,7В и разности потенциалов между коллектором и эмиттером управляющих транзисторов 1В,  максимальные сопротивления в базовых цепях составят:

Рис. 2 – Электрическая принципиальная схема силового модуля

Были выбраны сопротивления R1= R2 = 70 Ом. Таким образом, базовый ток составил:

Следовательно, максимально возможное сопротивление:

Для схемы берем сопротивления номиналом 1кОм.

Мощность, рассеивающаяся на сопротивлениях, составит:

Рис. 3 – Силовой модуль для ДПТ на биполярных транзисторах

Заключение

Был спаян упрощенный вариант схемы на четырех транзисторах без гальванической развязки (Рис.3) и протестирован на МК. Также подобраны транзисторы с запасом мощности согласно схеме, как показано на рисунке 2, для широкой применяемости модуля.

Литература

  1. Datasheet на микроконтроллер ATmega16.
  2. Биполярный транзистор, расчёт транзисторного каскада [Электронный ресурс]. URL: http://www.meanders.ru/tranzistors.shtml Режим доступа: свободный (дата обращения: 07.01.2015)
  3. ALL Transistor datasheet [Электронный ресурс]. URL: http://alltransistors.com/ Режим доступа: свободный (дата обращения: 09.01.2015)

References

  1. Datasheet na mikrokontroller ATmega16.
  2. Bipoljarnyj tranzistor, raschjot tranzistornogo kaskada [Jelektronnyj resurs]. URL: http://www.meanders.ru/tranzistors.shtml Rezhim dostupa: svobodnyj (data obrashhenija: 07.01.2015)
  3. ALL Transistor datasheet [Jelektronnyj resurs]. URL: http://alltransistors.com/ Rezhim dostupa: svobodnyj (data obrashhenija: 09.01.2015)

Управление двигателем постоянного тока с помощью H-моста

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

Подскажите, как изменить направление вращения двигателя постоянного тока?

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

Рис. 1: Изображение, показывающее схему H-моста, используемую для управления направлением вращения двигателя постоянного тока

Как показано на рисунке, есть две клеммы «A» и «B» двигателя постоянного тока. Теперь, если мы соединим клемму A с питанием +Ve и клемму B с питанием -Ve или заземлением, ток будет течь от двигателя от A к B, и двигатель будет вращаться в одном направлении — скажем, по часовой стрелке (CW) или в прямом направлении. Теперь, как показано на втором рисунке, мы меняем клеммы питания. Теперь B подключен к +Ve, а A подключен к земле. Ток будет течь от двигателя от B к A, и двигатель будет вращаться в другом направлении (против часовой стрелки – против часовой стрелки или наоборот).

Итак, следующий вопрос: как обеспечить реверсивное питание двигателя?

Расположение показано в правой части рисунка. Четыре переключателя подключены между источником питания +Ve и землей, а двигатель постоянного тока подключен между двумя переключателями, как показано на рисунке. Такое расположение цепей известно как Н-мост, потому что он выглядит как буква «Н» (схемы Н-моста наиболее широко используются в драйверах двигателей постоянного тока). Давайте посмотрим, как он дает обратное питание двигателю.

Если одновременно нажать SW1 и SW4, то ток будет течь от +Ve – SW1 – A – B – SW4 – Gnd. Таким образом, двигатель будет вращаться в одном направлении. Откройте (отпустите) SW1 и SW4, чтобы остановить двигатель. Теперь, если SW2 и SW3 нажаты, ток будет течь от +Ve – SW2 – B – A – SW3 – Gnd. Таким образом, двигатель получает обратное питание, и он будет вращаться в другом направлении.

(Внимание: необходимо соблюдать осторожность, чтобы SW1 и SW3 или SW2 и SW4 не были нажаты одновременно, иначе это приведет к короткому замыканию питания)

заменяет переключатели на транзисторы типа NPN. Все мы знаем, что транзистор работает как переключатель. Для транзистора NPN, если мы подаем вход +Ve на базу, он включится, а если мы подаём 0, он будет выключен.

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

Разве это не очень просто?

Двигатель можно вращать вперед и назад, используя только 4 транзистора.

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

Теперь вопрос, как подать переменное напряжение на двигатель?

Одним из очень популярных методов генерирования переменного напряжения постоянного тока является широтно-импульсная модуляция (ШИМ). Это поясняется на рисунке ниже.

Рис. 3: График, показывающий широтно-импульсную модуляцию для управления скоростью двигателя постоянного тока

Широтно-импульсная модуляция означает изменение ширины (скважности) импульса. Ширина означает время включения Тон импульса. Среднее выходное напряжение (Vdc или Vavg) определяется уравнением

Vdc = [Ton / (Ton+Toff)] × Vs

Это напрямую зависит от Ton. Как показано на рисунке выше, при коэффициенте заполнения 50 % среднее выходное напряжение Vdc равно половине Vs. Если нагрузка увеличивается до 75%, Vdc также увеличивается до 3/4 Vs, а если нагрузка уменьшается до 25%, Vdc уменьшается до 1/4 th Vs. Таким образом, при изменении ширины импульса изменяется среднее выходное напряжение. Таким образом, мы должны применить ШИМ к двигателю постоянного тока, чтобы изменить его скорость.

Очевидно, следующий вопрос — как генерировать ШИМ?

Есть предположения………..?

Да, ответ IC NE555. Этот чип можно использовать для генерации ШИМ. Вот схема IC NE555 для генерации выхода PWM

Соединения: IC NE555 подключен в нестабильном режиме. Смещение +12 подается на вывод Vcc (8). Контакт сброса (4) также получает питание +Ve для включения внутреннего триггера. Два диода подключены друг к другу на выводе разряда (7). Один резистор 1K подключен между Vcc и разрядным контактом. Потенциометр на 10 К вместе с двумя диодами D1 и D2 подключен между пороговым выводом (6) и разрядным выводом таким образом, что при его увеличении сопротивление заряда конденсатора увеличивается, а сопротивление разряда конденсатора уменьшается.

Операция: когда в цепь подается питание, конденсатор заряжается через R2-D2-R1A. Выход схемы высок. Когда конденсатор заряжается до 2/3 В пост. тока, внутренний пороговый компаратор выдает выходной сигнал, снижающий выходной сигнал схемы. Таким образом, если R1 увеличивается — R1A больше — время зарядки конденсатора увеличивается — время высокого выхода (Ton) больше — рабочий цикл больше. После этого конденсатор разряжается через R1B – D1. Таким образом, если R1 меньше — R1B больше — время разрядки конденсатора увеличивается — время низкого выхода (Toff) больше — рабочий цикл меньше.

Таким образом, эта схема генерирует ШИМ, и ширина импульса изменяется при изменении потенциометра R1.

Наконец, нам нужна мостовая схема на транзисторе H для изменения направления двигателя постоянного тока и схема генератора ШИМ на основе микросхемы NE555 для изменения скорости двигателя постоянного тока. Вот полная схема.

Выход схемы генератора ШИМ подается на схему Н-моста через переключатель SPDT. Когда мы меняем положение переключателя SPDT, сигнал подается либо на Q1 и Q4, либо на Q2 и Q3. Таким образом, переключатель SPDT изменяет направление вращения двигателя. А потенциометр R1 изменяет ширину выходного импульса, подаваемого на Н-мостовую схему. Таким образом, изменяется скорость двигателя.

Вот схема, построенная на макетной плате

Рис. 4: Прототип схемы Н-моста на макетной плате

Итак, это простая схема управления скоростью и направлением двигателя постоянного тока. Он может управлять двигателями постоянного тока с номинальным током 12 В или 500 мА. Для двигателей с более высоким номинальным напряжением или током можно использовать транзисторы с парой Дарлингтона (TIP122, TIP142 и т. д.) или силовые МОП-транзисторы (серия IRF) или даже SCR (серия TYN)

Принципиальные схемы

Project Video


Рубрика: Схема

 




Управление двигателем постоянного тока с помощью Н-моста

В этом эксперименте мы будем управлять двигателем с помощью ШИМ Ex пансион. Для этого мы будем использовать чип H-Bridge и отправлять ему соответствующие управляющие сигналы с расширением PWM, после чего H-Bridge позаботится о запуске двигателя. Попутно мы узнаем, как именно работают H-мосты, и создадим больше классов, использующих преимущества тех, которые мы создали ранее. Чтобы расширить это, мы подключим три переключателя и запрограммируем Omega для управления скоростью и направлением двигателя в зависимости от их положения.

Если вам нужно напомнить, как работает ШИМ (или широтно-импульсная модуляция), вы можете найти объяснение в первом эксперименте с диммированием светодиодов.

Как работают двигатели постоянного тока

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

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

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

Если бы только было какое-то устройство, которое могло бы помочь нам контролировать мощность, которую мы подаем на наши двигатели постоянного тока…

Обратите внимание, что подача тока на обе клеммы может привести к повреждению двигателя.

Как работают Н-мосты

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

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

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

Чтобы изменить направление подаваемого напряжения, H-мост управляет переключателями, подающими питание на нагрузку ( С1 ). Глядя на схему, если мы замкнем S1 и S4 , оставив остальные открытыми, напряжение будет прикладываться к двигателю слева направо. Если вместо этого замкнуты S2 и S3 , а остальные разомкнуты, напряжение будет подаваться справа налево.

Эта конфигурация может вызвать короткое замыкание, поэтому большинство H-мостов не позволяют напрямую управлять этими коммутаторами.

Типичные области применения

Несколько типичных применений схем H-Bridge:
* Создайте переменный ток (переменный ток) из источника постоянного тока, используя сигнал ШИМ для управления H-мостом. Это процесс, известный как инверсия мощности.
* Обеспечьте возможность обратного тока через двигатель постоянного тока, позволяя вращение в любом направлении.

Кроме того, Н-мосты позволяют питать нагрузки независимо от управляющих сигналов, обеспечивая изоляцию цепей.

ШИМ-сигнал приводит в действие двигатель за счет очень быстрого включения и выключения источника питания. Обычно это можно сделать, отправив сигнал ШИМ на транзистор, и транзистор переключит питание. Изменяя ширину импульса ШИМ-сигнала, можно управлять скоростью двигателя. H-мост может заменить транзистор и добавить функциональность, позволяя легко изменять направление тока. Мы по-прежнему посылаем пульсирующий сигнал на H-мост, чтобы контролировать скорость, за исключением того, что теперь мы можем переключать направление тока, меняя переключатели, которые разомкнуты.

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

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

Чип SN754410 H-Bridge

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

Таким образом, вместо переключателей 1/2/3/4 мы будем переключать 1A и 2A (как показано в техническом описании). В этом уроке мы будем использовать один из двух H-мостов для управления мощностью, подаваемой на два входа вашего двигателя постоянного тока. В частности, пара входов и выходов ( 1A , 2A и 1Y , 2Y ) на левой стороне микросхемы.

На микросхеме 1A управляет полярностью 1Y , то же самое касается 2A и 2Y . На очень высоком уровне этот чип H-моста изменяет выходное напряжение (на контакты, помеченные Y ) в соответствии с входным напряжением, подаваемым на контакты, помеченные A . Например, отправив «высокий» на 1A , вы отправите то же самое на 1Y . Разница заключается в том, что сигнал, отправляемый на контакты Y , использует напряжение, подаваемое на контакт 8 , независимо от входного напряжения.

Напряжение действует подобно водопаду — оно всегда создает ток, вытекающий из напряжения источник (вверху) на землю (внизу). Вы можете представить источник как HIGH , а землю как LOW . Таким образом, если вы подключите двигатель к 1Y и 2Y , он будет двигаться только в том случае, если они посылают различных сигналов .

Штифт 1,2EN просто включает или выключает Н-мост. Если 1,2EN видит «высокий», то все, что мы рассмотрели выше, происходит в штатном режиме, если выключен, то на выходы ничего посылаться не будет, несмотря ни на что 1A и 2A .

Благодаря такой реализации Н-моста — с двумя переключателями вместо четырех независимых — микросхема удобно обрабатывает ситуации короткого замыкания и упрощает работу Н-моста.

Создание схемы

Эта схема соединяет Omega с двигателем постоянного тока. Сначала Omega будет подключен к расширению PWM, расширение PWM будет отправлять сигналы на H-мост, который будет подавать питание на двигатель постоянного тока в соответствии с сигналами. ШИМ будет сигнализировать, как быстро двигатель должен вращаться, а Н-мост действует как переключатель, включая или выключая напряжение питания в соответствии с сигналом ШИМ.

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

Примечание : Как видно выше, чип имеет грубое зеркальное отображение. Верхний правый и нижний левый контакты — это питание для выходов ( контакт 8 ) и чипа ( контакт 16 ) соответственно. Разница между двумя выводами питания заключается в том, что напряжение, подаваемое на выходы, может достигать 36 В, а напряжение, подаваемое на микросхему, рекомендуется в пределах 2–5 В. Если вы хотите запитать большой двигатель, вам следует запитать двигатель от внешнего источника через контакт 8 и подать около 3В на контакт 16 .

Вот диаграмма, к которой можно обратиться, если что-то станет беспокойным:

Что вам понадобится

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

  • 1x Omega2, подключенный к док-станции расширения
  • 1x PWM Expansion подключен к док-станции расширения выше
  • 1x двигатель постоянного тока
  • 1x H-мост (имеет «SN754410» поверх микросхемы)
  • 1 макетная плата
  • 3 переключателя SPDT
  • Проволочные перемычки
    • 4x M-F
    • 18x М-М
Подключение компонентов

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

  1. Соедините отрицательные ( - ) шины с обеих сторон платы вместе на одном конце (обычно конец, удаленный от большей части проводки) с помощью перемычки M-M, назовем ее ЗЕМЛЯ рейка.
  2. Проделайте то же самое с положительными ( + ) шинами, в этом эксперименте мы назовем эти шины Vcc .

Теперь давайте настроим нашу схему:

  1. Возьмите H-мост, выберите место на макетной плате и подключите H-мост через канал в середине макетной платы. Он должен располагаться одной стороной в столбце E, а другим — в столбце F, при этом полукруглый вырез должен быть направлен к концу макетной платы. Мы выбрали строки с 5 по 12 на нашей макетной плате.
  1. Обратите внимание на номер каждого контакта на приведенной выше схеме. Если вы заблудились, всегда ищите небольшой вырез в виде полукруга на чипе, обозначающий «верхнюю часть» H-моста, чтобы правильно сориентировать его.
    • Это важно, вы можете повредить H-мост, если он подключен неправильно!
  2. Давайте сначала подключим все заземляющие соединения — контакты 4 , 5 , 12 и 13 на H-мосте являются контактами заземления, поэтому давайте подключим их к GND на соответствующих сторонах с помощью четырех перемычек M-M. Мы использовали короткие провода, чтобы вы могли видеть, что происходит.
  1. Теперь пришло время подключить двигатель к Н-образному мосту, двигатель должен иметь два провода со штыревыми разъемами, один красный и один черный. Они будут подключены к контактам Н-моста через макетную плату.
    • Подсоедините белый провод к 1Y Н-моста (ряд 7 на нашей макетной плате).
    • Подключить черный провод к 2Y Н-моста (ряд 10 на нашей плате).
  1. Далее настроим переключатели — с их помощью мы будем контролировать, какие цифровые сигналы посылаются на ШИМ-расширение, а в свою очередь двигатель через H-мост:
    • Выберите три набора по три ряда (мы использовали ряды с 14 по 24)
    • Вставьте переключатели в ряды, по три ряда на переключатель — для каждого переключателя требуется зазор в половину ряда между соседними переключателями, если вы хотите разместить их рядом.
  2. С помощью 6 перемычек M-M соедините крайний левый ряд каждого коммутатора с шиной GND , а крайний правый ряд каждого коммутатора — с шиной Vcc .

Теперь, когда схема Н-моста готова, давайте подключим все это к вашей Omega, чтобы она могла управлять двигателем:

  1. Мы заземлим цепь, соединив шину GND с контактом GND на канале S0. на расширении ШИМ с одной перемычкой MF.
  2. Используя 3 перемычки M-M, подключите центральный ряд каждого коммутатора к Omega GPIO0, GPIO1 и GPIO2 на разъемах расширения. Убедитесь, что вы помните, что есть что, так как позже они будут управлять вашим двигателем!
  3. Возьмите одну перемычку M-M и соедините 1,2EN на ИС (ряд 5 на нашей плате) с шиной Vcc .
  4. Используя две перемычки MF,
    • Подключить 1A , или ряд 6 на нашей плате, к каналу S0 .
    • Подключить 2A , или ряд 11, в канал S1 .
  5. И последнее, но не менее важное: мы подадим питание на шину Vcc, подключив оборванный конец перемычки Vcc (красной) к контакту Vcc канала S0 расширения PWM.

Вот как это выглядит, когда все подключено:

Меры предосторожности при подключении

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

Если вы действительно хотите удостовериться, что ваши компоненты безопасны перед проведением эксперимента, вы можете оставить Omega ВЫКЛЮЧЕННЫМ перед подключением питания к цепи. Как только все будет подключено, вы можете снова включить Omega.

Есть причина, по которой мы используем контакты GND и Vcc на плате PWM Expansion , а не на штырьках док-станции. Если он подключен к штырьковым контактам, двигатель будет подавать напряжение обратной связи на док-станцию ​​​​расширения. Это может привести к зацикливанию загрузки или другому непредсказуемому поведению омеги. На контактах Vcc / GND модуля PWM Expansion установлены прерывающие диоды для предотвращения этого.

Написание кода

Давайте добавим определение класса для двигателя постоянного тока, управляемого H-мостом, в файл motors.py , который мы создали в предыдущем эксперименте. Это определение класса будет специально управлять двигателем постоянного тока, подключенным к Н-мосту. Он основан на абстракциях класса OmegaPwm и заботится о деталях управления двигателем.

Откройте motors.py из эксперимента Dimming LEDs и добавьте следующее:

 H_BRIDGE_MOTOR_FORWARD = 0
H_BRIDGE_MOTOR_REVERSE = 1
класс hBridgeMotor:
    """Класс, что два цифровых сигнала и ШИМ-сигнал для управления H-мостом"""
    def __init__(self, pwmChannel, fwdChannel, revChannel):
        # обратите внимание на каналы
        self.pwmChannel = pwmChannel
        self.fwdChannel = fwdChannel
        self.revChannel = revChannel
        # настроить объекты
        self.pwmDriver = OmegaPwm(self.pwmChannel)
        self.pwmDriver.setDutyCycle(0)
        self.fwdDriver = OmegaPwm(self.fwdChannel)
        self.fwdDriver.setDutyCycle(0)
        self.revDriver = OmegaPwm(self.revChannel)
        self.revDriver.setDutyCycle(0)
        # устанавливаем ограничения
        self.minDuty = 0
        self.maxDuty = 100
    def setupMinDuty (я, обязанность):
        """Установите минимально допустимый рабочий цикл для ШИМ"""
        self.minDuty = обязанность
    def setupMaxDuty (я, обязанность):
        """Установите максимально допустимый рабочий цикл для ШИМ"""
        self. maxDuty = обязанность
    сброс защиты (сам):
        """Установите ШИМ на 0%, отключите оба элемента управления H-Bridge"""
        рет = self.pwmDriver.setDutyCycle (0)
        рет |= self.fwdDriver.setDutyCycle(0)
        рет |= self.revDriver.setDutyCycle(0)
        вернуться обратно
    def spin(я, направление, обязанность):
        """Установите ШИМ на указанную обязанность и в указанном направлении"""
        возврат = 0
        #0 - вперед, 1 - назад
        если (направление == H_BRIDGE_MOTOR_FORWARD):
            self.revDriver.setDutyCycle(0)
            self.fwdDriver.setDutyCycle(100)
        elif (направление == H_BRIDGE_MOTOR_REVERSE):
            self.fwdDriver.setDutyCycle(0)
            self.revDriver.setDutyCycle(100)
        еще:
            возврат = -1
        если (возврат == 0):
            # сверяемся с минимальным и максимальным pwm
            если долг < self.minDuty:
                долг = self.minDuty
            elif duty > self.maxDuty:
                долг = self. maxDuty
            # запрограммировать рабочий цикл
            ret = self.pwmDriver.setDutyCycle(долг)
        вернуться обратно
    def spinForward(я, долг):
        ret = self.spin (H_BRIDGE_MOTOR_FORWARD, обязанность)
        вернуться обратно
    def spinReverse (я, обязанность):
        ret = self.spin (H_BRIDGE_MOTOR_REVERSE, обязанность)
        возврат рет 

Далее давайте напишем код для эксперимента. Этот код заставит мотор делать что-то, используя класс hBridgeMotor, который мы создали выше. Скрипт попросит вас ввести несколько чисел и заведет мотор на основе вашего ввода!

Создайте файл с именем MAK03-hBridgeExperiment.py и вставьте в него следующий код:

 from motors import hBridgeMotor
импорт лукаGpio
время импорта
# настроить каналы расширения PWM, подключенные к H-Bridge IC
H_BRIDGE_1A_CHANNEL = 0
H_BRIDGE_2A_CHANNEL = 1
H_BRIDGE_12EN_CHANNEL = 2
# создаем объекты gpio для наших входов переключателей
направлениеGPIO = onionGpio.OnionGpio(0)
скорость1GPIO = onionGpio. OnionGpio(1)
скорость2GPIO = onionGpio.OnionGpio(2)
# создать словарь функций для проверки ввода пользователя
# это, по сути, таблица диспетчеризации для сопоставления вызовов функций с разными именами
моторкоманды = {
    '000': (лямбда-двигатель: motor.reset()),
    '001': (лямбда-двигатель: motor.spinForward(50)),
    '010': (лямбда-двигатель: motor.spinForward(60)),
    '011': (лямбда-двигатель: motor.spinForward(70)),
    '100': (лямбда-двигатель: motor.reset()),
    '101': (лямбда-двигатель: motor.spinReverse(50)),
    '110': (лямбда-двигатель: motor.spinReverse(60)),
    '111': (лямбда-двигатель: motor.spinReverse(70)),
}
деф основной():
    # создать экземпляр моторного объекта
    двигатель = hBridgeMotor (H_BRIDGE_12EN_CHANNEL, H_BRIDGE_1A_CHANNEL, H_BRIDGE_2A_CHANNEL)
    команда = '000';
    # цикл навсегда
    пока (правда):
        # немного спит, чтобы разместить переключатели
        время сна (0,5)
        # получает сигналы, проходящие через коммутаторы
        commandNew = directionGPIO. getValue()[0]
        commandNew = commandNew + speed1GPIO.getValue()[0]
        commandNew = commandNew + speed2GPIO.getValue()[0]
        # переводит команду в формат motorCommands
        commandNew.replace('\n', '')
        # проверить ввод пользователя по словарю, запустить соответствующую функцию
        # но только если команда изменилась, нет необходимости продолжать вызывать ту же команду
        если (команда != командаНовая):
            команда = командаНовый
            motorCommands[команда](двигатель)
если __name__ == '__main__':
    главная() 

Чего ожидать

При запуске сценарий запускает ШИМ-генератор, а затем устанавливает выход на активный (канал 0 до 100% нагрузки). Затем скрипт запросит у вас набор из 3-х цифр, первая задает направление мотора, следующие две цифры задают скорость. Программа будет повторно запрашивать ввод и соответствующим образом регулировать скорость и направление.

Первая цифра 0 Двигатель вращается по часовой стрелке
1 Двигатель вращается против часовой стрелки
Последние две цифры 00 от
01 50% скорости
10 60% скорость
11 70% скорость

Вот он в действии:

Как вы, наверное, уже видели, здесь используется бесконечный цикл, и вы можете прервать его, нажав Ctrl-C .

Примечание : Мы рекомендуем установить двигатель на 000 перед разрывом петли, чтобы не повредить двигатель. Напоминаем, что вы можете просто вызвать pwm-exp -s , чтобы остановить мотор в терминале или по ssh.

Пристальный взгляд на код

В этом эксперименте мы объединили знания из предыдущих экспериментов для управления двигателем постоянного тока с помощью Python. Теперь мы получаем пользовательский ввод в интерактивном режиме, что позволяет нам изменять вывод в режиме реального времени. Кроме того, мы использовали 93 = 8 различных состояний системы переключения. Это означает, что нам действительно нужно учитывать только 8 отдельных случаев ввода.

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

Таблицы поиска

Вы можете заметить, что ввод, вводимый пользователем в основном цикле, всегда сверяется с переменной motorCommands — эта переменная хранит набор известных значений для проверки. В нашем случае таблица содержит действительный ввод переключателя, совпадающий с его соответствующим выводом, также известный как пара ключ-значение, и сценарий отправляет вывод на ШИМ-контроллер, если ввод, полученный от пользователя, соответствует любому значению в таблице.

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

Пределы ШИМ-управления двигателем

Для работы двигателей постоянного тока требуется приложенное напряжение, а использование ШИМ означает, что двигатель фактически «отвечает» серией импульсов.