Перейти к содержимому

Содержание | Далее: Быстрый старт →

DimmerLink — Документация пользователя

Контроллер AC-диммера для управления яркостью ламп через TRIAC. Подключается к вашему проекту (Arduino, ESP32, Raspberry Pi и др.) и позволяет управлять AC-диммерами простыми командами.

diagram

Работать с DimmerLink — просто.




Содержание

Раздел Описание
Быстрый старт Начните здесь — минимальный пример за 5 минут
Подключение оборудования Схемы подключения для популярных плат
Интерфейс UART Команды и примеры для UART
Интерфейс I2C Регистры и примеры для I2C
Одноплатные компьютеры Raspberry Pi, Orange Pi, Banana Pi
Расширенное использование USB-UART, LoRa, GSM, Bluetooth
FAQ и устранение неполадок Частые вопросы и решения

DimmerLink




Основные возможности

БЕЗ МЕРЦАНИЯ — Выделенный Cortex-M+ обрабатывает все критичные тайминги. Никаких программных задержек, конфликтов прерываний и мерцания.

НЕ ТРЕБУЕТ БИБЛИОТЕК — Отправляйте простые команды из 3–4 байт по UART или I2C. Работает с любым языком программирования. Буквально 5 строк кода.

УНИВЕРСАЛЬНАЯ СОВМЕСТИМОСТЬ — Arduino, ESP32, ESP8266, Raspberry Pi, STM32, любой микроконтроллер с UART/I2C. Поддержка логических уровней 1.8V, 3.3V, 5V.

УПРАВЛЕНИЕ ЯРКОСТЬЮ — Диапазон 0–100%

КРИВЫЕ ДИММИРОВАНИЯ — Линейная, RMS (для ламп накаливания), логарифмическая. Автоопределение частоты сети 50/60 Гц.

ОПРЕДЕЛЕНИЕ ЧАСТОТЫ СЕТИ — Автоматическое определение частоты сети (50/60 Гц)

ДВОЙНОЙ ИНТЕРФЕЙС — UART (115200 8N1) или I2C. Переключение командой в любой момент.

ULTRA-COMPACT — Only 18×12mm. Standard 0.1" pins. Fits in any enclosure.

PLUG & PLAY — Подключите, подайте питание, отправьте команду. Работающий диммер за 5 минут.




Какую проблему мы решаем

Каждый мейкер знает эту боль: подключаешь библиотеку AC-диммера к проекту — и тут же лампы начинают мерцать, тайминги сбиваются, а отладка конфликтов прерываний отнимает часы. DimmerLink полностью устраняет эту проблему, перенося все критичные по времени операции на выделенный микроконтроллер Cortex-M+.



Принцип работы

Подключите DimmerLink между вашим контроллером (Arduino, ESP32, Raspberry Pi или любым микроконтроллером) и модулем AC-диммера. Отправьте 3-байтовую команду вроде SET 50% по UART или запишите значение в регистр I2C. Контроллер выполняет детектирование перехода через ноль, рассчитывает фазовый угол и управляет TRIAC с микросекундной точностью. Без библиотек. Без прерываний. Без конфликтов с вашим кодом.

Также можно подключить модули дистанционной передачи — LoRa, GSM/GPRS, Bluetooth или WiFi-мосты, или просто подключиться к ПК через USB-UART модули (CH340, CP2102/CP2104). Промышленные модули RS-232. Код не нужен — только команды через терминал.




Какой интерфейс выбрать?

Критерий UART I2C
Простота подключения 2 провода + питание 2 провода + питание
Скорость 115200 бод 100 кГц
Несколько устройств Нет Да (разные адреса)
Работа с мостами Да (USB-UART, WiFi, LoRa) Ограниченно
Рекомендация Для удалённого управления Для локального управления

💡 Совет: Для начинающих рекомендуем I2C — код проще, структура понятнее.




Совместимость

DimmerLink поддерживает логические уровни 1.8V, 3.3V и 5V — прямое подключение без преобразователей уровня!

Платформа UART I2C Логический уровень
Arduino Uno/Nano 5V ✓
Arduino Mega 5V ✓
ESP8266 3.3V ✓
ESP32 3.3V ✓
STM32 (Blue Pill) 3.3V ✓
Raspberry Pi Pico 3.3V ✓
Raspberry Pi 3/4/5 3.3V ✓
Orange Pi 3.3V ✓
Banana Pi 3.3V ✓
ATtiny, nRF52, MSP430 1.8V ✓

Это лишь базовый список — DimmerLink работает с любым микроконтроллером, у которого есть UART или I2C!




Быстрый пример

Arduino + I2C — установить яркость 50%:

cpp
#include 

void setup() {
    Wire.begin();

    // Set brightness to 50%
    Wire.beginTransmission(0x50);
    Wire.write(0x10);  // Brightness register
    Wire.write(50);    // 50%
    Wire.endTransmission();
}

void loop() {}

Python + UART:

python
import serial

ser = serial.Serial('/dev/ttyUSB0', 115200)
ser.write(bytes([0x02, 0x53, 0x00, 50]))  # SET dimmer 0 to 50%
response = ser.read(1)
print("OK" if response[0] == 0 else "Error")

Пример работы через терминал:

python
1. Port → select your COM port
2. Baud: 115200
3. Send → "Send Numbers" tab
4. Enter: 02 53 00 32 or 0x02 0x53 0x00 0x32 (HEX 32 is 50 in decimal)
5. Click "Send Numbers"



Примеры кода

Готовые примеры находятся в папке examples/ :

python
examples/
├── arduino/
│   ├── uart_basic.ino
│   └── i2c_basic.ino
├── python/
│   ├── uart_example.py
│   └── i2c_example.py
└── micropython/
    ├── uart_example.py
    └── i2c_example.py



Поддержка


Documentation Version: 1.0
Date: 2026-01

Содержание | Далее: Быстрый старт →