Модуль выполнен в корпусе телефонной розетки и имеет 2 канала управления мощностью нагрузки переменного тока 220в.
Симисторы в этом модуле без радиатора потянут ток нагрузки не более 2а, ну а с радиатором до 16а.
Также в модуле предусмотрена световая индикация включенного канала. Светодиод загорается при каждом полупериоде когда на нагрузку подано напряжение. Модуль предназначен для подключения к магистрали ModBus контакты (А,В) и питается от постоянного напряжения 12в контакты (+12в, GND). Высоковольтная часть модудя запитана от сети 220в через двухконтактный винтовой разъем (220v). Для подключения нагрузки тоже используются такие же двухконтактные винтовые разъемы (OUT1, OUT2)
В данном датчике используется следующее адресное пространство ModBus
Регистры флагов 1 - флаг готовности датчика ( 1 - готов, 0 - не готов) - информативный для управляющей программы - писать туда не надо 3 - регистр сохранения настроек в EEPROM ( 1 - сохранить настройки, 0 - сохранять не надо) 4 - регистр дискретизации управления ( 0 - каждый полупериод, 1 - каждый период, по умолчанию 0)
Регистры хранения 40001 - регистр ID Modbus устройства ( от 1 до 247, по умолчанию 247) 40002 - мощность на 1 канал (от 0 до 255, по умолчанию 0) 0 - выход выключен, 255 - 100% мощность 40003 - мощность на 2 канал (от 0 до 255, по умолчанию 0) 0 - выход выключен, 255 - 100% мощность
Поддерживаемые датчиком функции протокола Modbus Для каждого типа данных в протоколе используются определенные функции.
3.3.1 Чтение данных 1 (0x01) — чтение значений из нескольких регистров флагов (Read Coil Status). 2 (0x02) — чтение значений из нескольких дискретных входов (Read Discrete Inputs). - данную функцию датчик поддерживает, но не имеет соответствующих регистров. 3 (0x03) — чтение значений из нескольких регистров хранения (Read Holding Registers). 4 (0x04) — чтение значений из нескольких регистров ввода (Read Input Registers).
3.3.2 Запись данных 5 (0x05) — запись значения одного флага (Force Single Coil). 6 (0x06) — запись значения в один регистр хранения (Preset Single Register).
Плата выполнена на одностороннем стеклотекстолите. Принципиальная схема
Схемотехника диммера. В целях совместимости с проектом Arduino для реализации датчика был выбран процессор AtMega 8А тактированный на частоту 16мГц. В ардуино цепи модуля подключаются к следуюшим контактам платы: D0 - Rx D1 - Tx D5 - светодиод 1-го канала D6 - светодиод 2-го канала D9 - выход 1-го канала D10 - выход 2-го канала А5 - пин разрешения передачи по UART
Источник питания диммера. Датчик питается напряжением 12в (Vin). Так как процессор и остальные схемы датчика требуют питания 5в, то в схему включен маломощный интегральный регулятор VR1 78L05 на который напряжение подается через защитный 1А диод Шоттки D1.
Выходные цепи. Выходной сигнал с ножка 13 (D9) МК через токоограничивающий резистор (R6,R12) подается на cимисторный оптрон с детектором фазы moc3041. Симистор (VD1,VD2) управляется через резистор (R7,R9). Паралельно симистору включена бустерная цепь (R5, C5;R11, C8).
Схема преобразователя уровня RS485 для связи по протоколу ModBus. Преобразователь уровня построен на микросхеме IC1 (max485), которая подключена к выводам UART микропроцесоора IC2. Сигнал RX ножка 30 (D0) подтяyт к 5в резистором R2. Направление передачи задает МК ножкой 28 подтянутой к нулю резистором R4. Для согласования линии RS485 служит терминальный резистор R3. Перемычка Jmp1 устанавливается только на последнем устройстве в линии RS485 для предотвращения помех переотражения сигнала.
Индикаторы
Индикатор первого канала LED1 подключен к ножке 9 МК (PD5) через токоограничивающий резистор R8. Индикатор второго канала LED2 подключен к ножке 10 МК (PD6) через токоограничивающий резистор R10. При записи в регистры управления мощностью нагрузки (40002,40003) отличного от 0 значения индикаторы начинают вспихивать во включенные полупериоды.
Системные цепи. Цепь сброса микроконтроллера состоит из R1 и S1. Цепь питания аналоговой части микропроцессора L1 и С9. Разъем ICSP для программирования микроконтроллера.
Если датчик собирается на плате Arduino, то на время программирования через USB необходимо отключить цепи RS485 от ножек TX и RX , которые будут мешать процессу.
Работа диммера
Для регулирования мощности в данном модуле применен алгоритм Брезенхема. "Алгоритм Брезенхэма (назван в честь автора этого алгоритма, Джека Е. Брезенхэма) - алгоритм, имеющий очень широкое применение. Этот алгоритм позволяет определеить оптимальное равное распределение (отношение) элементов можнества M к элементам множеству Z". По этому методу переключение силового симистора происходит только при переходе полуволны сетевого напряжения через 0 в отличие от фазового регулирования при котором создаются шумы в радиочастотах средних и длинных волн а так же очень сильно портится синусоида сети. Суть метода в открывании симистора на весь полупериод синусоиды единоразово а потом 99 полупериодов держать закрытым -результат 1% мощности…. Лампочка будет «вспыхивать» каждую секунду еле-красным накалом, мотор будет получать лёгкий толчек а тен будет немного теплым. При мощности скажем в 50% каждый первый полупериод симистор будет открываться а каждяй второй закрыт. Лампочка будет моргать как через диод мотор будет крутиться как на 120 вольтах а тен будет работать в пол накала… При этом ввиду включения симистора в моменты перехода через ноль — исключены все шумы и помехи и вообще какие-либо влияния на питающую цепь. Такой регулятор не очень подходит для работы с лампами накаливания, так как у него относительно низкая частота коммутации нагрузки, что приведет к значительному мерцанию. Нужно отметить, что в случае управления мощной нагрузкой коммутация отдельных полупериодов может оказаться нежелательной, так как это приводит к появлению постоянной составляющей потребляемого от сети тока. Такой режим является нежелательным для силовых трансформаторов. В таком случае необходимо переходить к делению по целым периодам. Для этого в регистр 4 modbus записывается 1 и модуль перекдючается в этот режим.
При включении датчика из долговременной памяти EEPROM считывается адрес в системе и записываются в регистр хранения ModBus (40001). Если в EEPROM еще ничего не занесено, что бывает сразу после заливки прошивки. В EEPROM и соответствующий ей регистр ModBus (40001) записываются адрес 247 После этого управление передается ModBus,. Для управления каналами модуля по ModBus посылается команда записи в регистры (40002,40003) .
Настройка диммера.
Посылая команду записи в регистр 40001 со значением от 1 до 247, можно сменить адрес датчика в системе. Все изменения переписываются в долговременную память только по команде записи 1 в флаговый регистр с адресом 3
|