roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 июл 2025, 11:05

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




Начать новую тему Ответить на тему  [ Сообщений: 81 ]  На страницу 1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: ИК - приемник
СообщениеДобавлено: 12 дек 2009, 20:51 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2007, 16:11
Сообщения: 1027
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел
Как узнать что за ик приемник и его распиновку? С виду похож на такой:http://chipdip.ru/product0/144064998.aspx только а металлической рубашке.
И как элементароно заставить его работать?
Код:
#include <mega8.h>

void main()
{
DDRC = 0x88;
DDRD = 0x40;

if (PINC.0 == 0)
    PORTC.0 = 1; 
  else
    PORTC.5 = 1;



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 12 дек 2009, 23:01 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
1. Подключить питание согласно даташита.
2. Подключить к выходу тестер/осцилограф/светодиод.
3. Посветить на него пультом от телевизора/видеомагнитофона/CD
4. Увидеть результат на тестере/осцилографе/светодиоде.

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 13 дек 2009, 00:18 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2007, 16:11
Сообщения: 1027
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел
Даташита нет, по этом и незнаю куда подключается питание, но сейчас это вроде нащупал.
Так как не знаю что за ик приюмник по этому и не смог найти на него доку.
После долгих мучений на выходе приемника всетаки появился высокий уровень.
Свечу на него пультами от тв, сд, и т.д. но приемник не как не реагирует. :(
что то опять не так :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 13 дек 2009, 00:26 
Не в сети
Аватара пользователя

Зарегистрирован: 23 окт 2007, 22:03
Сообщения: 3037
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец
Может частота не та?

_________________
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 13 дек 2009, 00:42 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2007, 16:11
Сообщения: 1027
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел
еще помучился, и кое что обнаружил.
питание ~5В, начинаю включать кнопки пультов и напряшение на выходе приемника падает до 3.7В, но этого достаточно много для включения микроконтроллером светодиода.
предел понижения напряжения зависит от частоты (наверное), так как использую один пульт - одно напряжение, другой - другое.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 14 дек 2009, 15:20 
Не в сети

Зарегистрирован: 17 апр 2009, 15:09
Сообщения: 987
Откуда: Rostov-Don
В TSOP спецом АРУ стоит и ограничитель. Девайс принимает код (последовательность нулей и единиц) пульта, а не занимается измерением уровня сигнала.
Пульт передает коды с паузами между посылками (они разные в разных пультах, как и сами коды), вот и получается среднее напряжение порядка 3,7В.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 14 дек 2009, 15:59 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2007, 16:11
Сообщения: 1027
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел
Так как же мне тогда с помощью мк поймать сигнал с TSOP?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 14 дек 2009, 16:18 
Не в сети

Зарегистрирован: 17 апр 2009, 15:09
Сообщения: 987
Откуда: Rostov-Don
Что TSOP что-то принял МК узнает по появлению "0" (логический ноль) на его выходе. Примерно так
Код:
while(tsop==1); // ждем "0"
led=1; // зажигаем индикацию

Вариант ес-но не единственный. Можно прерывание по "0" на ногу повесить. Можно интегратор на выход ТСОПа и АЦП/компаратор задействовать, если уровень (вернее качество прохождения сигнала) интересен. Можно вместо пульта свой непрерывный сигнал подать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 14 дек 2009, 17:07 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2007, 16:11
Сообщения: 1027
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел
Сделал вот так:
Код:
#include <mega8.h>
#include <delay.h>

void main()
{
DDRC = 0xff;
DDRD = 0x70;

while(PIND.0 == 1); // ждем "0"
PORTC.5 = 1; // зажигаем индикацию



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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 14 дек 2009, 18:30 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
проверяется элементарно
на сигнальную ногу вешается светодиодик и светится пультом
если работает то светодиод радостно моргает

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 14 дек 2009, 18:51 
Не в сети

Зарегистрирован: 17 апр 2009, 15:09
Сообщения: 987
Откуда: Rostov-Don
Цитата:
При включении питания диод загорается,

Вероятно Вы его забыли выключить прежде чем ТСОП проверять
Избавить от этого может небольшое изменение кода
Код:
while(1)// крутимся в цикле
{
if(PIND.0 == 0) // пришел "0"
{
PORTC.5 = 1; // зажигаем индикацию
delay(1..2sec); // чтобы успеть заметить
}
PORTC.5 = 0; // гасим
}// конец цикла


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 14 дек 2009, 23:07 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2007, 16:11
Сообщения: 1027
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел
>contr
СПС :)
Вот счас заработало (хотя я и пробовал что то пордобное написать), только иногда светодиод самопроизвольно загорается - помехи наверное какие нибудь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 14 дек 2009, 23:43 
Не в сети

Зарегистрирован: 17 апр 2009, 15:09
Сообщения: 987
Откуда: Rostov-Don
Цитата:
только иногда светодиод самопроизвольно загорается - помехи наверное какие нибудь.

Чтобы такого не происходило можно подключить выход ТСОПа через 1..10к и повесить конденсатор 0,1мкф на МК.
Или решить проблему программно повторной проверкой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 22 дек 2009, 22:18 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2007, 16:11
Сообщения: 1027
Откуда: иваново
Skype: cybsys1
прог. языки: Delphi
ФИО: Павел
Теперь возник такой вопрос: как мне задать в СVAVR частоту ИК диода, частота кварца 16МГц?
на сегодняшний момент имеем код:
Код:
#include <mega8.h>
#include <delay.h>

void main()
{
DDRC = 0xff;
DDRD = 0x02;
DDRB = 0xff;
PORTB = 0x00;

PORTD.1 = 1;
while(1){ // цикл

if (PIND.0 == 0){ // пришел "0"
PORTC.5 = 1;  // зажигаем индикацию
delay_ms(100); // чтобы успеть заметить
}
PORTC.5 = 0; // гасим
}}// конец цикла

Блин ппц, около года ни чего неписал (в смысле программы) сейчас тяжеловато, да и сессия - ппц! :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК - приемник
СообщениеДобавлено: 23 дек 2009, 15:54 
Не в сети

Зарегистрирован: 17 апр 2009, 15:09
Сообщения: 987
Откуда: Rostov-Don
Еще легче
Код:
while(1)// цикл
{
PORTC.6 = 1;  // зажигаем ИК диод
delay_us(13); // половинка периода
PORTC.6 = 0; // гасим
delay_us(13);
}

На выходе получим меандр с частотой ~38kHz. Эту частоту нужно подогнать под используемый TSOP.
Более продвинутый вариант - использование модуля PWM. Тогда основная прога не отвлекется на обслуживание ИК излучателя и мощность программно менять проще


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 81 ]  На страницу 1, 2, 3, 4, 5, 6  След.

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


Кто сейчас на конференции

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


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO