Приветствую Вас, Гость! Регистрация RSS

Вторник, 22.08.2017
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Форум mega-avr.ucoz.ru » Вопросы начинающих » Генератор для TSOP1736 на mega8 (чтобы пользователи могли читать, если у них такая проблема)
Генератор для TSOP1736 на mega8
eslavaДата: Четверг, 30.09.2010, 21:59 | Сообщение # 1
Заглянувший
Сообщений: 22
Репутация: 0
Город: Кировоград
Статус: Отсутствует
Добрый вечер всем! Помогите написать на си для atmega8 генератор пачек импульсов 36кгц для TSOP1736.

Сообщение отредактировал eslava - Четверг, 30.09.2010, 22:19
 
АвторДата: Пятница, 01.10.2010, 21:29 | Сообщение # 2
Автор сайта
Сообщений: 200
Репутация: 3
Город: Омск
Статус: Отсутствует
Я нашел в сети про датчик TSOP1736 и ему подобные, но только пока не могу "вразумить" их протокол. Меня тоже заинтересовало, как он работает. Я некоторое время не буду в сети ( до 7.10; по личным причинам ), а далее попробуем разобраться. smile


_____________________________________________________________
Радиоэлектроника и Программирование занимательная штука...
 
АвторДата: Воскресенье, 10.10.2010, 22:35 | Сообщение # 3
Автор сайта
Сообщений: 200
Репутация: 3
Город: Омск
Статус: Отсутствует
Вечер добрый! Чего-то у меня с ентим TSOP1736 не получается; wink туго с протоколом обмена cry не могу понять...


_____________________________________________________________
Радиоэлектроника и Программирование занимательная штука...
 
ilvzДата: Вторник, 28.12.2010, 02:10 | Сообщение # 4
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
По TSOP1736. Хотя спрашивающий испарился, всё равно отвечу. Может кому пригодится.
На светодиод нужно подавать импульсы с частотой 36Кгц. И обязательно пачками по 20-100 имп. (примерно) со скважностью пачек более 1. Т.е. с достаточным промежутком между пачками. В ТСОП-е стоит АРУ (автоматическая регулировка усиления). Поэтому если сигнал будет постоянным, то в ТСОП-е будет уменьшено усиление. И он достаточно быстро начнёт считать сигнал за шумовой фон. Поэтому, чем реже пачки тем больше чувствительность ТСОП.
Да, ещё. На выходе с ТСОП-а будет импульс равный по ширине принятой пачке. Только немного запаздывающий. На один импульс, со светодиода, по моему. Если прием сигнала будет неуверенным, тогда ТСОП может выдать несколько импульсов на пачку.

По светодиоду. Желательно чтобы был на 940-950Нм (8хх подсвечивают красным). Его нужно включать через транзистор шунтированный резистором Ом на 40. (для 5в) Если просто на ножку будет светить очень слабо. Проверить работу и светимость можно цифровой фото или видеокамерой. Они его видят. Можно убедиться на пульте от телека.
.
Вроде всё.

Сообщение отредактировал ilvz - Вторник, 28.12.2010, 02:29
 
eslavaДата: Суббота, 01.01.2011, 18:04 | Сообщение # 5
Заглянувший
Сообщений: 22
Репутация: 0
Город: Кировоград
Статус: Отсутствует
Всех с Новогодними праздниками!!! Да понятно, но хотелось бы это увидеть на Си для ATtiny2313 или ATtiny13. Заранее благодарен.
 
ilvzДата: Воскресенье, 02.01.2011, 05:58 | Сообщение # 6
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
Просто иллюстрирую принцип (ничего не проверялось). Программу надо написать самому или поискать какой нибудь барьер на ТСОП-е
Code

// ТУПОЙ МЕТОД - НА ЗАДЕРЖКАХ (На таймере и лучше и правильней)
// PORTX.X - бит управления светодиодом
// PORTY.Y - бит с выходной ноги ТСОПА
char i,j;
while (1)
         {
           i=Dlina_Pachki; // в импульсах
           j=0;
        // Place your code here
         // перед этим светодиод должен быть погашен PORTX.X=0 или PORTX.X=1 в соотв. бите (всё зависит от схемы включения)
           while(i--)
               {
                PORTX.X=1;      // включаем светодиод (здесь может быть и 0. всё зависит от схемы управления светодиодом)
                delay_us(14);   // Задержка соответствует частоте 72000= 36000*2 с ошибкой около 1%
                PORTX.X=0;     // вЫключаем светодиод (а здесь может быть и 1. всё зависит от схемы управления светодиодом)
                if(i < ((Dlina_Pachki/8)*6) ) // отступ начала проверки ТСОП-а от начала пачки может быть и другим или отсутствовать вовсе
                j+=PORTY.Y; // суммируем проверки ТСОП-а.  
                delay_us(14);   // одну из задержек или обе можно уменьшить до 13, для того что бы точнее попасть в частоту  36000Гц
                    // если приём неусточивый, то не каждый тест будет успешным
                    // если приёма нет, то всё равно какое-то к-во тестов может пройти (помехи)
                    // ловит - не ловит определять например по проценту успешных тестов
               };
           // на выходе j= к-во успешных (если у ТСОП-а импульс положителен) или неуспешных (если у ТСОП-а импульс отрицателен) тестов    
           // по содержимому j определяем ловит ТСОП наш сигнал или нет. и насколько устойчиво
           delay_ms(100); // даём ТСОП-у вернуться в исходное состояние (чувствительность!)
           // Вместо задержки можно ещё раз в таком же цикле проверить ТСОП (но не зажигая светодиод) и сравнить значения.
           // если ТСОП видел светодиод то значения будут заметно разными
         }

Проверку ТСОП-а можно попробовать поперемещать по циклу. Скорее всего есть место наиболее устойчивого приёма.
(типа - после зажигания диода до задержки, после зажигания и задержки и т.д.)

Добавлено (02.01.2011, 05:58)
---------------------------------------------
Для реальной программы необходимо знать куда и как подключен диод и куда подключен ТСОП.

Сообщение отредактировал ilvz - Воскресенье, 02.01.2011, 05:52
 
Форум » Форум mega-avr.ucoz.ru » Вопросы начинающих » Генератор для TSOP1736 на mega8 (чтобы пользователи могли читать, если у них такая проблема)
Страница 1 из 11
Поиск: