Переключатель входов для телевизора на Arduino UNO


Схема самодельного переключателя четырех входов для телевизора на Arduino UNO, управляется с пульта дистанционного управления. Современные телевизоры имеют несколько АV входов, цифровые тюнеры, и вообще...

Но на дачах у нас обычно старые телевизоры, кинескопные, такие что не будут соблазном для вора. Вот у меня, например, на даче старенький «Витязь 54ТЦ-601.

У него всего один низкочастотный вход, выведенный на СКАРТ. Но теперь в связи с переходом на цифровое ТВ нужно подключать DVB-T2 приставку, именно к НЧ входам.

Да кроме неё есть и другие «претенденты» на НЧ-вход, - игровая приставка, DVD-плеер... Здесь приводится описание переключателя одного АV входа телевизора между четырьмя устройствами.

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

Телевизор на их нажатие реагирует только появлением короткой черточки в верхнем левом углу экрана, которая индицируется только пока кнопку пульта держат нажатой.

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

Важно наличие на пульте «лишних» кнопок.

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

Использование недорогой готовой платы ARDUINO UNO интересно тем, что это готовый модуль, - небольшая печатная плата, на которой расположен микроконтроллер ATMEGA328, а так же вся его «обвязка», необходимая для его работы, включая USB-программатор и стабилизатор напряжения питания.

Принципиальная схема

Принципиальная схема системы дистанционного управления переключением входов показана на рис.1. Собственно переключение, - релейное, при помощи четырех советских реле РЭС-22 с обмотками на напряжение 12V.

Принципиальная схема самодельного переключателя четырех входов для телевизора на Arduino UNO

Рис. 1. Принципиальная схема самодельного переключателя четырех входов для телевизора на Arduino UNO.

Впрочем, ничего не мешает использовать и какие-то современные реле, важно чтобы включающих контактных групп у них было не менее трех.

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

На схеме показаны разъемы азиатского типа («тюльпаны»), объединенные по три в группу, каждая группа обозначена Х1, Х2, X3, X4, Х5.

Группы Х1-Х4 - это входные, к которым подключаются выходы цифровой приставки. DVD-плеера и других источников сигналов.

Х5 - выходная группа, к ней подключаются «тюльпаны» от кабеля, подключенного в СКАРТ телевизора. Сигналы для управления реле снимаются с цифровых портов D4, D5, D6, D7 платы ARDUINO UNO, и поступают на транзисторные ключи на VT1-VT4, в коллекторных цепях которых включены электромагнитные реле К1-К4, управляющие переключением входов. Впрочем, число входов можно и увеличить, если в этом есть необходимость.

У платы ARDUINO UNO имеется 14 цифровых портов, от D0 до D13, один из них, в данном случае, D2, используется для приема кодов команд от интегрального фотоприемника F1. Таким образом, остается 13 портов, то есть, максимальное число переключаемых входов - 13.

Для приема сигналов пульта используется фотоприемник F1 типа TSOP4838. но можно применить и любой другой аналогичный. В общем, по схеме все ясно. - код от фотоприемника поступает на порт D2, работающий на прием. Затем микроконтроллер декодирует код, и переключает входы посредством каскадов на VT1-VT4 и реле К1-К4.

Программа

Программа для ARDUINO UNO приводится в таблице 1.

Программный код для контроллера (рисунок)

Рис. 2. Программный код для контроллера (рисунок).

Таблица 1.

/* переключатель 4 5 6 7 */

#include

IRrecv irrecv(2); // фотоприемник на порту D2

decode_results results;

void setup () {

pinMode(4, OUTPUT); // задание порта D4 как выходного

pinMode(5, OUTPUT); // задание порта D5 как выходного

pinMode(6, OUTPUT); // задание порта D6 как выходного

pinMode(7, OUTPUT); // задание порта D7 как выходного

irrecv.enableIRIn(); // запуск приема команд

}

void loop() {

if (irrecv.decode(Sresults)) {

switch( results.value ) {

case 0xC50C30BA:

digitalWrite( 4, HIGH); // красная кнопка - единица на D4 digitalWrite( 5, LOW); // красная кнопка - ноль на D5

digitalWrite) 6, LOW); // красная кнопка - ноль на D6

digitalWrite( 7, LOW); // красная кнопка - ноль на D7

break;

case 0х4711А1В7:

digitalWrite! 4, LOW); // зеленая кнопка - ноль на D4

digitalWrite! 5, HIGH); // зеленая кнопка - единица на D5

digitalWrite! 6, LOW); // зеленая кнопка - ноль на D6

digitalWrite! 7, LOW); // зеленая кнопка - ноль на D7

break;

case 0хЗА872А2С:

digitalWrite! 4, LOW); // рыжая кнопка - ноль на D4

digitalWrite! 5, LOW); // рыжая кнопка - ноль на D5

digitalWrite! 6, HIGH); // рыжая кнопка - единица на D6

digitalWrite! 7, LOW); // рыжая кнопка - ноль на D7

break;

case 0x210F274C:

digitalWrite! 4, LOW); // синяя кнопка - ноль на D4

digitalWrite! 5/ LOW); // синяя кнопка - ноль на D5

digitalWrite! 6, LOW); // синяя кнопка - ноль на D6

digitalWrite! 1, HIGH); // синяя кнопка - единица на D7

break;

}

irrecv.resume();

}

}

Данная программа требует загрузки библиотеки IRremote.h которая нужна для распознавания команд пульта ДУ. Эта библиотека есть в стандартном наборе программного обеспечения для ARDUINO, у меня версия Arduino 1.6.11.

Далее идет назначение портов. В строке:

IRrecv irrecv(2);

входным назначен порт D2 На него подается сигнал с выхода интегрального фотоприемника. А в строках:

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

выходными назначены порты D4, D5, D6, D7. Но, порты можно выбрать и другие, -как вам захочется.

В программе после «case 0х» записаны коды команд, которые формируется при нажатии соответствующей кнопки. Как уже сказано выше, используются цветные кнопки пульта RC-5, им соответствуют первичные коды: С50С30ВА, 4711А1В7, ЗА872А2С, 210F274C, и далее прописано что должно происходить с выходами после поступления соответствующего кода.

Например, строки: case 0хC50C30BA:

digitalWrite( 4, HIGH);

digitalWrite( 5, LOW);

digitalWrite( 6, LOW);

digitalWrite( 7, LOW);

break;

говорят о том, что по приему команды С50С30ВА на выходе D4 должна установиться единица, а на всех остальных используемых выходах - нули.

Таким образом, при нажатии этих цветных кнопок происходит фактическое переключение логической единицы по портам D4, D5. D6 и D7.

На а далее. -переключение входов посредством транзисторных ключей и реле. Команды пульта RC-5 интересны тем, что каждой кнопке соответствует по два кода.

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

Таблица 2.

/* определение кодов команд пульта */

#include

IRrecv irrecv(2); // фотоприемник на порту D2

decode_results results;

void setup () {

Serial.begin(9600); // задание скорости порта COM

irrecv.enableIRIn(); // запуск приема команды

}

void loop() {

if (irrecv.decode(Sresults)) {

Serial.println(results.value, HEX); // вывод данных в COM

irrecv.resume(); // прием следующей команды

}

}

Данным устройством, как сказано выше, можно управлять и другим пультом, другими кнопками, - все на ваш выбор Но нужно будет предварительно разобраться, какие коды соответствуют выбранным кнопкам другого пульта.

Для этого нужно сначала загрузить в ARDUINO UNO программу из таблицы 2. После загрузки данной программы в микроконтроллер платы ARDUINO UNO, нужно открыть монитор COM-порта, для этого в окне программы Arduino 1.6.11 выбираем «Инструменты» и из выпадающего меню «Монитор порта».

После того как откроется окошко Монитора порта, берем пульт ДУ и нажимаем интересные нам кнопки. В окне Монитора порта будет отображаться код, соответствующий каждой кнопке.

Следует заметить, что может быть такое, что при нажатии каждой кнопки приходит две команды. - сначала код команды, а затем код FFFFFFF. Или даже несколько строк кода FFFFFFF.

Так вот, первое это код команды, который нужно занести в программу в таблице 1 после «case Ох», а вторая строка или строки букв «F» это просто указатель на то, как долго кнопка удержана нажатой, в одном случае

В другом случае может показывать, что кнопку отпустили Для нашего случая это несущественно, - важен только код самой команды.

Каравкин В. РК-11-19.


0 1388 На микроконтроллерах
ТВ телевизор коммутатор сигналов микроконтроллер avr микроконтроллер arduino
Оставить комментарий: