Аппаратная реализация.
На рисунке показана схема ШИМ-контроллера.

В его состав входят:
- Модуль с микроконтроллером STM32F103;
- Радиомодуль JDY-40;
- Датчик тока на микросхеме ACS712ELCTR-05A-T;
- ШИМ-драйвер IR2101S для управления MOSFET транзистором;
- MOSFET n-канальный транзистор, я использую SUM90N;
- Линейные стабилизаторы тока L78M12CDT и L78M05CDT;
- Выключатель для управления (см. ниже);
- AC-DC преобразователь на 24 В или соответствующий напряжению светодиодной ленте (СЛ) (на схеме не показан).

ШИМ-контроллер (ШК) плавно регулирует яркость свечения светодиодов в ленте (с частотой ШИМ — 1,1 кГц), датчик тока позволяет программе ШК ограничивать максимальный ток на СЛ (в пределах максимального тока датчика 5 А).
Кроме того к ШК можно подсоединить выключатель, который позволит включать/выключать СЛ. Яркость включаемой СЛ задается заранее в параметрах ШК. Кроме того, для дистанционного регулирования яркостью СЛ мной был разработан 4-х канальный механический регулятор освещением, его описание представлено здесь.
Параметры ШК доступны для просмотра и изменения на ПК через обмен данными по радиоканалу с использованием MCT-протокола. Обмен данными между ПК и ШК по MCT-протоколу также позволяет встраивать прибор в различные системы сбора данных. Как это сделать описано здесь.
Для связи ШК с ПК используется модуль JDY-40 и USB-UART адаптер. Радиомодули в приборе и адаптере ПК настраиваются идентично, скорость передачи данных по UART 19200 бод. С тем, как настроить модули JDY-40 при помощи программы настройки, можно познакомиться здесь.

Программная реализация устройства.
Проект программы для ШК, создан в среде STM32 Cube MX для IDE Kiel. Проект разрабатывался под MCT-протокол. Более подробно с документацией на протокол можно познакомиться здесь. В проект программы, после его создания в среде Cube MX (после настройки периферии и компилирования), мной добавлены файлы:
- Для реализации MCT-протокола: conf_init.h, mk_conf_tree.h, mk_conf_tree.c;
- Основные рабочие файлы реализации алгоритма управления: system.c и control.c. В этих файлах добавлены функции поддержки MCT-протокола: System_prop, System_get, System_set в файл system.c и Control_prop, Control_get, Control_set в файл control.c. В файл uart.c добавлены функции поддержки обмена данными это MKBUS_rx и MKBUS_send .
- Также добавлены файлы setup.c и setup.h, в которые даны функции чтения и записи flash-памяти микроконтроллера. В функции SETUP_Load этого файла задаются начальные значения основных параметров (таких как серийный номер устройства и т.д.). Значения этих параметров можно изменить через дерево конфигурации на ПК, и пересохранить во flash-памяти микроконтроллера.
- По умолчанию серийный номер ШИМ-контроллера – 4200. При необходимости его можно изменить при помощи MCT-конфигуратора для ПК.
Более подробно файловая структура поддержки MCT-протокола описана в статье.
Управление прибором при помощи дерева конфигурации на ПК.
После того, как программа скомпилирована и зашита в память микроконтроллера, можно попробовать управлять устройством при помощи MCT-конфигуратора. Со стороны ПК должен быть подключен USB-UART адаптер с модулем JDY-40. На скриншоте показан вид дерева конфигурации (ДК), выгруженного из памяти микроконтроллера ШИМ-контроллера. Описание работы с деревом конфигурации на ПК показано здесь. Как встроить устройства в систему сбора данных, можно познакомиться здесь. Проект ШИМ-контроллера я собрал на диске.

