roboforum.ru

Технический форум по робототехнике.

ИК датчик

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Re: ИК датчик

Сообщение Digit » 10 ноя 2007, 15:03

А уверен, что пульт от телека с нужной частотой шлет?
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

Re: ИК датчик

Сообщение Doniak » 10 ноя 2007, 15:44

Код: Выделить всёРазвернуть
#include<tiny2313.h>    
#include<delay.h>



void main(void){
   
   DDRB = 0b00000001;
   PORTB= 0b00000001;
   DDRD = 0b01000000;
   PORTD.6= 0;
   PORTD.4= 0;
while(1) { 
  if (PIND.4==0) {
  PORTD.6=1;
  delay_ms(100);
 
 
     }     
}
}

от собсно мая прога де ножка 4 ето тсоп а ножка 6 ето светодиод. Светодиод выключен еси тсоп выдаёт ноль он загораеца после 100 милисикунд проверяется ножка тсопа. Он неразу незагорается у мну развечто всегда горит если проверять тсоп не 0 а 1 то постояно горит. пульт использую от LG телика. незная на что ставить ножку МК для тсопа Зет состояние или подтяжка через 40 кОм ?
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: ИК датчик

Сообщение Master » 10 ноя 2007, 17:25

Вот схема. 100% рабочая у меня светик мигает.
Вложения
image001.gif
image001.gif (6.87 КиБ) Просмотров: 1736
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: ИК датчик

Сообщение Doniak » 10 ноя 2007, 19:53

всё исправел нашол ошибку
терь работает светик от всех пультов ДУ зажигается видак ДВД плеер муз центр телик даже от мобильного телефона када пытаюсь перекинуть чтото по ИК порту :)
я просто мало Вольтов в схему подал, соеденил 3 по 1.5 В батареек и терь всё норм.

Мастер а зачем тебе стока разных деталей на схеме транзистор конденсаторы? я напрямую всё подсоеденил к МК и к питанию вроде пашит :crazy:
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

Re: ИК датчик

Сообщение steel_monkey » 10 ноя 2007, 22:37

Это все согласно даташиту( кстати, для чего каждый элемент-описано в даташите) . Вот Вы движочек еще к этому же питанию прикрутите ( особенно не самого высокого качества), и посмотрите на реакцию ТСОПа- пойдут ложные срабатывания.
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Re: ИК датчик

Сообщение Master » 11 ноя 2007, 13:53

Мастер а зачем тебе стока разных деталей на схеме транзистор конденсаторы? я напрямую всё подсоеденил к МК и к питанию вроде пашит

Как правильно написал стальной обезьянка :) схема из ДШ.
И в твоем случае транзистор не нужен т. к. ИК диод у тебя в пульте, т. е. вся эта цепочка не нужна.
И вообще выложи свою схему, чет мне сдается, что там не совсем все правильно. А то потом начнешь что-то делать и будешь писать что не фурычит.
И зачем ты к МК подключал светиком мона и так мигать?
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: ИК датчик

Сообщение Doniak » 11 ноя 2007, 14:06

иногда срабатывает тсоп при включение питания наверно от зачем обвязка
Вложения
CXEMA.GIF
Схемка
CXEMA.GIF (2.67 КиБ) Просмотров: 1714
Аватара пользователя
Doniak
 
Сообщения: 142
Зарегистрирован: 26 сен 2007, 08:25
Откуда: Krivoy Rog, ukraina
прог. языки: Си
ФИО: Коля

ИК датчик

Сообщение Хуан Тортик » 25 янв 2009, 03:50

Новую тему решил не создавать про ИК датчик и напишу здесь.
Вот собрал свой первый ИК бампер, мозг - Tiny26. Зеленый светик - устройство работает, красный - есть сигнал от тсопа. Но вот какая проблема вылезла: если подносить руку к датчику резко, то четко срабатывает на 30см, а если медленно подносить руку издалека, то реагирует только на 2-3см. Че может быть за фигня :?:

Вот мой примитивный код:
Код: Выделить всёРазвернуть
#include <tiny26.h>
#include <delay.h>
char i;
main() { 
DDRA = 0b11101111;
DDRB = 0b11111111;
PORTA =0b11011111;
PORTB = 0b00000000;
while (1) {
i=0;
while ( i < 15)
{
PORTB ^=0b00000001;
delay_us(14);
PORTB ^=0b00000001;
delay_us(14);
i++;
};

if ( PINA.4 == 0)
{
PORTA.7 = 0;
}
else
{
PORTA.7 =1;
};
delay_us(600);
};
}


А вот схема:
Вложения
.GIF
Схема
.GIF (3.56 КиБ) Просмотров: 1556
Аватара пользователя
Хуан Тортик
 
Сообщения: 9
Зарегистрирован: 10 янв 2009, 00:22
Откуда: Химки, Московская обл.
прог. языки: C
ФИО: Андрей

Re: ИК датчик

Сообщение Хуан Тортик » 26 янв 2009, 19:26

эээ... Мне кто-нибудь ответит?
Аватара пользователя
Хуан Тортик
 
Сообщения: 9
Зарегистрирован: 10 янв 2009, 00:22
Откуда: Химки, Московская обл.
прог. языки: C
ФИО: Андрей

Re: ИК датчик

Сообщение EdGull » 26 янв 2009, 19:30

я конечно не Сишник, но вроде как для обычного человека 600 микросекунд тяжеловато будет заметить...
или ты супермэн? :wink:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: ИК датчик

Сообщение Хуан Тортик » 26 янв 2009, 19:58

Причем тут "заметить" ? 600 микросекунд - это пауза между импульсами, подаваемыми на ик светодиод
Аватара пользователя
Хуан Тортик
 
Сообщения: 9
Зарегистрирован: 10 янв 2009, 00:22
Откуда: Химки, Московская обл.
прог. языки: C
ФИО: Андрей

Re: ИК датчик

Сообщение EdGull » 26 янв 2009, 20:01

а какова тогда длительность его свечения?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: ИК датчик

Сообщение Хуан Тортик » 26 янв 2009, 20:19

Тот же код, но с комментариями:

Код: Выделить всёРазвернуть
#include <tiny26.h>
#include <delay.h>
char i;
main() { 
DDRA = 0b11101111;    //конфигурация портов
DDRB = 0b11111111;
PORTA =0b11011111;
PORTB = 0b00000000;
while (1) {
i=0;
while ( i < 15)      //цикл подачи пачки импульсов ик светодиодом
{
PORTB ^=0b00000001;  // начало импульса
delay_us(14);        // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTB ^=0b00000001;  // конец импульса
delay_us(14);        // задержка между импульсами
i++;
};

if ( PINA.4 == 0)    // проверка: если на ноге PA4 (к ней TSOP подключен) ноль (есть сигнал)
{
PORTA.7 = 0;       // то зажигаем красный светик
}
else              // если нет сигнала
{
PORTA.7 =1;        // то красный светик не зажигаем/тушим после последнего включения
};
delay_us(600);      //пауза между пачками импульсов
};
}
Аватара пользователя
Хуан Тортик
 
Сообщения: 9
Зарегистрирован: 10 янв 2009, 00:22
Откуда: Химки, Московская обл.
прог. языки: C
ФИО: Андрей

Re: ИК датчик

Сообщение EdGull » 26 янв 2009, 20:21

так и какова тогда длительность свечения светодиода? :wink:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: ИК датчик

Сообщение Хуан Тортик » 26 янв 2009, 20:28

Какого светика?

ИК: посылает пачки из 15 периодов (14мкс горит, 14мкс не горит), затем 600 мкс не горит (пауза между пачками)
Зеленый: горит все время, пока работает контроллер
Красный(сигнализирует о препятствии): зажигается при появлении сигнала от TSOPа, тушится при его исчезновении
Аватара пользователя
Хуан Тортик
 
Сообщения: 9
Зарегистрирован: 10 янв 2009, 00:22
Откуда: Химки, Московская обл.
прог. языки: C
ФИО: Андрей

Пред.След.

Вернуться в Новичкам или основы основ роботостроения.

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

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