UMDK-PWM

Осуществляет настройку ШИМ-сигналов.

Возможно настроить три ШИМ-устройства с разными частотами. Суммарно присутствуют 8 каналов ШИМ: 4 канала на первом устройстве и по 2 канала на втором и третьем.

В пределах одного устройства все каналы всегда работают на одной частоте, при смене частоты для одного из каналов частота всех остальных каналов на этом устройстве также меняется. Скважность устанавливается для каждого канала независимо от остальных.

Есть возможность плавного изменения рабочего цикла и генерации заданного числа импульсов с автоматической остановкой. Одновременное задание плавного пуска и числа импульсов не поддерживается.

Используются следующие GPIO для выходных сигналов:

Команды

Установка параметров ШИМ:

mosquitto_pub -t "devices/lora/NNNNNNNNNNNNNNN/pwm" -m "pin N freq F duty D soft S pulses P"

В параметре «soft» указывается, на какую величину изменяется коэффициент заполнения каждые 10 мс: например, если текущее значение заполнения 10 %, то при приходе команды с soft = 5 и duty = 70 ШИМ увеличит коэффициент заполнения с шагом 5 % за 10*(70-10)/5 = 120 мс. Плавный пуск работает как при увеличении, так и при уменьшении коэффициента заполнения (в т.ч. при уменьшении до 0), но несовместим с генерацией заданного числа импульсов.

Включает ШИМ на ножке DIO6 с частотой 970 Гц и заполнением 91 %

mosquitto_pub -t "devices/lora/NNNNNNNNNNNNNNN/pwm" -m "pin 6 freq 970 duty 91"

Для остановки ШИМ необходимо передать команду с указанием нужной ножки и частоты 0.

mosquitto_pub -t "devices/lora/NNNNNNNNNNNNNNN/pwm" -m "pin 6 freq 0"

Неиспользуемые параметры, равные 0, можно не указывать в команде:

mosquitto_pub -t "devices/lora/NNNNNNNNNNNNNNN/pwm" -m "pin 6"

Сообщения

При успешном выполнении команды будет получено сообщением «Ok»:

devices/lora/NNNNNNNNNNNNNNN/pwm
{
    "data": {
        "msg": "ok"
    },
    "status": {
        "devEUI" : "NNNNNNNNNNNNNNN",
        "rssi" : -16, 
        "temperature" : 30, 
        "battery" : 3300, 
        "date" : "2017-02-21T13:29:22.843900Z"
    }
}

При некорректных параметрах запроса будет получено сообщение «Error»:

devices/lora/NNNNNNNNNNNNNNN/pwm
{
    "data": {
        "msg": "error"
    },
    "status": {
        "devEUI" : "NNNNNNNNNNNNNNN",
        "rssi" : -16, 
        "temperature" : 30, 
        "battery" : 3300, 
        "date" : "2017-02-21T13:29:22.843900Z"
    }
}

Формат пакетов LoRaWAN

Байт Назначение Значение
0 ID модуля 0x0E
1 Команда 0x01
2 Ножка Номер ножки DIOx
3-4 Частота Формат Big Endian; 0 для выключения ШИМ
5 Заполнение 0-100 %
6-7 Число импульсов Формат Big Endian; 0 для непрерывной генерации
8 Плавный старт 0 для отключения плавного старта

Ответ:

Байт Назначение Значение
0 ID модуля 0x0E
1 Команда 0x01
2 Статус 0: команда выполнена
0xFF: команда неверна

Распространение

Модуль распространяется в исходных кодах и может входить в версии прошивок public и commercial.

Исходные коды: