Дистанционный переключатель точечных светильников (ARDUINO UNO)
На кухнях очень часто устанавливают подвесной потолок из пластмассовых панелей или гипсократона. В этом случае, образуется небольшой зазор между основным потолком и подвесным. Это позволяет вмонтировать прямо в подвесной потолок точечные светильники, распределить их равномерно по потолку или как-то сгруппировать.
Самое сложное в этом процессе то, как организовать переключение этих светильников. Обычно их включают параллельно или все или несколькими группами и подключают на двух-трех клавишный выключатель.
Но, хотелось бы, чтобы точечные светильники можно было группировать как угодно. Например, чтобы горели только те, что в районе мойки и кухонного стола...
А еще лучше, если каждый светильник можно будет включать и выключать отдельно от остальных. Но, увы, имеющиеся в продаже системы дистанционного управления позволяют управлять не более чем четырьмя нагрузками.
Здесь описывается дистанционный блок управления для подвесного потолка с десятью точечными светильниками, который позволяет включать и выключать как все светильники сразу, так и каждый в отдельности, позволяя, таким образом включить любые из десяти светильников в любом сочетании.
Устройство выполнено на основе микроконтроллерной платы ARDUINO UNO и инфракрасного пульта типа RC-5 (для старого телевизора «Горизонт»), Такой пульт был выбран потому, что протокол RC-5 применялся в телевизорах выпускавшихся лет 15-25 назад, и в современной аппаратуре используется крайне редко.
Это обеспечивает бесконфликтность между данной системой и имеющейся аппаратурой. К тому же, пульты RC-5 и сейчас имеются в продаже, и стоят очень недорого.
Ну, и еще один важный момент, это то, что у пультов RC-5 каждой кнопке присвоено две команды, одну пульт передает при первом нажатии на эту кнопку, а вторую при повторном нажатии на эту же кнопку.
Это позволяет очень легко программным способом организовать управление каждым точечным светильником одной кнопкой, - раз нажал кнопку, - светильник зажегся, еще раз нажал, - он погас.
Правда есть и один отрицательный момент. Непонятно в каком состоянии пульт находится в каждый момент времени. Поэтому, в некоторых случаях для получения нужного результата требуется наживать кнопку дважды.
Но к этому легко привыкнуть, и если об этом знаешь, это никаких проблем или неудобств не доставляет.
Использование недорогой готовой платы ARDUINO UNO интересно тем, что это готовый модуль, - небольшая печатная плата, на которой расположен микроконтроллер ATMEGA328, а так же вся его «обвязка», необходимая для его работы, включая USB-программатор и стабилизатор напряжения питания.
Принципиальная схема
Принципиальная схема переключателя показана на рис.1. Сигналы для управления лампами светильников снимаются с цифровых портов D4, D5, D6, D7, D8, D9, D10, D11, D12, D13 и поступают на ключи на транзисторах VТ1-VТ10, включающих лампы Н1-Н10 светильников.
Полевые транзисторы должны работать на постоянном токе, поэтому ток на лампы выпрямляется при помощи диодного моста VD11. В результате лампы точечных светильников питаются не переменным, а пульсирующим постоянным током.
Несмотря на это, схема нормально работает и с лампами накаливания, и с КЛЛ, и со многими светодиодными лампами для точечных светильников на 220V.
Правда, встречаются светодиодные лампы, которые и не работают в таком режиме. Все зависит от схемы их драйвера. Поэтому, нужно предварительно проверить работает конкретная светодиодная лампа при включении через мост или нет.
Рис. 1. Принципиальная схема дистанционного переключателя точечных светильников, собрано на ARDUINO UNO.
Хочу заметить, что очень хорошо через мост работают и практически все КЛЛ (компактные люминесцентные лампы), во всяком случае, было проверено восемь ламп КЛЛ разных марок, и все работали.
По всей видимости, хорошо через мост работают те «электронные» (в смысле, с электроникой внутри) лампы, на входе которых имеется диодный мост. То есть, сделанные по схеме: «диодный мост -драйвер - светодиоды». Или по схеме: «диодный мост - генератор - люминесцентная лампа».
А вот светодиодные лампы, выполненные по упрощенным схемам, типа: «гасящий конденсатор -диодный мост - светодиоды», работать в такой схеме не желают.
В конкретно моем случае, в точечных светильниках были светодиодные лампы брэнда «Включай», типа ОРТІ MR16-5W-GU5.3-W. Вот они отлично работали при питании через мост. А вот аналогичные лампы под брэндом «Экономка» питаться через мост «не пожелали».
Потом было проверено еще два десятка разных светодиодных ламп, и не только для точеных светильников, но и обычные с цоколем Е27. Это были лампы брэндов «Включай», «Thomson», «MaxLight», «Philips», «Экономка» и несколько «безымянных». Большинство через мост работали отлично, за исключением лампы «Экономка» и еще двух «безымянных».
Порт D2, используется для приема кодов команд от фотоприемника F1. Система питания построена с использованием готового импульсного блока питания, в основе которого стандартный блок для зарядки сотовых телефонов через USB-порт. Это блок А1. Здесь плата ARDUINO UNO питается через USB-порт напряжением 5V, получаемым от этого блока питания.
Переключатель работает следующим образом. Для того чтобы включить все точечные светильники сразу или выключить их, чтобы были выключены все. из любого состояния используется кнопка «Выкл.» пульта, которая обычно служит для выключения телевизора. Цифровые кнопки от «О» до «9» служат для индивидуального включения и выключения каждого точечного светильника. Например, если нужно включить только светильник Н1, - нажимаем кнопку «1» пульта.
Если её хотим выключить, - еще раз нажимаем кнопку «1» пульта. Точно так же и с другими светильниками. То есть, можем включить или выключить любые светильники.
А вот кнопкой «Выкл» мы можем включить все сразу, либо выключить любое их количество, которое было включено.
Программа для МК
Ниже приведена программа на языке С+ +, которую нужно записать в контроллер платы ARDUINO UNO при помощи программного обеспечения для ARDUINO, у меня версия Arduino 1.6.11.
Данная программа требует загрузки библиотеки IRremote.h которая нужна для распознавания сигнала пульта ДУ. Эта библиотека есть в стандартном наборе программного обеспечения для ARDUINO, у меня версия Arduino 1.6.11.
Далее идет назначение портов. В строке:
IRrecv іггесV(2);
входным назначен порт 02. На него подается сигнал с выхода интегрального фотоприемника. А в строках:
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode (6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
выходными назначены порты D4-D13.
Как уже сказано выше, особенность пульта RC-5 в том, что его каждой команде соответствует два кода. Один при первом нажатии кнопки, и второй при втором её же нажатии. И так, если одну кнопку все время нажимать, то код будет, то один то другой.
Поэтому, одну и ту же кнопку можно использовать для подачи двух разных, даже противоположных по смыслу команд. Это здесь и используется, чтобы одной и той же кнопкой можно было включать и выключать, - если выключено она включит, если включено, она выключит.
Но это имеет и негативный аспект, - иногда для выполнения команды требуется двухкратное нажатие кнопки. Например, если с первого нажатия кнопки «1» светильник Н1 не включился, нужно нажать кнопку «1» еще раз.
В программе после «case Ох» записаны коды команд, которые формируется при нажатии соответствующей кнопки пульта RC-5. В строках:
case 0ХІ7В4А228:
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
задано включение всех светильников при первом нажатии кнопки «Выкл.».
В строках:
case 0x530DB67C:
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite( 13, LOW);
задано выключение всех светильников, которые были включены до того, при втором нажатии кнопки «Выкл.». Таким образом, код первого нажатия кнопки «Выкл.» 530DB67C, а код второго нажатия этой же кнопки 17В4А228.
Аналогично и с остальными кнопками, используемыми в данной системе, -каждая кнопка из числа 0 - 9 управляет своей лампой, при каждом нажатии меняя команду на противоположную, например, в строках:
case 0X55EF31B6:
digitalWrite(4, HIGH);
break;
case 0xClD0902A:
digitalWrite(4, LOW);
задается управление кнопкой «0» десятым светильником. При первом нажатии кнопки «0» она дает код 55EF31B6, который приводит к включению лампы НЮ, а при втором нажатии кнопка «0» дает код C1D0902A, который приводит к выключению H10.
Аналогичным образом осуществляется и управление всеми остальными светильниками. Это устройство может работать только с пультом RC-5. Программа написана именно под такой пульт.
Транзисторы BUZ90 можно заменить на IRF840, КП707В2 или другие аналогичные. Мост GBU4J можно заменить любым другим мостом на напряжение не ниже 400V и ток не ниже ЗА. Либо собрать его на соответствующих диодах. Диоды 1N4148 можно заменить на КД522, КД521.
Вместо интегрального фотоприемника TSOP4838 можно применить практически любой интегральный фотоприемник для систем дистанционного управления на ИК-лучах, включив его соответственно типовой схеме.
Блок питания А1 можно заменить любым импульсным блоком для зарядки сотовых телефонов через USB-порт. Если имеется блок питания с выходным постоянным напряжением от 7 до 12V, то можно использовать его, подав напряжение с него на круглый разъем для подключения источника питания, имеющийся на плате ARDUINO UNO.
Если Вы еще не знакомы с ARDUINO UNO, почитайте статью Л.1, там написано все подробно на примере переключателя для ёлочной гирлянды. Описывается установка программы Arduino 1.6.11, и дана пошаговая инструкция как работать с ней.
Каравкин В. РК-03-2020.
Литература: 1. Каравкин В. - Ёлочная гирлянда на ARDUINO, как средство от боязни микроконтроллеров. HR-11-2016.