Например TDA7294

Форум РадиоКот • Просмотр темы - Алгоритм захвата команд ДУ
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн янв 26, 2026 09:52:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Алгоритм захвата команд ДУ
СообщениеДобавлено: Вс окт 20, 2013 17:16:15 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 13:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
Добрый вечер уважаемые!
Есть у меня один метод захвата кодовых посылок ДУ, можно сказать классический. Но он не оптимальный если используется для универсального декодера.
Работает он на основе замера длительности импульса и длительности паузы. Замеряется тремя фиксированными интервалами как длительности так и паузы, в итоге для хранения команды , отведено 24 байта.
Недавно пришла в голову мысль попробовать алгоритм дискретных отсчетов :

_-_-_-_
| | | | |

Вертикальные линии - это чтение состояния вывода.
Как думаете, стоит попробовать такой метод?
С ув. Артем


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Алгоритм захвата команд ДУ
СообщениеДобавлено: Вс окт 20, 2013 19:28:10 
Сверлит текстолит когтями
Аватар пользователя

Карма: 15
Рейтинг сообщений: 88
Зарегистрирован: Ср май 01, 2013 22:37:08
Сообщений: 1119
Откуда: Украина
Рейтинг сообщения: 0
Зачем? Вполне достаточно измерять итервал между фронтами. Если результат укладывается в определенный
диапазон - значит, принят "0", в другой диапазон - принята "1", не укладывается - принята помеха, переходим
к ожиданию стартового импульса.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Алгоритм захвата команд ДУ
СообщениеДобавлено: Пн окт 21, 2013 00:05:15 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 13:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
Я нашел идеальный метод кодирования/декодирования команд. Уже пишу для будущего "мини-умного дома" :)
Девайсина будет обучаться любым радио брелкам , которые совпадают по несущей частоте. Метод основан на подсчете длительности каждого импульса , длительность которых в виде байтового числа сохраняется в ОЗУ , после я пакую в еепром 24с08. Метод очень прожорливый , 1 команда занимает 100байт памяти. Но зато такой метод, теоретически , работает с любым пультом :)

Код:
 void decode_ir_data()
 {

    tim_system_rc=0x04;
   
  if(start) // если установлен старт бит - начинаем измерять импульсы
  {
    data_ir[a] = timer_ir;
    a++;   
     timer_ir=0;      // обнуляем счетчик   
     
    if(a>99)
    {
      start=0;         // сбрасываем старт бит
      a=0;             // сбрасываем счетчик данных массива
      tim_system_rc=0; // сбрасываем системный таймер
       tim_stop=1;
    } 
  }
 
 
  if(start==0) //  старт бит установлен? нет!
  {
     start=0x01;   // да!
     timer_ir=0;
  }   
     
  timer_vol=0;

 }


 void timer_stop()
 {
    start=0;
    tim_system_rc=0;
    tim_stop=1;
    timer_vol=1;
    a=0;
 }


код выполняется в обработчике прерывания ИНТ

Код:
                                for(d=0; d<100; d++)
                                 {
                                   
                                 
                                  if (data_ir_eep0[d] > 2)
                                  {
                                   if (((data_ir_eep0[d]+2) > data_ir[d]) && ((data_ir_eep0[d]-2) < data_ir[d])) // команда Вкл.Откл. питание
                                   {}
                                   else  cmd_ok=0;
                                  }
                                 
                                    timer_led_shou=0;
                                    data_ir[d]=0; // стираем буффер   
                                 }


Проверка принятой команды


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y