Главная » Микроконтроллеры » ATtiny13 — ИК-приемник. Анализатор протокола NEC

ATtiny13 — ИК-приемник. Анализатор протокола NEC

Сегодня мы создадим проект, в котором используется стандартный ИК-пульт дистанционного управления от телевизора, аудиосистемы или другого устройства, использующего формат сигнала NEC.

Наше устройство на ATtiny13 будет способно принимать и распознавать адреса с пульта стандарта NEC, отправляя данные в монитор последовательного порта.

Так как  ATtiny13 не имеет аппаратного UART, мы будем отправлять данные через программный UART.

Проект протестирован с ATtiny13a @ 9,6 МГц, VCC = 5В и настройкой последовательного порта 8/N/1 на скорости 57600 бод (наименьшая частота ошибок во время тестов). Код находится на Github здесь.

Инфракрасная связь — теория

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

Электронное дистанционное устройство в основном состоит из ИК-передатчика или ИК-приемника. ИК-передатчик мигает инфракрасным светодиодом, который превращается в команду, принимаемую модулем ИК-приемника. Во время передачи инфракрасный сигнал модулируется ШИМ (широтно-импульсное модулирование).

Наиболее часто используемая частота модуляции составляет около 38 кГц (есть также 36 кГц, 37,9 кГц, 38 кГц и 40 кГц).

Дальность передачи (расстояние между передатчиком и приемником) может составлять до 45 м, при этом наиболее распространенные инфракрасные приемники имеют дальность связи 45 м.

ИК-приемник состоит из приемного модуля (фотодиода, фототранзистора). На стороне приемника промодулированный сигнал демодулируется, и получается диаграмма, как показано на диаграмме ниже.

Единственным недостатком ИК-связи является то, что такая ситсема ограничена работой в пределах прямой видимости.

Протокол NEC — характеристики

  • 8-битный адрес и 8-битная длина команды.
  • Доступен расширенный режим, удваивающий размер адреса.
  • Адрес и команда передаются дважды для надежности.
  • Импульсная дистанционная модуляция (PDM)
  • Несущая частота 38кГц.
  • Битовое время 1,125 мс или 2,25 мс.
  • Логический «0» — пакет импульсов 562,5 мкс, за которым следует интервал 562,5 мкс, с общим временем передачи 1,125 мс.
  • Логическая «1» — пакет импульсов 562,5 мкс, за которым следует интервал 1,6875 мс, с общим временем передачи 2,25

Протокол NEC — модуляция

  • Пакет импульсов в начале 9 мс (в 16 раз больше длины пакета импульсов, используемый для логического бита данных)
  • Пауза 4,5 мс
  • 8-битный адрес принимающего устройства
  • 8-битная логическая инверсия адреса
  • 8-битная команда
  • 8-битная логическая инверсия команды
  • Заключительный пакет импульсов 562,5 мкс, показывающий конец передачи сообщения.

Необходимые компоненты

Принципиальная электрическая схема

Схема ATtiny13 - ИК-приемник

Прошивка

Программный код данного проекта написан на C, который можно скомпилировать с помощью avr-gcc.  Более подробная информация о том, как скомпилировать этот проект, находится здесь.

#include "ir.h"
#include "uart.h"

int
main(void)
{
    uint8_t addr, cmd;

    /* setup */
    IR_init();

    /* loop */
    while (1) {
        if (IR_read(&addr, &cmd) == IR_SUCCESS) {
            uart_puts("addr=");
            uart_putu(addr);
            uart_putc(',');
            uart_puts("cmd=");
            uart_putu(cmd);
            uart_putc('\n');
        }
    }
}

Источник

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

Ваш email нигде не будет показан. Обязательные для заполнения поля помечены *

*