roboforum.ru

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

ИК датчик

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

Re: ИК датчик

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

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

Re: ИК датчик

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

Вмоем предыдущем посте:

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

Re: ИК датчик

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

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

Re: ИК датчик

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

Видимо я плохо написал. Красный тушится, если после следующей пачки импульсов при проверке сигнал от тсопа не был обнаружен.

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

Re: ИК датчик

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

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

Re: ИК датчик

Сообщение Vooon » 26 янв 2009, 21:05

Ваш код страшен, хоть причешу немного.

Код: Выделить всёРазвернуть
// vim:set ts=4 sw=4 et:

#include <io.h> // -> <tiny26.h>
#include <delay.h>

int main( void )
{
    //конфигурация портов
    DDRA  = 0b11101111;
    DDRB  = 0b11111111;
    PORTA = 0b11011111;
    PORTB = 0b00000000;

    while( 1 ) 
    {
        //цикл подачи пачки импульсов ик светодиодом
        for( char i = 0; i < 30; i++ )
        {
            delay_us(14);   // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
            PORTB ^= 0x01;  // начало импульса
        }

        PORTB &= ~0x01;

        if( !PINA.4 )      // проверка: если на ноге PA4 (к ней TSOP подключен) ноль (есть сигнал)
            PORTA.7 = 0;    // то зажигаем красный светик
        else                // если нет сигнала
            PORTA.7 = 1;    // то красный светик не зажигаем/тушим после последнего включения

        delay_us( 1000 );      //пауза между пачками импульсов
    }

    return 0;
}


Поправил код. <Сергей>
* Точка с запятой не нужно ставить после блоков
* В цикле for нужно обнулять переменную вначале
* и просто допричесал
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: ИК датчик

Сообщение bersekter » 03 фев 2009, 00:24

Ммм... простите чайника за вопрос)))

Использую плату Arduino Duemilanove, с атмегой 168.
1) Использую тзоп 1756. Итак. Там ракладка ножек какая? как привидена здесь?
http://parts.roboclub.ru/index.shtml?ik

И тоже вопрос - сколько питания ему надо? я даю 3 вольта. Могу пять. Впрочем всё равно не фурычит))

2) использую диод - l-53f3bt (диаметр 5мм, волна 940 нм, 30 мВт). Почему то фотки его врут - на фотах у него три ножки, но это очевидный брет - диод с тремя ножками)) Так вот, у него очевидно их две. Одну сую в землю, вторую в диджитал пин. Ну, напрямую подключаю к атмеге. Код вроде написал верный, он написан в компиляторе для платы ардуино, по сути обычный си. Так вот, у меня там диод на 13-м разъёме должен гаснуть если есть препятствие. Он вообще постоянно горит.

Я сомневаюсь, что код не верен, но.. в чём тогда проблема???

Добавлено спустя 31 секунду:
Код: Выделить всёРазвернуть
int tsop = 8; //tsop на разъёме 8

int irLed = 11;  //ик-диод на разъёме 11

int Led = 13; //обычный диод на разъёме 13

int i, del=4, pause=14, num=10, val=0; /*переменные для: счётчик, время импульса, количество импульсов между пачками, количество импульсов в пачке, переменная для хранения сигнала с тсопа*/

void setup() //установка режима работы разъёмов.
{
  pinMode (irLed, OUTPUT); // разъём 11 на вывод
  pinMode(Led, OUTPUT); //разъём 13 на вывод
  pinMode(tsop, INPUT); // разъём 8 на ввод
}

void loop() //постоянно повторяющийся код
{
 
  for(i=0; i<num; i++) //цикл пофторяеца столько раз, сколько нужно импульсов
  {
    digitalWrite(irLed, HIGH); /зажигаем ик-диод/
    delay(del); //ждём 0,004 секунды
    digitalWrite(irLed, LOW); //гасим ик-диод
    delay(del+1); // ждём 0,005 секунды
  }

  val=digitalRead(tsop); //считываем значение сигнала тсопа.
 
  if (val==HIGH)
  {
    digitalWrite(Led, HIGH); //если сигнал высокий - то есть припятствия нет, то зажигаем диод
  }
  else
  {
    digitalWrite(Led, LOW); //если сигнал низкий - то есть препятствие есть, гасим диод
  }
 
  delay(pause*del); //ждём столько времени, сколько займёт пауза между пачками.
}
Последний раз редактировалось bersekter 03 фев 2009, 00:35, всего редактировалось 1 раз.
bersekter
 
Сообщения: 42
Зарегистрирован: 15 янв 2009, 18:22

Re: ИК датчик

Сообщение Myp » 03 фев 2009, 00:34

delay(del+1);

вот этой строчкой ты что делаешь ?


и вобще давай в студию выкладывай все твои математические расчёты времени работы ИК диода, какую частоту по твоему он выдаёт и сколько времени пауза

тсоп 1756 это значит частота должна быть 56 кГц
давай пиши как ты считал время которое будет светик гореть и время скока ему тухнуть

вместо ИК светика пробовал обычный светодиод подключать? он у тебя должен моргать весело)
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: ИК датчик

Сообщение bersekter » 03 фев 2009, 00:38

Простите, я код с пояснениями сделал сейчас)))

Так я не считал, по причине того, что в статье, которой я руководствовался не указано...

Плюс, мне потом поясняли, что пофиг на частоту, важна длинна волны.

Просвятите плиз))) :pardon: Я просто полный профан в схемотехнике)

Добавлено спустя 34 секунды:
Подключал) Мигает))
bersekter
 
Сообщения: 42
Зарегистрирован: 15 янв 2009, 18:22

Re: ИК датчик

Сообщение Myp » 03 фев 2009, 00:58

либо ты неправильно понял либо тот кто объяснял сам не понимает
тебе подойдёт любой ИК светодиод, плевать какой длинны волны лишь бы ИК
для тсопа твоего частота должна быть 56 кГц и не иначе

секунду делим на 56000 колебаний и получаем время 1 импульса = 0,0000178 секунды
делим ещё пополам и получаем время 0.0000089 секунды это время вкл состояния или выключенного
так как импульс состоит из времени включенного и выключенного
тоесть в твоей программе del будет равен.... примерно 0.01 а не 4


вот
хотя может я гдето с нулями напутал
спать охото
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: ИК датчик

Сообщение bersekter » 03 фев 2009, 02:09

Спасибо огромное))) А в остальном - всё верно??? Ну остальные пункты..

Добавлено спустя 35 минут 47 секунд:
Хотя всё равно не пашет(( каие ещё причины могут быть?

Добавлено спустя 16 минут 19 секунд:
И ещё вопрос - какое напряжение надо для ик - диода? а то может быть я его просто сжёг)
bersekter
 
Сообщения: 42
Зарегистрирован: 15 янв 2009, 18:22

Re: ИК датчик

Сообщение FireFly » 03 фев 2009, 02:19

светодиоду важно не напряжение а ток (и 3 и 5 вольт подходят), смотри в даташите какой именно светику ток нужен, и подключай его не на прямую к выводу конротроллера, а через резистор иначе точно запалишь нафиг.
Домашняя робототехника - RoboZone.SU
горючее...- пиво... много... :)
Аватара пользователя
FireFly
 
Сообщения: 1576
Зарегистрирован: 19 июн 2005, 18:27
Откуда: Камышин

Re: ИК датчик

Сообщение bersekter » 03 фев 2009, 02:21

Мощность излучения P,мВт 30
Прямое напряжение,В 1.2
при токе Iпр.,мА 20
Длина волны,нм 940
Ширина спектра излучения,нм 50
Видимый телесный угол,град 30
Максимальное обратное напряжение,В 5
Максимальный прямой ток,мА 50
Максимальный импульсный прямой ток,мА 1200
Способ монтажа в отверстие
Рабочая температура,С -40...85


Как я понимаю это 20 милиампер. Ииии... как расчитать нужный резистор???
bersekter
 
Сообщения: 42
Зарегистрирован: 15 янв 2009, 18:22

Re: ИК датчик

Сообщение FireFly » 03 фев 2009, 02:52

bersekter писал(а):Как я понимаю это 20 милиампер. Ииии... как расчитать нужный резистор???


а закон ома как же? :wink:
Домашняя робототехника - RoboZone.SU
горючее...- пиво... много... :)
Аватара пользователя
FireFly
 
Сообщения: 1576
Зарегистрирован: 19 июн 2005, 18:27
Откуда: Камышин

Re: ИК датчик

Сообщение bersekter » 03 фев 2009, 02:57

Аааа, точно)) то есть... 250 ом?!!! (если питать через 5 в???)

Тогда сразу вопрос - теперь как узнать, сжёг я его или нет)))
bersekter
 
Сообщения: 42
Зарегистрирован: 15 янв 2009, 18:22

Пред.След.

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

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

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