Панель управления шаговым двигателем на Arduino (ESP32).
Достаточно часто делаю проекты с использованием шаговых движителей. Панель управления делаю с использованием сенсорного дисплея. Благо, дисплеи DWIN стоят недорого. Например, семи дюймовый дисплей можно купить с ёмкостным сенсором от 3000 рублей, а с резистивным от 2500 рублей. Так как дисплей достаточно большого размера стоит приемлемых денег, решил сделать панель управления одним шаговым двигателем. Возможно, кому-то пригодится или будет основой для реализации своего проекта.
Панель управления шаговым двигателем на основе дисплея DWIN.
Для проекта буду использовать COF дисплей 4.3 дюйма. Данный дисплей достаточно удобно монтировать в корпус благодаря гибкой плате. Но, несмотря на это, данную прошивку можно использовать и для других дисплеев с разрешением 800 на 480 пикселей.
А это дисплеи 5 и 7 дюймов. Но будьте внимательны, некоторые дисплеи 5 и 7 дюймов имеют другое разрешение. Вот пример нескольких моделей дисплея, которые можно использовать в данном проекте:
dmg80480c050 _ 03wtc
dmg80480c070 _ 03wtc
DMG80480T040_01WTC
DMG80480F043_01WTC
DMG80480T03501WTC
Я распечатал вот такой корпус, в который отлично устанавливается мой дисплей. Если вы планируете повторить проект, то скачать 3D модель для печати корпуса можете внизу статьи в разделе «файлы для скачивания».
Если у вас нет опыта работы с дисплеем DWIN, рекомендую прочитать следующие статьи:
Прошивка для дисплея готова, и вам делать ничего не нужно. Достаточно скачать её внизу статьи в разделе «файлы для скачивания», скопировать на карту памяти и загрузить на свой дисплей. Как подобрать карту памяти и прошить дисплей DWIN, рассказывал вот в этой статье.
Все используемые элементы создания интерфейса для дисплея имеют описание на русском языке, и найти вы их можете вот в этом разделе сайта.
Для ввода цифровых значений использовал всплывающую клавиатуру. Её создать можно с помощью инструмента «Data Input». Урока по использованию данного инструмента на момент выхода этой статьи нет (возможно уже выложил, посмотрите в разделе «Уроки»), но есть описание на русском языке.
Для того чтобы оживить клавиши на клавиатуре ввода, я использовал инструмент «Basic Touch». Описание данного инструмента на русском языке вы можете найти в следующей статье.
Прошивку для дисплея вы можете скачать внизу статьи в разделе «Файлы для скачивания».
Схема подключения дисплея DWIN, драйвера A4988 и двигателя Nema 17 к Arduino NANO.
Несмотря на то что у нас достаточно большой функционал в плане управления шаговым двигателем, схема подключения будет достаточно простая.
Как видим из схемы, нам нужно 2 источника питания на 5 и 12 В.
Библиотека для работы с шаговым двигателем.
Для работы с шаговыми двигателями я использую различные библиотеки «AccelStepper» для работы с Arduino. В небольших проектах пишу свои функции без использования библиотек. Для ESP32 библиотека «AccelStepper» не подходит.
Поэтому в этом проекте решил использовать библиотеку, которую можно использовать и для Arduino, и для ESP32. При тестировании неплохо показала себя библиотека от Алекса Гайвера «GyverStepper», поэтому в проекте будем использовать её. По ней есть полное описание с примерами на русском языке, которые вы можете посмотреть на сайте разработчика alexgyver.ru.
Библиотеку можно установить через менеджер библиотек или скачать с официального сайта разработчика. Также прикреплю библиотеку внизу статьи в разделе «Файлы для скачивания».
Описание кода Панели управления шаговым двигателем.
Если вы используете двигатель с драйверами step-dir, то в коде менять ничего не нужно. Возможно, только отключить режим отладки «#define DEBUG 0».
Если вы планируете использовать драйвер с 4 пинами, то вам нужно изменить подключение двигателя на следующее.
Также возможно использовать пин «EN» для отключения питания двигателя. Это поможет снизить нагрев и потребление электроэнергии.
Для этого в документации к библиотеке есть подробное описание, как это сделать.
Остальные параметры изменяем по мере необходимости.
Всё, что касается работы с дисплеем, вынес на вкладку «display». Также написал 3 функции:
1 отправляет байтовую информацию на дисплей;
2. отправляет целочисленные значения типа int на дисплей;
3. получает с дисплея целочисленные значения типа int.
Для работы с шаговым двигателем написал 2 функции.
Корпус под дисплей COF DWIN.
Для удобства тестирования была разработана простая 3D модель для печати на принтере. Скачать модель для печати в .SLT формате можно внизу статьи в разделе «файлы для скачивания».
Дисплей устанавливается в данный корпус достаточно легко. Плату можно приклеить на двухсторонний скотч на внутреннюю стенку корпуса. К сожалению, данная модель сделана без задней крышки, но, возможно, к следующему проекту разработаем более интересный и функциональный корпус.
Пишите ваши предложения.
Интересует ли вас корпуса для дисплеев DWIN?
Подведём итог.
Планировал сделать горячую смену типа подключаемого двигателя с драйвером step-dir на 4-пиновый. Но, к сожалению, библиотека не позволяет реализовать данный функционал, поэтому в дизайне есть переключатель двигателей, но он не работает. Поменять тип подключаемого драйвера можно вручную, о чём рассказывал ранее.
Несмотря на некоторые недоработки, реализовать панель управления шаговым двигателем получилось с написанием минимального объёма кода. Вы можете дополнить эти базовые функции или изменить данный пример под свои задачи.
Комментарии