Переключатель аудиовходов с управлением ИК-лучами и цифровой индикацией (ARDUINO UNO)
Это устройство предназначено для переключения восьми стереофонических аудиовходов при помощи пульта дистанционного управления стандарта RC-5.
Такой пульт был выбран потому, что протокол RC-5 применялся в телевизорах выпускавшихся лет 15-25 назад, и в современной аппаратуре используется редко.
Это обеспечивает бесконфликтность между данным устройством и имеющейся аппаратурой. К тому же. пульты RC-5 и сейчас имеются в продаже, и стоят очень недорого.
Для переключения восьми входов используются цифровые кнопки пульта от «1» до «8». Номер включенного входа отображается на семисегментном светодиодном индикаторе.
Если пультом не пользоваться, то, по умолчанию, после подачи питания будет включен первый вход, а цифровой индикатор вообще не будет светиться. Цифровой индикатор включается только после приема команды пульта.
Устройство состоит из двух блоков, -блока управления, состоящего из платы ARDUINO UNO, светодиодного цифрового индикатора и фотоприемника сигналов управления. И блока переключения, состоящего из двух мультиплексоров К561КП2, и аудио разъемов типа RCA.
Принципиальная схема
Схема блока управления показана на рисунке 1. Для индикации номера входа используется одноцифровой семисегментный светодиодный индикатор типа АЛC3ЗЗА, с общим катодом.
Аноды его сегментов включаются логическими единицами с портов D7-D13 платы ARDUINO UNO. К портам аноды светодиодного индикатора подключены через токоограничительные резисторы R1-R7, они уравнивают яркость свечения сегментов и разгружают выходы платы.
Рис. 1. Схема блока управления для переключателя аудиовходов на ARDUINO UNO.
Для управления переключателем входов на основе двух мультиплексоров К561КП2 используется трехразрядный двоичный код, образуемый логическими уровнями на портах D4-D6. Порт D2, используется для приема кодов команд от фотоприемника F1.
Схема блока переключения показана на рисунке 2. Микросхемы К561КП2 представляют собой набор из восьми двунаправленных каналов, способных работать как с цифровыми, так и с аналоговыми сигналами.
С одной стороны каналы соединены вместе на один общий выход, - вывод 3. Всегда открыт только один канал. То, какой именно канал зависит от его номера, заданного трехразрядным двоичным кодом на входах управления (выводы 9,10,11 ИМС К561КП2).
Рис. 2. Схема блока переключения аудиовходов на К561КП2 с управлением от Arduino UNO.
Особенность микросхем К561КП2 в том, что напряжение, проходящее через каналы, не должно быть выше напряжения питания микросхемы или отрицательным.
Поэтому, чтобы обеспечить проход аудиосигналов без искажений, на каналы подано напряжение смещения, равное примерно половине напряжения питания микросхемы, от делителя на резисторах R1-R2 и R3-R4.
Программа
Ниже приведена программа на языке C++, которую нужно записать в контроллер платы ARDUINO UNO при помощи программного обеспечения для ARDUINO, у меня версия Arduino 1.6.11.
Данная программа требует загрузки библиотеки IRremote.h которая нужна для распознавания сигнала пульта ДУ. Эта библиотека есть в стандартном наборе программного обеспечения для ARDUINO, у меня версия Arduino 1.6.11.
Далее идет назначение портов:
IRrecv irrecv(2);
входным назначен порт D2. На него подается сигнал с выхода интегрального фотоприемника.
А в строках:
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.
В программе после «case Ох» записаны коды команд, которые формируется при нажатии соответствующей кнопки пульта RC-5. Далее указывается, что при приеме этой команды должно произойти, то есть, какой должен быть расклад единиц и нулей по этим портам. Вот, например, при нажатии кнопки «1» :
case 0x56EF334B:
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite (8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
break;
на портах D4, D5, D6 устанавливаются низкие логические уровни, что приводит к тому, что на входы управления мультиплексоров приходит код «000» и открывается самый первый (нулевой) канал, обозначенный здесь как «Вход 1».
Кроме того, на портах D7-D13 устанавливается такая комбинация логических уровней, что подключенный к ним семисегментный светодиодный цифровой индикатор показывает цифру «1», обозначая этим, что включен первый вход.
Далее все аналогично. Но, хочу заметить важную деталь, - пульт RC-5 дает по два кода на каждую кнопку. То есть, если нажимать одну и ту же кнопку несколько раз, то код команды будет то одним, то другим.
Поэтому, чтобы не происходило ситуаций, когда переключение входов требует двухкратного нажатия кнопки пульта, здесь для каждой кнопки записано по две команды, с одинаковыми результатами. То есть, например, для первой кнопки есть еще:
case 0xC2D091BF:
digitalWrite(4, LOW);
digitalWrite (5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite (13, LOW);
break;
потому что кнопке «1» соответствует два чередующихся кода, - 56EF334B и C2D091BF. Соответственно, далее записано по два кода и для всех остальных семи кнопок пульта, используемых в данном устройстве.
Детали
Вместо интегрального фотоприемника TSOP4838 можно применить практически любой интегральный фотоприемник для систем дистанционного управления на ИК-лучах, включив его соответственно типовой схеме.
Светодиодный цифровой индикатор АЛC3ЗЗА можно заменить любым светодиодным одноразрядный семисегментным цифровым индикатором с общим катодом.
Это устройство может работать только с пультом RC-5. Программа написана именно под такой пульт. Впрочем, если нужно, можно переделать программу под любой другой пульт.
Для этого нужно будет в программе заменить коды пульта RC-5 на коды другого конкретного пульта. Определить коды другого пульта можно при помощи Монитора порта, как это сделать подробно описано в статье автора «Приставка DVB-T2 управляет телевизором при помощи ARDUINO UNO» (1).
Каравкин В. РК-03-2020.
Литература: 1. Каравкин В. - Приставка DVB-T2 управляет телевизором при помощи ARDUINO UNO. РК-02-2020.