Как управлять телевизором для работы с DVB-T2 (ARDUINO UNO)


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

В результате получается что от системы управления телевизора требуется только включить его, и переключить в режим «АV».

В Л.1 приводится описание блока на основе ARDUINO UNO, который подключается к кнопкам выбора программ (+Р) и монитора (АV) телевизора, а так же, по питанию от сети. И этот блок управляет телевизором при помощи свободных кнопок пульта приставки.

Идея хорошая, но мне не понравилось два момента.

Первое, это то что для включения телевизора используется USB-порт приставки. У меня к нему подключен внешний жесткий диск, и порт и так нагружен.

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

Поэтому было решено сделать блок, который вообще никак не подключается к DVB-T2 приставке, и работает только от одной кнопки её пульта. - кнопки «On/Off».

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

Идея такова, - нажимаем кнопку «Оп/Off» на пульте приставки. Сигнал пульта принимает приставка и включается.

Кроме того, этот же сигнал пульта принимает блок на ARDUINO UNO и сначала при помощи электромагнитного реле подключает телевизор к электросети (механический выключатель телевизора должен быть предварительно включен).

Затем, через 5 секунд открывается ключ, который подключен параллельно кнопке «+Р» (перебор программ) телевизора. Это включает телевизор в рабочий режим.

Далее, спустя паузу в 2 секунды, другой ключ «нажимает» кнопку «АV» телевизора. и переключает его в режим монитора. Если выключаем приставку, то еще раз нажимаем кнопку «Оп/Off» на пульте приставки.

Сигнал пульта принимает приставка и выключается. Кроме того, этот же сигнал пульта принимает блок на ARDUINO UNO и при помощи электромагнитного реле отключает телевизор от электросети.

Схема блока управления телевизором для работы с DVB-T2, построена на ARDUINO UNO

Рис. 1. Схема блока управления телевизором для работы с DVB-T2, построена на ARDUINO UNO.

Один недостаток только в том, что для блока управления нужен отдельный источник питания напряжением 12V. С учетом того что используется готовый блок ARDUINO UNO, схема получается довольно простая.

Для управления питанием телевизора служит электромагнитное реле К1. Оно включается когда на порту D4 платы ARDUINO UNO появляется логическая единица. Транзистор VT2 служит для включения телевизора из ждущего режима, в котором он оказывается сразу после подачи питания.

Сток транзистора подключен к кнопке перебора программ (+Р) на передней панели телевизора. Транзистор VTЗ служит для включения режима монитора, его сток подключен к кнопке АV телевизора.

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

Для приема сигналов пульта используется фотоприемник F1 типа TSOP4838, но можно применить и любой другой аналогичный.

Программа для МК

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

Основная задача была поставлена та. чтобы все включение и выключение телевизора осуществлялось только одной командой пульта приставки, формируемой при нажатии кнопки «Оп/Off» пульта.

Таблица 1.

Исходный код для программы блока управления телевизором с DVB-T2 на ARDUINO UNO

Рис. 2. Исходный код для программы блока управления телевизором с DVB-T2 на ARDUINO UNO.

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

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

IRrecv irrecv (2);

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

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

выходными назначены порты D4, D5 и D6.

В программе после «case Ох» записан код команды, формируемый при нажатии кнопки «Оп/Off» пульта. После приема этой команды запускается подпрограмма, которая сначала определяет состояние порта D4. Нужно было как-то сделать чтобы при одном нажатии кнопки на D4 появлялась единица, а при другом - ноль.

В данном случае, может быть применено и нестандартное решение, но оно работает. Используется аналоговый порт АО, на который поступает напряжение с порта D4. Аналоговый порт измеряет напряжение на порту D4.

Если это напряжение больше 0,7 от напряжения логической единицы, то в порт D4 записывает ноль. Если же это напряжение меньше 0,7 от напряжения логической единицы, то в порт D4 записывает единицу. Для этого используется компараторная функция «IF».

Принятие решения какой уровень записывать в порт D4 происходит в этих строках:

if (val > 700) digitalWrite( 4, LOW);

if (val < 700) digitalWrite( 4, HIGH);

После того как в порт D4 записан нужный логический уровень (ноль или единица), далее идет поочередная запись единицы в порты D5 и D6. с паузами между ними в 2 секунды и длительностью по 1 секунде:

digitalWrite( 5, HIGH);

delay(1000);

digitalWrite( 5, LOW);

delay(2000);

digitalWrite( 6, HIGH);

delay(1000);

digitalWrite( 6, LOW);

Таким образом, если телевизор был выключен, то после нажатия кнопки «Оп/Off» пульта телевизор включается, переходит в активный режим, и переходит в режим монитора.

Если же телевизор был включен, то после нажатия кнопки «Оп/Off» пульта телевизор выключается, а потом происходит бессмысленное «нажатие» кнопок «+Р» и «АV» у уже выключенного телевизора, что никакого влияния на него не оказывает.

Еще один важный момент. Продается очень много DVB-T2 приставок самых разных производителей. И их пульты тоже разные.

Поэтому, чтобы данный блок работал с пультом именно от вашей DVB-12 приставки, нужно в программу после «case 0х» записать код команды, формируемый именно этим конкретным пультом при нажатии кнопки «On/Off».

Здесь этот код: 20FF50AF. У другой приставки код может быть совсем другой. Чтобы узнать этот код нужно сначала загрузить в ARDUINO UNO программу из таблицы 2.

Таблица 2.

Определение кода команд пульта ДУ

Рис. 3. Определение кода команд пульта ДУ.

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

После того как откроется окошко Монитора порта, берем пульт ДУ и нажимаем его кнопку «Оп/Off» В окне Монитора порта будет отображаться код этой кнопки.

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

Детали

Электромагнитное реле типа GH-1A-12L или любое другое с обмоткой на 12V и контактами, достаточно мощными для подключения телевизора к электросети.

Транзисторы 2N7000 можно заменить на КП501, КП505. Фотоприемник TSOP4838 можно заменить любым аналогичным. Для питания блока нужен отдельный источник питания с выходным напряжением 12V.

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

Совсем не обязательно использовать этот блок управления именно с DVB-T2 приставкой. Эта переделка касается только старого аналогового телевизора, это к нему подключен этот блок управления.

А команду кнопки пульта «On/Off» можно прописать в программу от пульта любой бытовой техники, например, спутникового приемника, DVD-плеера, или смарт-ТV-приставки.

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

Лыжин Р. РК-08-2020.

Литература: 1. Каравкин В. «Приставка DVB-T2 управляет телевизором при помощи ARDUINO UNO». РК-02-2020.


0 747 Телевидение
DVB-T2 ТВ телевизор микроконтроллер avr микроконтроллер arduino
Оставить комментарий:

cashback