mppss.ru – Все про автомобили

Все про автомобили

Лучшее решение по h мосту. Схемы H-мостов для управления ходовыми двигателями роботов и других движущихся устройств. Технические характеристики L298

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

H-мост на механических переключателях

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

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

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

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

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

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

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

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

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

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

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

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

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

Логика управления H-мостом

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

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

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

Если мы объединим эти два типа «И» элемента, с двумя электронными переключателями, как показано на следующем рисунке, то состояние выхода «Х» может быть в трех вариантах: разомкнутое, положительное или отрицательное. Это будет зависеть от логического состояния двух входов. Этот тип выхода известен как «выход с тремя состояниями» (Three-State Output) который широко используется в цифровой электронике.

Теперь посмотрим, как будет работать наш пример. Когда вход «ENA» (разрешение) равен 0В, независимо от состояния входа «А», выход «Х» будет разомкнут, поскольку выходы обоих «И» элементов будут равны 0В, и, следовательно, два переключателя также будут разомкнуты.

Когда мы подаем напряжение на вход ENA, один из двух переключателей будет замкнут в зависимости от сигнала на входе «A»: высокий уровень на входе «A» подключит выход «X» к плюсу, низкий уровень на входе «A» подключит выход «X» к минусу питания.

Таки образом, мы построили одну из двух ветвей «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», при этом оба вывода мотора будут подключены к плюсу питания.

H-мост на драйвере L298

Теперь давайте посмотрим на работу микросхемы L298. На рисунке приведена структурная схема драйвера L298, который имеет два одинаковых H-моста и позволяет управлять двумя двигателями постоянного тока (DC).

Как мы можем видеть, отрицательная часть мостов напрямую не связана с землей, но доступна на выводе 1 для моста слева и на выводе 15 для моста справа. Добавив очень малое сопротивление (шунт) между этими контактами и землей (RSA и RSB), мы можем измерить ток потребления каждого моста с помощью электронной схемы, которая может измеряет падение напряжения в точках «SENS A» и «SENS B».

Это может быть полезно для регулирования тока двигателя (с использованием ШИМ) или просто для активации системы защиты, в случае если двигатель застопориться (в этом случае его ток потребления значительно возрастает).

Защитный диод для индуктивной нагрузки

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

Чтобы решить эту проблему, вы можете использовать быстрые диоды типа Shottky или, если наши двигатели не являются особо мощными, просто обычные выпрямительные диоды, например 1N4007. Нужно иметь в виду, что выходы моста в процессе управления двигателем меняют свою полярность, поэтому необходимо использовать четыре диода вместо одного.

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

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

Схемой управления режимами двигателя является h-мост. Это несложная электронная схема, которая может быть выполнена на следующих элементах:

  • Биполярные транзисторы
  • Полевые транзисторы
  • Интегральные микросхемы

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


На схеме видно, что переключатели должны включаться попарно и по диагонали. Когда включен 1 и 4 ключ, электродвигатель вращается по часовой стрелке. 2 и 3 ключи обеспечивают работу двигателя в противоположном направлении. При включении двух ключей по вертикали слева или справа произойдёт короткое замыкание. Каждая пара по горизонтали закорачивает обмотки двигателя и вращения не произойдёт. На следующем рисунке проиллюстрировано, что происходит, когда мы меняем положение переключателей:


Если мы заменем в схеме переключатели на транзисторы, то получим такой вот (крайне упрощенный) вариант:


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

Н-мост на биполярных транзисторах

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


H-мост на биполярных транзисторах

Такое устройство позволяет управлять электродвигателем постоянного тока небольшой мощности. Если использовать транзисторы КТ816 и КТ817 с индексом А, то напряжение питания не должно превышать 25 В. Аналогичные транзисторы с индексами Б или Г допускают работу с напряжением до 45 В и током не превышающим 3 А. Для корректной работы схемы транзисторы должны быть установлены на радиаторы. Диоды обеспечивают защиту мощных транзисторов от обратного тока. В качестве защитных диодов можно использовать КД105 или любые другие, рассчитанные на соответствующий ток.

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

Схему моста можно изменить, поставив в неё более мощные транзисторы.

Н-мост на полевых транзисторах

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

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

В конструкции использованы следующие элементы:

  • VT 1,2 – IRF7307
  • DD 1 – CD4093
  • R 1=R 2= 100 ком

Интегральные микросхемы с Н-мостом

В ключах Н-моста желательно использовать комплементарные пары транзисторов разной проводимости, но с одинаковыми характеристиками. Этому условию в полной мере отвечают интегральные микросхемы, включающие в себя один, два или более h-мостов. Такие устройства широко применяются в электронных игрушках и робототехнике. Одной из самых простых и доступных микросхем является L293D. Она содержит два h-моста, которые позволяют управлять двумя электродвигателями и допускают управление от ШИМ контроллера. Микросхема имеет следующие характеристики:

  • Питание – + 5 В
  • Напряжение питания электромотора – + 4,5-36 В
  • Выходной номинальный ток – 500 мА
  • Ток в импульсе – 1,2 А

Микросхема L298 так же имеет в своём составе два h-моста, но гораздо большей мощности. Максимальное напряжение питания, подаваемое на двигатель, может достигать + 46 В, а максимальный ток соответствует 4,0 А. Н-мост TB6612FNG допускает подключение двух коллекторных двигателей или одного шагового. Ключи выполнены на MOSFET транзисторах и имеют защиту по превышению температуры, перенапряжению и короткому замыканию. Номинальный рабочий ток равен 1,2 А, а максимальный пиковый – 3,2 А. Максимальная частота широтно-импульсной модуляции не должна превышать 100 кГц.

Мостовые устройства управления электродвигателями часто называют драйверами. Драйверами так же называют микросхемы, только обеспечивающие управление мощными ключевыми каскадами. Так в схеме управления мощным электродвигателем используется драйвер HIP4082. Он обеспечивает управление ключами, собранными на дискретных элементах. В них используются MOSFET транзисторы IRF1405 с N-каналами. Компания Texas Instruments выпускает большое количество интегральных драйверов предназначенных для управления электродвигателями разных конструкций. К ним относятся:

  • Драйверы для шаговых двигателей – DRV8832, DRV8812, DRV8711
  • Драйверы для коллекторных двигателей – DRV8816, DRV8848, DRV8412/32
  • Драйверы для бесколлекторных двигателей – DRV10963, DRV11873, DRV8332

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

Двигатели есть практически в каждом роботе. В одних роботах они приводят в действие колеса, заставляя машину перемещаться в нужном направлении. В других — двигатели крутят пропеллеры, создавая вертикальную тягу для полета. Двигатели позволяют вращаться суставам промышленного робота-манипулятора, и перемещают каретку 3D-принтера. В общем, без хорошего двигателя робота не сделать. Существует множество типов двигателей. К самым распространенным в робототехнике можно отнести двигатель постоянного тока, шаговый двигатель, и бесколлекторный двигатель. У каждого типа есть свои особенности, плюсы и минусы. Одни больше подходят для точных перемещений, другие позволяют легко поднять в небо мультикоптер. Под каждый проект нужно тщательно выбирать нужный тип двигателей. На этом уроке мы разберем, как управлять двигателем постоянного тока (DC Motor). Двигатели этого типа части применяются в роботах на колесных и гусеничных платформах. И начнем мы с самого простого способа управления.

1. Транзистор

Каждый начинающий робототехник сталкивается с проблемой подключения двигателя к микроконтроллеру. Пройдя кажется, что с двигателем можно поступить точно также: подключить его к цифровым выводам Ардуино , а затем включать и выключать по программе. Но не тут-то было. Даже небольшой двигатель, часто используемый в разного рода игрушках, для своей работы требует ток силой от 200 мА до 1 Ампера. А цифровой выход Arduino может дать нам только 20мА. Большинству мощных двигателей требуется напряжение более 5 Вольт, привычных для Ардуино. Распространены двигатели на 12, на 24 и на 48 Вольт. Другими словами, Ардуино очень слаба для прямого управления двигателями. Нужен какой-то мощный посредник! Самый простой посредник — это транзистор. Подойдут и полевые транзисторы, и биполярные, работающие в режиме ключа. Ниже представлена схема управления двигателем при помощи биполярного NPN транзистора. Как видим, схема очень простая. Подаем на базу транзистора слабый сигнал от Arduino через резистор 1кОм, вследствие чего транзистор открывает мощный канал, по которому ток проходит от плюса к минусу, через двигатель. По сути, мы получили примитивный драйвер двигателя ! В цепи обязательно нужно поставить защитный диод, например 1N4001 или 1N4007. Этот диод не даст сгореть транзистору и контроллеру в момент остановки двигателя, когда ЭДС самоиндукции создаст на обмотках скачок напряжения. В этой схеме можем использовать NPN транзистор 2N2222A. Этот биполярный транзистор может управлять током до 1А и напряжением до 40В, так что его можно вполне использовать для небольших моторов. Российский аналог данного транзистора — КТ315. С помощью одного транзистора мы можем включать и выключать двигатель постоянного тока в одном направлении. Но колесный робот должен передвигаться и в одну сторону, и в другую. Что делать? Нужен более продвинутый драйвер.

2. H-мост

Составив транзисторы определенным образом, мы получим устройство для управления вращением двигателя в обе стороны. Такое устройство называется H-мост . Вот так выглядит H-мост на биполярных транзисторах:
INA и INB на рисунке — это вход слабых управляющих сигналов. В случае Ардуино, на них необходимо подавать либо 0 (земля) либо +5В. VCC — это питание двигателей, оно может быть во много раз выше напряжения управляющего сигнала. GND — это земля, общая для Ардуино и H-моста. В зависимости от того, на какой из входов мы подаем положительный сигнал, двигатель будет крутиться в одну или в другу сторону. Как правило, в схему драйвера двигателя постоянного тока помимо самого H-моста, добавляют защитные диоды, фильтры, опторазвязки и прочие улучшения.

3. Микросхема драйвера L293D

Разумеется, необязательно собирать драйвер двигателя вручную из отдельных транзисторов. Существует множество готовых микросхем, которые позволяют управлять разными типами двигателей. Мы рассмотри распространенный драйвер L293D .
Микросхема представляет собой два H-моста, а значит можно управлять сразу двумя двигателями. Каждый мост снабжен четырьмя защитными диодами и защитой от перегрева. Максимальный ток, который может передать L293D на двигатель — 1.2А. Рабочий ток — 600мА. Максимальное напряжение — 36 В.

4. Подключение

Микросхема L293D имеет DIP корпус с 16-ю выводами. Схема выводов ниже. Помним, что отсчет выводов ведется против часовой стрелки и начинается от выемки в корпусе микросхемы.
  • +V — питание микросхема, 5В;
  • +Vmotor — питание двигателей, до 36В;
  • 0V — земля;
  • En1, En2 — выводы включения/выключения H-мостов;
  • In1, In2 — управляющие выводы первого H-моста;
  • Out1, Out2 — выводы для подключения первого двигателя;
  • In3, In4 — управляющие выводы второго H-моста;
  • Out3, Out4 — выводы для подключения второго двигателя.
Выводы En1 и En2 служат для отключения или включения мостов. Если мы подаем 0 на En, соответствующий мост полностью выключается и двигатель перестает вращаться. Эти сигналы пригодятся нам для управления тягой двигателя при помощи ШИМ сигнала. Схема подключения к Ардуино Уно
Драйвер L293D In1 In2 In3 In4 En1 En2 V+ Vmotor+ 0V
Arduino Uno 7 8 2 3 6 5 +5V +5V GND
Для пример, подключим по этой схеме всего один двигатель. Задействуем выводы драйвера In3, In4 и En2. Принципиальная схема подключения будет выглядеть следующим образом:
Внешний вид макета

5. Программа

Напишем простую программу, которая будет вращать двигатель, меняя направление каждую секунду. const int in3 = 2; const int in4 = 3; const int en2 = 5; void setup() { pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(en2, OUTPUT); analogWrite(en2, 255); } void loop() { digitalWrite(in3, LOW); digitalWrite(in4, HIGH); delay(1000); digitalWrite(in3, HIGH); digitalWrite(in4, LOW); delay(1000); } Функция analogWrite с помощью ШИМ сигнала управляет мощностью двигателя. В этой программе мы командуем драйверу вращать двигатель с максимальной скоростью, что соответствует ШИМ сигналу — 255. Здесь следует отметить, что уменьшение ШИМ сигнала в два раза не даст в два раза меньшую скорость. Скорость и тяга двигателей постоянного тока зависят от входного напряжения нелинейно. Теперь усложним программу. Будем кроме направления менять еще и мощность. const int in3 = 2; const int in4 = 3; const int en2 = 5; void setup() { pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(en2, OUTPUT); } void loop() { digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(en2, 150); delay(2000); analogWrite(en2, 255); delay(2000); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(en2, 150); delay(2000); analogWrite(en2, 255); delay(2000); } Вот что получится в итоге. Сначала мотор вращается с небольшой скоростью, затем выходит на максимальные обороты, и повторяет все в обратном направлении. На видео мы крутим распространенный двигатель постоянного тока CH1 с колесом. Такие часто применяют в учебных роботах.

Задания

Теперь, когда стало немного понятнее как управлять обычными двигателями постоянного тока, попробуем выполнить несколько заданий на базе самого простого робота на двух колесах.
  1. Собрать драйвер на основе одного NPN транзистора, и вращать с помощью него мотор.
  2. Управлять сразу двумя моторами при помощи L293D, передавая на них разную мощность.
  3. Собрать колесного робота, и заставить его двигаться по окружности.
  4. Заставить колесного робота двигаться по спирали.
В следующем уроке на тему двигателей изучим работу энкодеров, которые позволят сделать управление более точным и помогут сделать сервопривод своими руками.

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

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

Конденсаторы

Конденсаторы -- это детали, которые встречаются в любой конструкции без исключения. Обычно самые простые конденсаторы представляют собой две пластины из металла. И в качестве диэлектрического компонента выступает воздух. Сразу вспоминаются уроки физики в школе, когда проходили тему о конденсаторах. В качестве модели выступали две огромные плоские железки круглой формы. Их приближали друг к другу, затем отдаляли. И в каждом положении проводили замеры. Стоит отметить, что вместо воздуха может использоваться слюда, а также любой материал, который не проводит электрический ток. Обозначения радиодеталей на импортных принципиальных схемах отличается от ГОСТов, принятых в нашей стране.

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

  1. При работе на переменном токе конденсатор замещается отрезком проводника с нулевым сопротивлением.
  2. При работе в цепи постоянного тока конденсатор замещается (нет, не емкостью!) сопротивлением.

Основной характеристикой конденсатора является электрическая емкость. Единица емкости - это Фарад. Она очень большая. На практике, как правило, используются которых измеряется в микрофарадах, нанофарадах, микрофарадах. На схемах конденсатор обозначается в виде двух параллельных черточек, от которых идут отводы.

Переменные конденсаторы

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

Постоянные конденсаторы

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

  1. Воздух.
  2. Слюда.
  3. Керамика.

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

на схемах

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

Допустим, имеется переменный конденсатор с емкостью 9-240 (измерение по умолчанию в пикофарадах). Это значит, что при минимальном перекрытии пластин емкость составит 9 пФ. А при максимальном - 240 пФ. Стоит рассмотреть более детально обозначение радиодеталей на схеме и их название, чтобы уметь правильно читать технические документации.

Соединение конденсаторов

Сразу можно выделить три типа (всего существует именно столько) соединений элементов:

  1. Последовательное - суммарная емкость всей цепочки вычислить достаточно просто. Она будет в этом случае равна произведению всех емкостей элементов, разделенному на их сумму.
  2. Параллельное - в этом случае вычислить суммарную емкость еще проще. Необходимо сложить емкости всех входящих в цепочку конденсаторов.
  3. Смешанное - в данном случае схема разбивается на несколько частей. Можно сказать, что упрощается - одна часть содержит только параллельно соединенные элементы, вторая - только последовательно.

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

Резисторы: общие сведения

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

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

Постоянные резисторы

Что касается таких элементов, то можно выделить наиболее распространенные типы:

  1. Металлизированные лакированные теплостойкие - сокращенно МЛТ.
  2. Влагостойкие сопротивления - ВС.
  3. Углеродистые лакированные малогабаритные - УЛМ.

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

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

Переменный резистор (потенциометр)

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

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

Соединение резисторов

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

  1. Последовательное соединение - сопротивление всех элементов в цепи складывается.
  2. Параллельное соединение - произведение сопротивлений делится на сумму.
  3. Смешанное - разбивается вся схема на более мелкие цепочки и вычисляется поэтапно.

На этом можно закрыть обзор резисторов и начать описывать самые интересные элементы - полупроводниковые (обозначения радиодеталей на схемах, ГОСТ для УГО, рассмотрены ниже).

Полупроводники

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

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

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

Диоды и стабилитроны

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

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

Транзисторы

Если диоды и стабилитроны можно иногда даже не встретить в конструкциях, то транзисторы вы найдете в любой (кроме У транзисторов три электрода:

  1. База (сокращенно буквой "Б" обозначается).
  2. Коллектор (К).
  3. Эмиттер (Э).

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

  1. Полярные.
  2. Биполярные.
  3. Полевые.

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

Рассмотрим драйвер электродвигателей на транзисторах и микросхеме L298, разберемся с принципом работы H-моста. Узнаем особенности подключения драйверов на L298 к разным двигателям и источникам питания, проведем простые эксперименты с шаговыми движками и двигателями постоянного напряжения. Подключение к Raspberry Pi и простейшие программы для теста управления драйвером.

Что такое H-мост

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

Почему такое название? - потому что схема включения двигателя и переключателей для коммутации напоминает латинскую букву H. Принципы работы H-моста показан нарисунке ниже.

Рис. 1. Как работает H-мост, принцип коммутации двигателя для вращения в разные стороны.

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

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

Схема простого H-моста на кремниевых транзисторах

Собрать простой драйвер двигателя постоянного тока (или для обмотки шагового двигателя) можно на распространенных кремниевых транзисторах.

Рис. 2. Принципиальная схема простого драйвера электродвигателя на кремниевых транзисторах.

Такой драйвер позволяет управлять электродвигателем постоянного тока с питающим напряжением до 25В (для КТ817А, КТ816А) и до 45В (для КТ817Б-Г, КТ816Б-Г) с током не более 3А. При большом рабочем и нагрузочном токе двигателя выходные транзисторы КТ817 и КТ816 должны быть установлены на радиаторы достаточного размера.

Установка диодов VD1-VD2 обязательна, они нужны для защиты выходных транзисторов от обратного тока. На их место можно поставить отечественные КД105А или другие на больший ток.

Собрав две такие схемки (2х6 транзисторов) можно также управлять шаговым двигателем или же двумя двигателями постоянного тока.

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

Микросхема L298, характеристики и возможности

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

Рис. 3. Микросхема L298 в корпусах Multiwatt15 PowerSO20.

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

  • Рабочее напряжение - до 46В;
  • Максимальный постоянный ток - 4А (с радиатором);
  • Низкое напряжение насыщения;
  • Защита от перегрева;
  • Логический "0" = напряжение до 1,5В.

Где можно применить драйвер на микросхеме L298? - несколько идей:

  • Управление шаговым двигателем;
  • Управление двумя двигателями постоянного тока (DC motors);
  • Коммутация катушек мощных реле;
  • Управление соленоидами (электромагнитами).

Если посмотреть на структурную схему микросхему L298 то мы можем увидеть что-то на подобии схемы на рисунке 2, только с дополнительными логическими элементами.

Рис. 4. Внутренняя схема микросхемы L298N - мощный двойной H-мост.

Для каждого H-моста мы имеем по 3 входа: In1 - для подачи напряжения в одном направлении, In2 - в противоположном, и еще один вход En для подачи питания на выходные транзисторы моста.

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

Схема драйвера на микросхеме L298

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

Рис. 5. Принципиальная схема драйвера электродвигателей на микросхеме L298N.

Для питания логики обеих микросхем нужно стабилизированное напряжение +5В (P2), можно использовать интегральный стабилизатор, например L7805 или же питать логику от имеющейся линии питания +5В. Для подачи питающего напряжения на двигатели используется отдельная линия питания P1.

Выводы P4, P5 используются для установки полярности каждого из каналов, а выводы P6, P7 - разрешают подачу питания на каскады (ключи) внутреннего H-моста для каждого канала.

Микросхему CD4011 можно заменить на отечественную К176ЛА7. Диоды Шоттки можно поставить другого номинала, на 35В/4А и более. Если не планируется ограничивать ток обмоток двигателя(двигателей) то низкоомные ограничивающие резисторы R9-R10 можно исключить из схемы, заменив их на перемычки.

В интернете можно заказать готовый модуль на L298, правда в нем будет 6 входов для управления.

Рис. 6. Готовые модули на L298.

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

Для подключения данной платки важно четко уяснить одну особенность:

  • Если для питания двигателей используется напряжение более чем 12В то перемычку нужно убрать и подавать отдельно 5В на выделенный для этого коннектор
  • Если питание двигателей будет осуществляться от напряжения 5-12В то перемычку нужно утсановить и дополнительное питание 5В не понадобится.

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

Для того чтобы сэкономить два входа при подключении такого блока к Arduino или Raspberry Pi можно добавить часть схемы на CD4001, как на рисунке 5.

L298 + DC двигатели + Raspberry Pi

Для данного эксперимента к модулю на L298 были подключены два двигателя постоянного тока. Питание всего модуля осуществляется от одного аккумулятора на 6В. Поскольку это напряжение меньше 12В (смотрим выше описание) то перемычку внутреннего стабилизатора оставляем установленной и дополнительное питание +5В для логики не потребуется.

Перемычки "ENA" и "ENB", которые разрешают подачу питания на выходные мосты, оставлены установленными. Таким образом, для управления каждым из двигателей используем оставшиеся четыре входа: IN1, IN2, IN3, IN4.

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

Где взять +5В? - в данном случае это напряжение присутствует на разъеме питания, справа возле GND. Для теста можно воспользоваться кусочком проволоки - перемычкой.

Теперь подключим наш модуль к Raspberry Pi и напишем простую тестовую программу на Python. Для подключения модуля я использовал выводы GPIO вот в таком соответствии:

Рис. 7. L298 + Raspberry Pi + электродвигатели постоянного тока.

Мини-компьютер у меня питается через понижающий импульсный стабилизатор от второго аккумулятора на 6В. Перейдем к написанию программы для нашего эксперимента, наша цель - управлять вращением вала каждого из двигателей при помощи клавиатуры, которая подключена к Raspberry Pi или же удаленно по SSH, VNC.

Теперь испробуем простую программу, написанную на Python, которая поможет понять принцип управления электродвигателем постоянного тока.

Загружаем малинку, открываем Терминал или же подключаемся к ней удаленно при помощи SSH. Создаем новый файл и открываем его для редактирования при помощи команды:

Nano /home/pi/l298_dc_motors_test.py

Вставляем в редактор код скрипта на Python, который приведен ниже:

#!/usr/bin/env python # -*- coding: utf-8 -*- import time import RPi.GPIO as GPIO # Подготавливаем пины GPIO. GPIO.cleanup() GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.OUT) GPIO.output(4, GPIO.LOW) GPIO.setup(17, GPIO.OUT) GPIO.output(17, GPIO.LOW) # Включаем вращение двигателя 1 в одну сторону. GPIO.output(4, GPIO.HIGH) # ждем 5 секунд. time.sleep(5) # Выключаем двигатель 1. GPIO.output(4, GPIO.LOW) # ждем 10 секунд. time.sleep(10) # Включаем вращение двигателя 1 в другую сторону. GPIO.output(17, GPIO.HIGH) # ждем 5 секунд. time.sleep(5) # Выключаем двигатель 1. GPIO.output(17, GPIO.LOW)

Выходим из редактора и сохраняем файл. Делаем скрипт исполняемым и запускаем его:

Chmod +x /home/pi/l298_dc_motors_test.py /home/pi/l298_dc_motors_test.py

После запуска скрипта один из двигателей начнет вращаться в одну сторону на протяжении пяти секунд, потом он выключится и через 10 секунд начнет вращаться в другую сторону на протяжении 5-ти секунд.

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

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

#!/usr/bin/env python # -*- coding: utf-8 -*- import os import sys import curses import time import RPi.GPIO as GPIO # Установим номера пинов GPIO, с которыми будем работать M1_RIGHT = 4 M1_LEFT = 17 M2_RIGHT = 27 M2_LEFT = 22 # Функция для подготовки пинов GPIO def setup(*ports): GPIO.cleanup() # Режим именования пинов по названию, а не по номеру на плате GPIO.setmode(GPIO.BCM) for port in ports: # Установка пина на вывод + низкий уровень "0" GPIO.setup(port, GPIO.OUT) GPIO.output(port, GPIO.LOW) # Функция для установки низкого уровня на всех пинах (выключение) def stop_all(): GPIO.output(M1_LEFT, GPIO.LOW) GPIO.output(M1_RIGHT, GPIO.LOW) GPIO.output(M2_LEFT, GPIO.LOW) GPIO.output(M2_RIGHT, GPIO.LOW) # Функция для управления вращением движков def rotate(motor=1, mode="s"): # Выключаем все пины stop_all() # Для мотора 1 if motor == 1: if mode == "r": # Устанавливаем высокий уровень на пине M1_RIGHT (4) GPIO.output(M1_RIGHT, GPIO.HIGH) elif mode == "l": # Устанавливаем высокий уровень на пине M1_LEFT (17) GPIO.output(M1_LEFT, GPIO.HIGH) # Для мотора 2 elif motor == 2: if mode == "r": GPIO.output(M2_RIGHT, GPIO.HIGH) elif mode == "l": GPIO.output(M2_LEFT, GPIO.HIGH) # Выполним инициализацию пинов GPIO setup(M1_RIGHT, M1_LEFT, M2_RIGHT, M2_LEFT) # Инициализация экрана (модуль curses) stdscr = curses.initscr() # Реагировать на нажатие клавиш без подтверждения при помощи ENTER curses.cbreak() # Разрешить использование стрелочек на клавиатуре stdscr.keypad(1) # Не блокировать программу по времени при опросе событий stdscr.nodelay(1) # Отобразим на экране данные по умолчанию stdscr.addstr(0, 10, "Hit "q" to quit") stdscr.addstr(2, 10, "A - M1 Left, D - M1 Right") stdscr.addstr(3, 10, "< - M2 Left, > - M2 Right") stdscr.addstr(4, 10, "S - stop") stdscr.refresh() # Главный цикл while True: # Получаем код нажатия клавиши и проверяем его key = stdscr.getch() if key != -1: # Если клавиша "стрелка влево" то вращаем движок 2 влево if key == curses.KEY_LEFT: # Выводим на экран строку "M2 <---" в позиции 6, 10 stdscr.addstr(6, 10, "M2 <---") rotate(2, "l") # Если клавиша "стрелка вправо" то вращаем движок 2 вправо elif key == curses.KEY_RIGHT: stdscr.addstr(6, 10, "M2 --->") rotate(2, "r") # Если клавиша "а" то вращаем движок 1 влево elif key == ord("a"): stdscr.addstr(6, 10, "M1 <---") rotate(1, "l") # Если клавиша "d" то вращаем движок 1 вправо elif key == ord("d"): stdscr.addstr(6, 10, "M1 --->") rotate(1, "r") # Если клавиша "s" то останов всех движков elif key == ord("s"): stdscr.addstr(6, 10, "STOP 12") stop_all() # Если клавиша "s" то выходим из программы elif key == ord("q"): # Восстановление прежних настроек терминала stdscr.keypad(0) curses.echo() curses.endwin() # Очистка и выход os.system("clear") sys.exit() # Обновляем текст на экране и делаем небольшую задержку stdscr.refresh() time.sleep(0.01)

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

Рис. 8. Программа на Python для управления двигателями при помощи драйвера L298 (терминал Konsole, KDE).

Краткая видео-демонстрация работы данного эксперимента приведена ниже:

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

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

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

Такие двигатели бывают следующих видов:

  • Биполярный - 2 обмотки, по одной на каждую фазу, для управления можно использовать схему на 2 H-моста или один полу-мост с двуполярным питанием;
  • Униполярный - 2 обмотки, каждая с отводом от середины, удобно переключать фазы сменой половинок каждой из обмоток, упрощает схему драйвера (4 ключа), а также использовать как быполярный без использования отводов от обмоток;
  • С четирьмя обмотками - универсальный, подключив обмотки соответствующим образом можно использовать как быполярный или униполярный движок.

Рис. 9. Типы шаговых двигателей: биполярный, униполярный, с четырьмя обмотками.

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

L298 + шаговый двигатель + Raspberry Pi

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

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

Прежде можете поэкспериментировать без малинки - подавать поочередно на входы модуля L298 напряжение 5В и посмотреть как вал двигателя будет выполнять шаги.

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

Рис. 10. Подключение биполярного шагового двигателя к модулю L298 для управления через Raspberry Pi.

Если все уже подключено, то переходим к экспериментам с простой тестовой программой на Python, которая поможет понять как работать с шаговыми двигателем используя L298 + Raspberry Pi.

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

Nano /home/pi/l298_stepper_motor_test.py

Вставляем в редактор следующий код скрипта на Python:

#!/usr/bin/env python # -*- coding: utf-8 -*- import time import RPi.GPIO as GPIO # Подготавливаем пины GPIO. GPIO.cleanup() GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.OUT) GPIO.output(4, GPIO.LOW) GPIO.setup(17, GPIO.OUT) GPIO.output(17, GPIO.LOW) GPIO.setup(27, GPIO.OUT) GPIO.output(27, GPIO.LOW) GPIO.setup(22, GPIO.OUT) GPIO.output(22, GPIO.LOW) # Временная задержка между шагами, сек. step_timeout = 0.0105 # Длительность импульса, сек. impulse_timeout = 0.008 # Шаг 1. GPIO.output(4, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(4, GPIO.LOW) time.sleep(step_timeout) # Шаг 2. GPIO.output(17, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(17, GPIO.LOW) time.sleep(step_timeout) # Шаг 3. GPIO.output(27, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(27, GPIO.LOW) time.sleep(step_timeout) # Шаг 4. GPIO.output(22, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(22, GPIO.LOW) time.sleep(step_timeout) # Ждем 10 секунд. time.sleep(10) # 20 раз по 4 шага в цикле. for i in range(0,20): GPIO.output(4, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(4, GPIO.LOW) time.sleep(step_timeout) GPIO.output(17, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(17, GPIO.LOW) time.sleep(step_timeout) GPIO.output(27, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(27, GPIO.LOW) time.sleep(step_timeout) GPIO.output(22, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(22, GPIO.LOW) time.sleep(step_timeout)

Делаем файл со скриптом исполняемым и запускаем его на исполнение:

Chmod +x /home/pi/l298_stepper_motor_test.py /home/pi/l298_stepper_motor_test.py

осле запуска скрипта, шаговый двигатель должен совершить 4 шага (вращение в одну сторону), потом подождав 10 секунд он снова начнет свое вращение и сделает уже 20*4 шагов.

А теперь рассмотрим пример интерактивной программы, которая позволяет управлять направлением и скоростью вращения (последовательные шаги) шагового двигателя с использованием клавиатуры.

#!/usr/bin/env python # -*- coding: utf-8 -*- import os import sys import curses import time import RPi.GPIO as GPIO # Функция для подготовки пинов GPIO def setup(*ports): GPIO.cleanup() # Режим именования пинов по названию, а не по номеру на плате GPIO.setmode(GPIO.BCM) for port in ports: # Установка пина на вывод + низкий уровень "0" GPIO.setup(port, GPIO.OUT) GPIO.output(port, GPIO.LOW) # Функция для подачи импульса на пин с некоторой задержкой (1 шаг) def impulse(port=0): GPIO.output(port, GPIO.HIGH) # Set the timeout value to be anough for one step time.sleep(0.008) GPIO.output(port, GPIO.LOW) time.sleep(timeout) # Выполняем установку нужных нам пинов GPIO setup(4, 17, 27, 22) # Задержка между шагами (по умолчанию) timeout = 0.0105 # Направление вращения (по умолчанию) direction = "r" # Инициализация экрана (модуль curses) stdscr = curses.initscr() # Реагировать на нажатие клавиш без подтверждения при помощи ENTER curses.cbreak() # Разрешить использование стрелочек на клавиатуре stdscr.keypad(1) # Не блокировать программу по времени при опросе событий stdscr.nodelay(1) # Отобразим на экране данные по умолчанию stdscr.addstr(0, 10, "Hit "q" to quit") stdscr.addstr(2, 10, "--->") stdscr.addstr(3, 10, "Timeout: " + str(timeout)) stdscr.refresh() # Главный цикл while True: # Набор импульсов для вращения вала мотора вправо if direction == "r": impulse(4) impulse(17) impulse(27) impulse(22) # Набор импульсов для вращения вала мотора влево elif direction == "l": impulse(22) impulse(27) impulse(17) impulse(4) # Считываем код нажатия клавиши и проверяем его key = stdscr.getch() if key != -1: # Клавиша "влево" меняет направление вращения: ВЛЕВО if key == curses.KEY_LEFT: # отображаем текст "<---" в позиции экрана 2, 10 stdscr.addstr(2, 10, "<---") # Изменим значение переменной с направлением вращения direction = "l" # Клавиша "вправо" меняет направление вращения: ВПРАВО elif key == curses.KEY_RIGHT: stdscr.addstr(2, 10, "--->") direction = "r" # Клавиша "вверх" ускоряет вращение elif key == curses.KEY_UP: # Уменьшаем задержку между шагами timeout = timeout - 0.0005 # Клавиша "вниз" замедляет вращение elif key == curses.KEY_DOWN: # Увеличиваем задержку между шагами timeout = timeout + 0.0005 # Клавиша "q" выполняет выход из программы elif key == ord("q"): stdscr.keypad(0) curses.echo() curses.endwin() os.system("clear") sys.exit() # Смотрим чтобы время задержки не перешло границу 0 if timeout <= 0: timeout = 0.0005 # Обновляем текст на экране stdscr.addstr(3, 10, "Timeout: " + str(timeout)) stdscr.refresh() time.sleep(0.01)

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

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

Рис. 11. Программа управления биполярным шаговым двигателем, L298, Raspberry Pi.

Видео-демонстрация работы шагового двигателя:

Заключение

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

Важно заметить что в интернете можно найти готовые библиотеки и скрипты на Python для удобного управления двигателями при помощи H-моста на L298 с использованием Raspberry Pi.


Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и правилами сайта, изложенными в пользовательском соглашении