Управление реле с помощью сенсорного дисплея DWIN и Arduino, ESP32.
Это уже не первый проект про управление реле с помощью сенсорного дисплея. Ранее я рассказывал про управление 16 реле с помощью дисплея Nextion. Сегодня рассмотрим управление реле с помощью более дешёвого, но не менее функционального дисплея компании DWIN. Сделаю два варианта прошивки: первый для Arduino UNO (NANO) и второй для ESP32 (Arduino MEGA). Зачем и почему 2 варианта кода сейчас расскажу.
Подготовка дисплея DWIN для прошивки.
Первое, что нужно сделать — это уделить внимание малозаметной перемычке. Она есть на большинстве дисплеев и отвечает за режим работы serial порта.
Если перемычка замкнута/спаяна - режим TTL/UART. Если перемычка разъединена - режим RS232.С завода дисплеи идут без перемычки, поэтому её нужно замкнуть, можно просто спаять или припаять smd резистор номиналом 0 Ом.
Затем нужно подготовить карту памяти. Про этот этап у меня есть отдельная статья, в которой всё подробно расписано.
После этого можно приступить к прошивке дисплея.
Прошивка дисплея компании DWIN.
Для загрузки примера нужна прошивка, которую можно скачать внизу статьи в разделе «Файлы для скачивания». Пример сделал для дисплеев разрешением 800x480 px. Соответственно, он подойдёт для дисплеев 5 и 7 дюймов с данным разрешением экрана, но не ко всем. Смотрите разрешение своего дисплея в даташите к нему. Если разрешение дисплея больше, чем 800x480 px, то по краям вы увидите чёрные полосы.
В архиве проекта нужно скопировать папку DWIN_SET на карту памяти. Файлы должны располагаться на карте по пути: «/DWIN_SET/».
Вставляем SD карту в HMI модуль. Подайте питание.
Вы увидите синий экран с надписями. Необходимо дождаться пока не появится строчка с надписью «SD Card Process... END!».
Если загрузка прошла успешно, вы увидите следующую информацию. Если что-то пошло не так, то информация на дисплее будет следующая.
В этом случае рекомендую вернуться к статье про подготовку SD карты.
Прошивка для дисплея DWIN.
Если вы не планируете изменять количество управляемых реле, то можете смело пропустить данный раздел.
Для прошивки нам нужно подготовить необходимые фоны и иконки, которые можно скачать внизу статьи в разделе «Файлы для скачивания».
Подробнее о подготовке к работе дисплея рассказывать не буду, так как по данному проекту сделаю уроки программирования дисплея DWIN. Расскажу только основные моменты, которые помогут расширить или уменьшить количество управляемых реле. Максимальное количество реле, которыми можно управлять - 16.
Для создания элемента управления одним реле буду использовать инструмент «Bit icon».
Его нужно настроить следующим образом.
Установить бит для управления и выбирать иконки для двух состояний. Для остальных элементов управления делаем по аналогии и увеличиваем только бит управления.
Поверх иконки устанавливаем элемент обработки нажатия на тачскрин «Incremental Adjustment».
Производим следующие настройки. Необходимо обратить внимание на параметр «Bit».
Его нужно изменить таким образом, чтобы он соответствовал биту, который выставили в элементе «Bit icon». Для первого элемента это 0, для второго 1 и т.д.
Вот так будут выглядеть элементы управления реле в редакторе «DWIN DGUS».
Для кнопок включения и выключения всех реле буду использовать инструмент «Return Key code».
Тут нужно обратить внимание на следующие параметры.
Основной параметр — это обнуление и заполнение всех бит. Соответственно, для выключения или включения всех реле.
Если Вы считаете, что всё сложно и непонятно, не расстраивайтесь! Я сниму блок уроков, в которых подробно расскажу про каждый элемент и объясню, почему мы используем данные параметры.
Схема подключения Arduino модуля 8 реле и дисплея DWIN.
Подключим к Arduino модуль 8 реле и дисплей DWIN. Реле можно подключить и к другим пинам, этот параметр настраивается в прошивке.
Схема подключения ESP32 модуля 8 реле и дисплея DWIN.
В данном случае подключаем ко второму UART микроконтроллера, что позволяет достаточно комфортно производить отладку. Программный UART, к сожалению, у меня не заработал. Возможно, я что-то упустил. Если у вас есть решение, пишите в комментарии.
По аналогии ко второму UART подключение осуществляется у Arduino MEGA.
Код Arduino UNO (NANO) для управления 8 – 16 реле с сенсорного дисплея DWIN.
В коде можно поменять всего несколько параметров или оставить без изменений.
DEBAG - Отвечает за вывод в монитор порта отладочной информации. 1 - вкл.0 - выкл.
Level – отвечает за тип подключённого реле. 1 - реле высокого уровня, 0 - реле низкого уровня.
relays_num – Количество подключённых реле. Максимум 16.
relays[relays_num] – массив пинов, к которым подклеены реле.
Если вам нужно увеличить количество подключённых реле, для этого необходимо поменять переменную relays_num и дописать пины дополнительно подключённых реле в массиве relays[relays_num]. Так же для дисплея нужно будет добавить кнопки управления, увеличив бит последующих кнопок.
Код Arduino MEGA и ESP32 для управления 8 – 16 реле с сенсорного дисплея DWIN.
Данный код практически ничем не отличается кроме того, что для подключения дисплея используется Serial2, а для отладки Serial.
Коды для ESP32 и Arduino MEGA имеют небольшие отличия, поэтому к статье я прикреплю для каждой платы свои файлы.
Подведём итог.
Постарался сделать максимально универсальный код, чтобы его можно было использовать с разными платами: Arduino UNO, NANO, MAGA, ESP32, ESP8266. Кроме этого, реализовал поддержку реле разного типа: высокоуровневого и низкоуровневого реле.
Комментарии