Дистанционное управление для телевизора на ARDUINO UNO, схема и программа


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

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

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

Если есть ненужный пульт от какого-то другого аппарата, плюс плата ARDUINO UNO, и нет «комплексов» по поводу вскрытия корпуса аппарата и пайки проводов к дорожкам его кнопок, то можно очень простым способом сделать дополнительную систему ДУ, которая будет «нажимать» кнопки выбора программ (Р+, Р-) и кнопки регулировки громкости (Vol+, Vol-).

Принципиальная схема устройства дистанционного управления телевизором, собрано на ARDUINO UNO

Рис. 1. Принципиальная схема устройства дистанционного управления телевизором, собрано на ARDUINO UNO.

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

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

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

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

Таблица 1. Исходный код программы для МК.

/*

ДУ для телевизора

*/

#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.enablelRIn();

}

void loop() {

if (irrecv.decode(&results)) {

switch( results.value ) {

case Ox:A25DB24D:

digitalWrite( 4, HIGH); // кнопка Vol-

delay(200); // время удержания 0,2 сек

digitalWrite( 4, LOW);

break;

case 0xA25D8A75:

digitalWrite( 5, HIGH); // кнопка Vol+

delay(200); // время удержания 0,2 сек

digitalWrite( 5, LOW);

break;

case 0xA25D817E:

digitalWrite( 6, HIGH); // кнопка P-

delay(200); // время удержания 0,2 сек

digitalWrite( 6, LOW);

break;

case 0xA25D01FE:

digitalWrite( 7, HIGH); // кнопка P+

delay(200); // время удержания 0,2 сек

digitalWrite( 7, LOW);

break;

}

irrecv.resume();

}

}

Если эмиттер такого транзистора подключен к общему минусу, а коллектор к контакту кнопки, то при подаче на базуэтого транзистора отпирающего тока, он открывается и «замыкает» кнопку на общий минус, имитируя её нажатие.

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

Транзисторы. которые имитируют нажатия кнопок. - это VT1, VT2. VT3, VТ4, на их базы управляющие напряжения поступают с портов D4-D7 платы ARDUINO UNO.

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

Питается плата ARDUINO UNO напряжением от 7 до 12V, которое можно найти на выходе блока питания телевизора.

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

Данная программа требует загрузки библиотеки 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. Но. порты можно выбрать и другие. -как вам захочется, соответственно, к ним подключив, через резисторы, базы транзисторов VT1, VT2, VT3, VТ4.

В программе после «case Ох» записаны коды команд, которые формируется при нажатии соответствующей кнопки. Как уже сказано выше, используются кнопки пульта дистанционного управления марки TOSHIBA SE-R0301, с изображением стрелок вверх, вниз, влево и вправо. Этим кнопкам соответствуют коды A25D01FE, A25D817E, A25D8A75, A25DB24D, соответственно, и далее прописано, что должно происходить с выходами после поступления соответствующего кода.

Вот, при нажатии кнопки «стрелка вправо», на порту D4 платы ARDUINO UNO появляется логическая единица, которая держится в течение времени, равного 0,2 секунды, и потом логический уровень на этом порту опять становится нулевым.

Это отображено в строках:

case Ох:A25DB24D:

digitalWrite(4, HIGH);

delay(200);

digitalWrite(4, LOW);

Время 0,2 секунды, в течение которого действует на порту логическая единица задано строкой:

delay(200);

Его легко изменить, написав другое число вместо «200». Например, если нужно чтобы было 0,5 секунды, пишем: delay(500);

Совершенно аналогично все происходит и с тремя другими кнопками.

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

Для этого нужно сначала загрузить в ARDUINO UNO программу из таблицы 2, из предыдущей статьи, опубликованной в этом же журнале (статья «Приставка DVB-Т2 управляет телевизором при помощи ARDUINO UNO»).

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

После того как откроется окошко Монитора порта, берем пульт ДУ и нажимаем интересные нам кнопки. В окне Монитора порта будет отображаться код, соответствующий каждой кнопке, который нужно будет внести в программу в таблице 1 после «case 0х» (без строк из букв «F», если таковые будут отображаться в Мониторе порта).

Каравкин В. РК-02-2020.


0 185 На микроконтроллерах
дистанционное управление телевизор телевидение arduino avr микроконтроллер микроконтроллер
Оставить комментарий:

cashback