Сегодня мы узнаем об одном из доступных модулей драйвера двигателя постоянного тока, который используется для управления небольшими маломощными двигателями, такими как двигатели постоянного тока N20 и N10. Одним из популярных вариантов для управления двигателем постоянного тока является микросхема драйвера двигателя L293D, но сегодня мы рассмотрим более лучший вариант - драйвер MX1508. Мы рассмотрим основные принципы его работы, технические характеристики, распиновку и его подключение к плате Arduino.
Ранее на нашем сайте мы рассматривали подключение и других драйверов двигателей постоянного тока к плате Arduino:
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Редукторный двигатель N20.
- Модуль драйвера двигателя MX1508.
- Макетная плата
- Соединительные провода.
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Драйвер двигателя MX1508
MX1508 — это двухканальный драйвер двигателя постоянного тока со встроенным полным мостовым приводом на силовых МОП-транзисторах. Идеально подходит для использования в интеллектуальных автомобилях с батарейным питанием, игрушечных машинках и роботах.
Поддельные драйверы двигателей MX1508: в идеале основной микросхемой (ИС) в этом модуле должна быть MX1508. Но, как оказалось, у этой ИС есть некоторые эквиваленты, поэтому иногда вам могут поставляться модули с другими названиями ИС. Одним из эквивалентов, над которыми мы работаем сегодня, является TC1508 . Единственное, что нужно иметь в виду, это то, что вам нужно сверить соответствующий технический паспорт с требованиями и спецификациями вашего проекта. Большинство эквивалентных ИС будут работать точно так же, так что вам не придется сильно беспокоиться об этом.
Основные особенности модуля драйвера двигателя MX1508:
- Оснащен двухканальным встроенным мостовым драйвером МОП.
- Он может двигаться вперед и назад, а также имеет функции остановки и торможения.
- Сверхнизкий ток в режиме ожидания и рабочая температура.
- Низкое сопротивление открытого канала (1,6 Ом) в МОП-транзисторах.
- Максимальный непрерывный ток до 1,8 А на канал, с пиковым значением до 2,5 А.
- Широкий диапазон рабочего напряжения (2,4 - 7,2 В).
Технические характеристики модуля драйвера двигателя MX1508
Как мы уже обсуждали, есть несколько клонов и эквивалентов этого модуля, которые имеют другие ИС. Модуль, который у нас есть, состоит из интегральной схемы TC1508. Таким образом, спецификации, которые мы рассмотрим, будут полностью зависеть от ИС TC1508. Подумайте об этом, прежде чем рассматривать следующие данные. Проверьте ИС в вашем модуле, найдите его техническое описание и изучите его перед использованием.
Параметр | Символ | Пределы | Пределы | Пределы | Единица измерения |
Мин. | Типичный | Макс. | |||
Напряжение питания | Vcc | 2.4 | 5 | 7.2 | В |
Рабочий ток двигателя - пиковый / канал | Iop−peak | - | - | 2.5 | А |
Рабочий ток двигателя - непрерывный / канал | Iop-cont | - | 1.8 | - | А |
Рабочий ток цепи управления | Ictrl | - | 0.3 | 1 | мА |
Ток отключения цепи | Isd | - | 0 | 10 | мкА |
Входное напряжение высокого уровня | Vih | 2 | - | - | В |
Низкоуровневое входное напряжение | Vil | - | - | 0,8 | В |
Входной ток высокого уровня | Iih | - | 5 | 20 | мкА |
Низкий входной ток | Iil | -1 | 0 | - | мкА |
Выходное сопротивление ВКЛ | Ron | - | 1 | 1.6 | Ω |
Рабочая температура | Top | -25 | - | 85 | °С |
Температура хранения | Tstg | -55 | - | 150 | °С |
В данной таблице приведены подробные характеристики модуля драйвера, в котором есть микросхема TC1508. В случае, если у вас есть модуль с микросхемой MX1508, то он будет отличаться следующими характеристиками:
- Диапазон рабочего напряжения: от 2 В до 9,6 В.
- Пиковый ток двигателя: 2А (заднее колесо), 1,5А (рулевое колесо).
- Постоянный ток двигателя: 0,8 А (рулевое колесо).
Распиновка MX1508
Как показано на рисунке ниже, распиновка модуля драйвера двигателя MX1508 достаточно проста. Он похож на большинство модулей драйверов двигателя, но единственное отличие заключается в том, что у него нет отдельного входа напряжения для двигателя и логической схемы.
Выше вы можете увидеть схему расположения выводов модуля драйвера двигателя постоянного тока MX1508. Этот модуль достаточно компактен, но, по моему мнению, одним из недостатков этого модуля является то, что он не дружелюбен к макетной плате. Вам нужно либо припаять провода непосредственно к печатной плате, либо припаять полоски Берга по отдельности и использовать перемычки для сопряжения с ними.
В следующей таблице приведено назначение контактов модуля драйвера двигателя постоянного тока MX1508.
<
Номер контакта | Обозначение контакта | Тип контакта | Назначение контакта |
1 | +VE | Питание | Положительный источник питания (2,4 - 7,6 В) |
2 | -VE | Питание | Заземление |
3 | INT1 | Цифровой вход [ШИМ] | Управляющие контакты для двигателя A |
4 | INT2 | Цифровой вход [ШИМ] | Управляющие контакты для двигателя A |
5 | INT3 | Цифровой вход [ШИМ] | Управляющие контакты для двигателя B |
6 | INT4 | Цифровой вход [ШИМ] | Управляющие контакты для двигателя B |
7 | MB2 | Цифровой выход [ШИМ] | Выход двигателя B |
8 | MB1 | Цифровой выход [ШИМ] | Выход двигателя B |
9 | MA2 | Цифровой выход [ШИМ] | Выход двигателя А |
10 | MA1 | Цифровой выход [ШИМ] | Выход двигателя А |
Здесь +Ve и -Ve используются для подачи питания на модуль. Контакты INT1 и INT2 используются для управления двигателем A, подключенным к MA1 и MA2. Аналогично, контакты INT3 и INT4 используются для управления двигателем B, подключенным к контактам MB1 и MB2. Как и другие драйверы, он имеет внутри H-мост, который может использоваться для управления двигателем как вперед, так и назад, даже на переменных скоростях с использованием ШИМ (широтно-импульсной модуляции).
Компоненты модуля драйвера двигателя MX1508
На следующем рисунке показаны основные компонентах модуля MX1508. Основной компонент, который занимает место на модуле, — это конденсатор, используемый для фильтрации шин напряжения и их сглаживания. Остальные три компонента достаточно малы.
Я упомянул TC1508 или MX1508 рядом с ИС (микросхемой), потому что есть вероятность получить любой из них или модуль с какой-то другой ИС. На изображении выше вы можете видеть, что я получил модуль с микросхемой TC1508. Помните об этом, когда работаете с вашим модулем.
Так как компонентов не так много, то и его схема проста для понимания. Ниже представлена схема модуля MX1508.
Схему можно разделить на две основные секции: силовую секцию и секцию подключения MX1508. В силовой секции есть два больших электролитических конденсатора, используемых для фильтрации шума от входного напряжения. Контакт питания двигателя ИС напрямую подключен к входному напряжению, с резистором 220 Ом, размещенным между схемой логики управления и входным напряжением для ограничения тока в схеме логики управления. Также включен диод для защиты от обратного напряжения.
В секции подключения MX1508 все необходимые контакты легко доступны для подключения.
Одно важное рекомендуемое дополнение - это добавление конденсатора 100 нФ параллельно обоим выходным контактам двигателя, что не сделано по умолчанию в этом модуле. Это дополнение помогает в подавлении шума, фильтрации высокочастотного шума, стабилизации питания и улучшении общей производительности.
Как использовать модуль драйвера двигателя MX1508
Этот модуль может быть использован двумя способами: автономно и с микроконтроллерами. В любом случае, логика работы одинакова и проста.
Каждый двигатель имеет два отдельных входных контакта для управления вращением. В следующей таблице представлена логика управления двигателями с помощью модуля MX1508.
ВХОД | ВХОД | ВХОД | ВХОД | ВЫХОД | Функция |
IN1 | IN2 | IN3 | IN4 | ||
НИЗКИЙ | НИЗКИЙ | - | - | Мотор А | Режим ожидания |
ВЫСОКИЙ* | НИЗКИЙ | - | Мотор А | Вперед | |
НИЗКИЙ | ВЫСОКИЙ* | - | - | Мотор А | Назад |
ВЫСОКИЙ | ВЫСОКИЙ | - | - | Мотор А | Остановка |
- | - | НИЗКИЙ | НИЗКИЙ | Мотор Б | Режим ожидания |
- | - | ВЫСОКИЙ* | НИЗКИЙ | Мотор Б | Вперед |
- | - | НИЗКИЙ | ВЫСОКИЙ* | Мотор Б | Назад |
- | - | ВЫСОКИЙ | ВЫСОКИЙ | Мотор Б | Остановка |
*Вместо HIGH подача сигнала ШИМ обеспечит управление скоростью двигателя.
IN1 и IN2 управляют двигателем A, а IN3 и IN4 управляют двигателем B. MX1508 включает в себя встроенные подтягивающие резисторы на всех входах, поэтому, если они не подключены, контакты по умолчанию находятся в состоянии LOW.
Когда оба входа LOW, модуль находится в режиме ожидания, фактически выключен. Когда оба входа HIGH, модуль переходит в режим торможения, удерживая двигатели на месте, как тормозная система. Когда один вход HIGH, а другой LOW, двигатель вращается в определенном направлении. В частности, если вход HIGH является сигналом ШИМ, он соответствующим образом регулирует скорость двигателя.
Схема проекта
Для демонстрационных целей я использую один редукторный двигатель типа N20. Его рабочее напряжение составляет всего 2,5 В, что делает его идеально подходящим для этого модуля драйвера. Схема подключения драйвера двигателя постоянного тока MX1508 к плате Arduino представлена на следующем рисунке.
В схеме сделаны следующие соединения:
- Модуль MX1508 питается от напряжения 3,3 В.
- Поскольку нам нужно регулировать скорость двигателя, мы должны использовать цифровые выводы, которые поддерживают ШИМ. Поэтому я выбираю выводы 5 и 6 Arduino UNO и подключаю их к IN1 и IN2 модуля драйвера двигателя.
- Поскольку мы сосредоточены на управлении двигателем A, двигатель N20 подключен к контактам MA1 и MA2 модуля драйвера двигателя.
Внешний вид собранной конструкции проекта представлен на следующем рисунке.
Объяснение кода программы
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
Целью данного проекта является вращение вала двигателя вперед и назад с фиксированной скоростью с использованием модуля драйвера двигателя MX1508 и платы Arduino.
Сначала мы объявляем необходимые переменные и определяем соединения контактов:
1 2 3 4 5 6 |
// Определить соединения и настройки контактов const int ForwardPin = 6; // Контакт для управления двигателем вперед const int BackwardPin = 5; // Контакт для управления двигателем в обратном направлении const long ActionTime = 200; // Длительность двигательного действия (миллисекунды) const int MaxSpeed = 110; // Максимальная скорость (0-255) bool DirectionFlag = true; // Флаг направления для управления двигателем |
- ForwardPin подключен к контакту 6 для движения вперед.
- BackwardPin подключен к контакту 5 для движения назад.
- ActionTime — это задержка между изменениями направления (200 миллисекунд).
- MaxSpeed устанавливает скорость двигателя (диапазон 0-255).
- DirectionFlag помогает изменять направление вращения двигателя.
В функции setup() мы инициализируем выводы управления двигателем как выходы:
1 2 3 4 5 |
void setup() { // Set motor control pins as outputs pinMode(ForwardPin, OUTPUT); pinMode(BackwardPin, OUTPUT); } |
ForwardPin и BackwardPin настроены как цифровые выходные контакты. Эта конфигурация необходима для управления направлением и скоростью вращения двигателя.
Функция loop() содержит основную логику управления направлением и скоростью вращения двигателя:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
void loop() { if (DirectionFlag) { // Drive motor forward analogWrite(ForwardPin, MaxSpeed); // Set forward motor pin to MaxSpeed delay(ActionTime); // Wait for ActionTime analogWrite(ForwardPin, 0); // Stop motor DirectionFlag = !DirectionFlag; // Toggle direction flag delay(20); // Short delay before changing direction } else { // Drive motor backward analogWrite(BackwardPin, MaxSpeed); // Set backward motor pin to MaxSpeed delay(ActionTime); // Wait for ActionTime analogWrite(BackwardPin, 0); // Stop motor DirectionFlag = !DirectionFlag; // Toggle direction flag delay(20); // Short delay before changing direction } } |
- Движение вперед: Когда DirectionFlag имеет значение true, двигатель вращается вперед с MaxSpeed в течение ActionTime миллисекунд, затем останавливается. Флаг переключается на false, и перед изменением направления есть небольшая задержка.
- Обратное движение: Когда DirectionFlag имеет значение false, мотор вращается назад с MaxSpeed в течение ActionTime миллисекунд, затем останавливается. Флаг переключается на значение true, и перед изменением направления есть небольшая задержка.
Этот код непрерывно меняет направление вращения двигателя с прямого на обратное с указанной продолжительностью и скоростью.
Тестирование работы проекта
После успешной загрузки кода мы можем увидеть ожидаемые результаты.
Выше вы можете увидеть GIF-видео рабочей демонстрации. Как мы и ожидали, двигатель вращается вперед и назад. Вы можете изменить код, чтобы получить более разнообразные результаты. Теперь, я надеюсь, у вас есть представление о том, как соединить модуль драйвера двигателя постоянного тока MX1508 с платой Arduino UNO.
Часто задаваемые вопросы
1) Распиновка микросхемы MX1508?
Схему расположения выводов микросхемы MX1508 можно увидеть ниже.
2) Технические характеристики MX1508?
Как мы уже обсуждали в статье, существуют эквиваленты и клоны, поэтому нам нужно следить за точной микросхемой, расположенной в нашем модуле.
3) Максимальное напряжение MX1508?
Максимальное напряжение MX1508, согласно официальному техническому описанию, составляет 9,6 В. Если на вашем модуле установлен TC1508, то его максимальное напряжение составит 7,2 В.
4) Можно ли использовать MX1508 для управления шаговым двигателем?
Да, конечно, вы можете использовать его для управления шаговыми двигателями. Убедитесь, что это биполярный шаговый двигатель и его напряжение и ток не превышают номинальные значения MX1508.
5) Можно ли контролировать скорость с помощью MX1508?
Вы можете управлять скоростью двигателя постоянного тока, подавая ШИМ-сигнал на входные контакты направления модуля.
6) MX1508 против L298N?
В общем случа, L298N предназначен для приложений с более высокой мощностью, поскольку имеет диапазон напряжения до 46 В и ток 2 А. Благодаря версии с радиатором температура микросхемы легко поддерживается в нужном диапазоне. С другой стороны, MX1508 предназначен для приложений с низкой мощностью, таких как управление небольшими двигателями, игрушечными автомобилями и т. д. В зависимости от модели ИС напряжение варьируется от 2 до 9,6 В, а ток варьируется от 0,8 до 2 А.
Кроме того, управление немного отличается по сравнению друг с другом. В драйвере L298N есть выделенный входной контакт ШИМ для управления скоростью, но в MX1508 сигнал ШИМ может быть подан на контакты управления направлением вращения.
Исходный код программы
Схему проекта и код программы вы также можете скачать по следующей ссылке на github.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// Определить соединения и настройки выводов const int ForwardPin = 6; // Вывод для управления двигателем вперед const int BackwardPin = 5; // Вывод для управления двигателем назад const long ActionTime = 200; // Длительность действия двигателя (миллисекунды) const int MaxSpeed = 110; // Максимальная скорость (0-255) bool DirectionFlag = true; // Флаг направления для управления двигателем void setup() { // Установить выводы управления двигателем как выходы pinMode(ForwardPin, OUTPUT); pinMode(BackwardPin, OUTPUT); } void loop() { if (DirectionFlag) { // Движение двигателя вперед analogWrite(ForwardPin, MaxSpeed); // Установка вывода двигателя вперед на MaxSpeed delay(ActionTime); // Ожидание в течение ActionTime analogWrite(ForwardPin, 0); // Остановка двигателя DirectionFlag = !DirectionFlag; // Переключение флага направления delay(20); // Короткая задержка перед сменой направления } else { // Движение двигателя назад analogWrite(BackwardPin, MaxSpeed); // Установка вывода двигателя назад на MaxSpeed delay(ActionTime); // Ожидание в течение ActionTime analogWrite(BackwardPin, 0); // Остановка двигателя DirectionFlag = !DirectionFlag; // Переключение флага направления delay(20); // Короткая задержка перед сменой направления } } |