Драйвер шагового двигателя. Тестируем микросхему L9110 / Хабр

Откуда «ножки» растут


В настоящее время стали доступны и приобрели популярность различные станки с программным управлением. Это лазерные и фрезерные резчики и гравёры. А так же 3D принтеры. Все эти станки имеют один общий узел — шаговый двигатель.

И этому двигателю нужен драйвер.

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

Существует некоторое количество решений драйверов от различных компаний. В нашей статье мы рассмотрим самое доступное решение драйвера L9110 и его аналог HG7881 Это решение часто используется в Arduino

Теория и практика


Я решил применить микросхему L9110 в своём проекте.

Довольно легко нагуглил datasheet. Прочитал. Всё предельно понятно. Характеристики, распиновка, таблица истинности… По всем параметрам драйвер, вроде бы подходит. Напряжение коммутации — 12 вольт, выходной ток 800 ма. — всего хватает.

А что на деле?


Не откладывая в «долгий ящик» я сделал плату, написал и запустил тестовую программу…

Первое, на что я обратил внимание в своём устройстве — то, что микросхема драйвера сильно греется. Внимание! НА ХОЛОСТОМ ХОДУ. Без нагрузки. Это что за чудеса схемотехники?

Может у меня микросхема бракованная?

Пришла в голову идея рассмотреть сей девайс поподробнее. И не один, а кучу.

Сказано — сделано.

Хорошо, что у меня была припасена панелька SO-8 и плата для моделирования.

Ну, и контроллер на базе STM32.

Собран стенд и произведены измерения.

Да, кстати, кроме непосредственно, силового узла в микросхеме заложена логика исключающее ИЛИ. В даташите это описано.

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

В результате измерений получилась табличка:

Рассмотрим строчки 2 и 3. Что мы здесь видим?

  1. Падение напряжения на выходных транзисторах, при наличии нагрузки, около полутора вольт, что при токе 0,33 ампера даёт 0,5 ватт на канал.
  2. На холостом ходу микросхема потребляет 0,05 А, что при напряжении 12 В даёт 0,6 ватт на канал.


Другими словами, независимо от нагрузки она потребляет около 0,5 Вт на канал. Теперь понятно, почему я об неё обжигал пальцы.

Сильный нагрев — это, конечно недостаток. Но может свою функцию микросхема выполняет хорошо? Тут пригодился недавно подаренный себе 4-х лучевой осциллограф приставка. Не ожидал, что мне так скоро потребуются все 4 луча. Для тестирования написал простенькую программку на stm32, который давно использую в различных проектах. Программа, просто, генерирует 2 прямоугольных сигналы с трёхкратной разницей частот.

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

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

Верхняя часть экрана — входные сигналы — нижняя — выходные.

Сразу бросается в глаза, что при различающихся значениях сигналов на входах, значения на выходах вполне чёткие Устанавливаются без задержек и с резкими фронтами.

Если же сигналы на входах совпадают — то фронт пологий. похож на разряд конденсатора.

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

Может я задал слишком высокую частоту входных сигналов? В даташите лимит не указан.

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

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

Значит два нуля на входе должны «подвешивать» выходы. Тогда, поведение разряжающегося конденсатора вполне предсказуемо. Однако две единицы на входах — должны быть надёжным нулём на выходе. А фактически это не так.

Я мог бы списать этот дефект на «китайского производителя». Однако, я тестировал микросхему по честному выпаянную из ардуиновской платы. При чём — не одну микросхему. Из нескольких плат. То есть, вероятность брака сильно снижена.

Вывод


Область применения микросхем L9110 уже, чем задекларирована, да и КПД низковат.

Рассеяние 0,5-0,6 ватта на одном ключе — это многовато. Не случайно это решение самое дешёвое.(10 центов за микросхему. на алиэкспрессе).

В следующих статьях будут рассмотрены альтернативные драйвера шаговых двигателей.

Как использовать двухканальный модуль драйвера двигателя HG7881 (L9110)

В этой статье объясняется, как использовать

HG7881 (L9110) Двухканальный модуль драйвера двигателя.

HG7881 (L9110) — компактная микросхема драйвера двигателя, поддерживающая
диапазон напряжения от 2,5 до 12 В при 800 мА постоянного тока. Эти
чипы имеют встроенные диоды фиксации выхода для защиты ваших чувствительных
микроконтроллерная электроника. Они подходят для очень маленького робота
проекты.

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

90 011

900 11

HG7881 (L9110) Таблица истинности
Вход Выход
IA IB OA IB Описание
L L L L Выкл.
H L H L Вперед
L H L H Назад
Н H H H Выкл.

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

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

HG7881 (L9110) Двухканальный разъем модуля драйвера двигателя
Штифт Описание
B-IA Двигатель B Вход A (IA)
B-IB Двигатель B Вход B (IB) 900 31
Земля Земля
VCC Рабочее напряжение 2,5–12 В
A-IA Вход A двигателя A (IA)
A-IB Двигатель A Вход B (IB)

Мы рекомендуем использовать вход 1A для управления скоростью каждого двигателя и
вход 1B для управления направлением.

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

Ваш браузер не поддерживает JavaScript!

Важно отметить, что двухканальный двигатель HG7881 (L9110)
Модуль драйвера очень прост. Напряжение, используемое для питания микросхемы, равно
то же напряжение, которое используется для привода двигателей. Это означает, что если вы
используя микросхему 5 В, вы должны рассчитывать на управление двигателями 5 В. Выберите
Драйвер двигателя с более высокой производительностью для большей мощности и возможностей управления.
Banana Robotics предлагает широкий спектр
водители двигателей
и интеллектуальные контроллеры на выбор.

l9110s драйвер шагового двигателя постоянного тока h-мост для arduino 2,5-12 В 800 мА ttl/cmos

A4988 StepStick Compatible…

Этот модуль основан на драйвере шагового двигателя Allegro A4988 и идеально подходит для использования в 3D. ..

£3,49

    NE555 с регулируемой частотой…

    Это модуль генератора прямоугольных импульсов, основанный на широко распространенной микросхеме таймера NE555. …

    1,49 фунта стерлингов

      Л29Драйвер шагового двигателя 8N…

      Использует микросхему ST’ ​​L298N, может напрямую управлять двумя двигателями постоянного тока 3-30 В и обеспечивает выходной интерфейс 5 В,…

      £3,99

        Двойной шаговый двигатель A3697…

        Экран драйвера шагового двигателя, совместимый с Arduino. Этот щит использует 2x Allegro A3967…

        2,99 фунтов стерлингов

        • Распродано
        Л298N Dual H-Bridge Driver…

        Модуль привода двигателя L298N (HCROBO0068) содержит двухканальный полный драйвер H-моста. Это…

        3,99 фунта стерлингов

          Генератор импульсов/ШИМ для…

          Этот модуль генератора импульсов предназначен для сопряжения с распространенными типами шаговых двигателей/двигателей…

          11,99 фунтов стерлингов

          • Распродано
          Драйвер шагового двигателя HR4988

          Этот модуль основан на драйвере шагового двигателя HR4988 и идеально подходит для использования в 3D-принтере,…

          2,89 фунта стерлингов

            Драйвер шагового двигателя A3967…

            Этот совместимый с EasyDriver модуль драйвера шагового двигателя использует Allegro A3967SLB…

            £2,49

            • Распродано
            Разделительная плата для A4988.

            ..

            Этот элемент (HC3DPR0038) представляет собой переходную плату для недорогого шагового двигателя A4988…

            4,49 фунта стерлингов

              Модуль привода 4 двигателей постоянного тока

              Описание:

              Этот модуль использует микросхему L293D и может управлять 4 двигателями постоянного тока.

              PCA9685 16-канальный 12-битный…

              Этот модуль (HCMODU0097) представляет собой переходную плату для 16-канального ШИМ-контроллера NXP PCA9685. Это…

              £6,29

                Модуль драйвера МОП-транзистора IRF520

                Этот небольшой модуль (HCMODU0083) представляет собой коммутационную плату для транзистора МОП-транзистора IFR520. …

                2,49 £

                  Очень компактный двухканальный модуль драйвера двигателя H-bridge. Модуль включает в себя две микросхемы драйвера H-моста L9110S, позволяющие независимо управлять одним шаговым двигателем или двумя двигателями постоянного тока.