Проект tinyAVR 32. Дистанционное инфракрасное управление без батарей

December 29, 2014 by admin Комментировать »

Дистанционное управление на инфракрасных лучах стало неотъемлемым элементом современного электронного оборудования. Подобный пульт управления прилагается почти к любым бытовым электронным устройствам: телевизорам, ау- диопроигрыватедям, кондиционерам и т. п. Большинство существующих пультов дистанционного управления питается от одной или двух батареек 1,5 В (размера АА или ААА). В таком устройстве смонтирован инфракрасный светодиод, который передает коды команд, соответствующие нажатой кнопке. Каждая кнопка имеет свой уникальный код команды. Инфракрасное излучение (невидимое для человеческого глаза, но регистрируемое фотодетектором) модулируется несущей частотой от 35 до 40 кГц, и этот сигнал используется для передачи кодов команд.

На рис. 7.11 показан сигнал SIRCS, передаваемый пультом дистанционного управления телевизором.

С инфракрасными устройствами есть одна серьезная проблема: здесь нет общих стандартов и каждый производитель создает свой собственный формат команд, частоту модуляции и т. д. Мы насчитали девять систем дистанционного управления: Daewoo, Samsung, Japan, Motorola, SIRCS (Sony), RC5 (Philips), Denon, NEC и RECS80 (Thomson). По мере расширения функций аппаратуры все более сложным становится и дистанционное управление ею. Теперь на пульте может быть более 50 кнопок. Однако наиболее интенсивно используется только часть этих кнопок. Возьмем к примеру дистанционное управление телевизором. Чаще всего на нем нажимают кнопки выключения/включения, выключения звука, переключения на следующий/предыдущий канал, повышения/понижения громкости.

Рис. 7.11. Осциллограмма сигнала от пульта дистанционного управления телевизором

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

В этом проекте мы решили реализовать упрощенное дистанционное управление (без батареек) для телевизора, снабженное только шестью кнопками, причем пользователь может выбрать формат команд (NEC, SIRCS, RC5 или Samsung).

Спецификация проекта

Цель проекта — создать дистанционное управление с шестью кнопками (без батареек) для телевизора. На рис. 7.12 приведена блок-схема этого устройства.

Рис. 7.12. Блок-схема пульта дистанционного управления (без батареек)

В устройстве использован восьмиконтактный микроконтроллер. Питание подается от генератора Фарадея. Шесть кнопок подключены в виде матрицы Зх 2 с пятью выводами. У микроконтроллера семейства tinyAVR разработчику доступно до шести контактов ввода/вывода. В описываемом устройстве заняты все шесть контактов: пять контактов — для кнопок и еще один — для инфракрасного светодиода.

Описание устройства

Принципиальная схема нашего дистанционного управления изображена на рис. 7.13. Схема питается от генератора Фарадея, подключенного через разъем SL1. Диоды D1-D4 выпрямляют переменное напряжение; постоянное напряжение фильтруется и запасается в конденсаторах С1 и СЗ. Стабилизатор LP2950-3.3V выдает напряжение 3,3 В на микроконтроллер Tiny45. Для подачи команд управления предусмотрено шесть кнопок, которые подключены к микроконтроллеру через контакты РВ0-РВ4. Кнопка РВ5 предназначена для управления инфракрасным светодиодом.

Рис. 7.13. Принципиальная схема пульта дистанционного управления (без батареек)

Микроконтроллер опрашивает кнопки и при обнаружении нажатия передает код соответствующей кнопки. Формат дистанционного управления (REC, NEC, Samsung или SIRCS) программируется в микроконтроллере. Несмотря на то, что все форматы отличаются, они все-таки имеют кое-что общее. Передача кода кнопки начинается со стартового бита, за которым следуют несколько адресных битов, а затем — несколько битов кода команды (т. е. собственно код нажатой кнопки).

Адрес обозначает устройство (телевизор, аудиопроигрыватель, проигрыватель DVD и т. д.). В некоторых форматах за стартовым битом может следовать код команды, а уже за ним — биты адреса. Кодирование и длительность битов в разных форматах также отличаются. Эти подробности приведены в файлах исходных кодов данного проекта.

Конструкция

Рис. 7.14. Печатная плата пульта дистанционного управления

Рис. 7.15. Пульт дистанционного управления в корпусе

Рис. 7.16. Пульт дистанционного управления (крышка открыта)

Схема собрана на специально изготовленной печатной плате и заключена в небольшой корпус. Генератор Фарадея сделан под размер корпуса. На рис. 7.14-7.16 показана плата устройства, пульт в корпусе и со снятой крышкой.

Программирование

Откомпилированный код проекта (вместе с файлом MAKEFILE) можно скачать по ссылке: www.avrgenius.com/tinyavrl.

В главной программе выполняется цикл ожидания нажатия кнопки. До нажатия кнопки микроконтроллер находится в режиме ожидания (для экономии энергии). Нажатие кнопки вызывает прерывание по изменению состояния контакта, которое пробуждает микроконтроллер (листинг 7.1). Микроконтроллер сканирует кнопки и идентифицирует нажатую кнопку. Далее выполняется процедура передачи кода кнопки в соответствии с выбранным протоколом (форматом команды). После этого микроконтроллер снова переходит в состояние ожидания (до момента нажатия следующей кнопки).

Листинг 7.1

ISR(PCINTO_vect)

//Процедура обработки прерывания по изменению состояния контакта {

MCUCR &= ~((1«SE)  |      (1«SM1) ) ;

//Отключить режим ожидания PCMSK &= ~ ( (1«PCINT4)  |      (1«PCINT3)   |      (1«PCINT2) ) ;

//Прерывание по изменению состояния контакта отключено на всех контактах New_Key_Pressed = 1;

}

Рис. 7.17. Пример кодирования по протоколам RC5 и NEC

Код кнопки модулирует несущую частоту. Несущая частота зависит от выбранного протокола (рис. 7.17). Микроконтроллер, работающий на тактовой частоте 1 МГц, генерирует несущую частоту с помощью внутреннего 8-разрядного таймера (листинг 7.2). Несущая частота формируется переключением выходного разряда. Поэтому для получения несущей с частотой 36 кГц, частота прерываний должна быть равна 72 кГц.

ISR (TIMERO_COMPA_vec t)

//Обработчик прерывания по совпадению при сравнении

{

PORTB Л= (1«IR_LED);

//Переключение бита для генерирования ШИМ

}

Инициализация таймера для протокола RC5 приведена в листинге 7.3.

{

TCCROA I = (1«WGM01) ;

//Включить прерывание по совпадению при сравнении TCCROB |= (1«CS00) ;

//Тактовая частота 8 МГц(предварительный делитель = 1) , режим СТС OCROA = 14;

//Прерывание с частотой примерно 72 кГц TIMSK |= (1«ОС1ЕОА) ;

//Активизировать прерывание СТС sei();

}

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

Листинг 7.4 иллюстрирует формирование реальных битов по протоколу RC5.

void transmit_RC5 (void)

{

while(Tx == 1)

{

i f(Tx_bit_RC5[i] == 0)

{

DDRB |= (1«IR_LED);

//Включить несущую _delay_us(RC5_ON_PERIOD_ZERO);

DDRB &= ~(1«IR_LED);

//Выключить несущую _delay_us(RC5_OFF_PERIOD_ZERO);

}

if(Tx_bit_RC5[i] == 1)

{

DDRB &= ~(1«IR_LED);

// Выключить несущую

_delay_us(RC5_OFF_PERIOD_ONE);

DDRB |= (1«IR_LED);

// Включить несущую _delay_us(RC5_0N_PERX0D_0NE);

}

i++;

if (i == 14)

{

i=0;

Tx = 0;

}

}

PCMSK |= ( (1«PCINT4) | (1«PCINT3) | (1«PCINT2) ) ;

}

Работа устройства

Пользоваться пультом дистанционного управления очень просто. Потрясите его несколько раз и нажмите нужную кнопку!

Источник: Гадре, Д., Занимательные проекты на базе микроконтроллеров tinyAVR / Дхананья Гадре, Нигул Мэлхотра: Пер. с англ. — СПб.: БХВ-Петербург, 2012. — 352 с.: ил. — (Электроника)

Оставить комментарий

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