roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 17:50

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




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

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


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

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

Хуан Тортик писал(а):

Зеленый: горит все время, пока работает контроллер
Красный(сигнализирует о препятствии): зажигается при появлении сигнала от TSOPа, тушится при его исчезновении


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

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


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

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

Если бы время его свечения было настолько маленькое, что его нельзя было бы увидеть, то он бы вообще никогда не работал. А у меня проблема в том, что он загорается тоько при резком появлении препятствия, а если медленно подносить, то срабатывает только на 2-3 см
На сигнал от TV пульта реагирует вполне сносно


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

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


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

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Ваш код страшен, хоть причешу немного.

Код:
// 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК датчик
СообщениеДобавлено: 03 фев 2009, 00:24 
Не в сети

Зарегистрирован: 15 янв 2009, 18:22
Сообщения: 42
Ммм... простите чайника за вопрос)))

Использую плату 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 раз.

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

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

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


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

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

вместо ИК светика пробовал обычный светодиод подключать? он у тебя должен моргать весело)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК датчик
СообщениеДобавлено: 03 фев 2009, 00:38 
Не в сети

Зарегистрирован: 15 янв 2009, 18:22
Сообщения: 42
Простите, я код с пояснениями сделал сейчас)))

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

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

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

Добавлено спустя 34 секунды:
Подключал) Мигает))


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

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

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


вот
хотя может я гдето с нулями напутал
спать охото

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК датчик
СообщениеДобавлено: 03 фев 2009, 02:09 
Не в сети

Зарегистрирован: 15 янв 2009, 18:22
Сообщения: 42
Спасибо огромное))) А в остальном - всё верно??? Ну остальные пункты..

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

Добавлено спустя 16 минут 19 секунд:
И ещё вопрос - какое напряжение надо для ик - диода? а то может быть я его просто сжёг)


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

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

_________________
Домашняя робототехника - RoboZone.SU
горючее...- пиво... много... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК датчик
СообщениеДобавлено: 03 фев 2009, 02:21 
Не в сети

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


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


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

Зарегистрирован: 19 июн 2005, 18:27
Сообщения: 1576
Откуда: Камышин
bersekter писал(а):
Как я понимаю это 20 милиампер. Ииии... как расчитать нужный резистор???


а закон ома как же? :wink:

_________________
Домашняя робототехника - RoboZone.SU
горючее...- пиво... много... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ИК датчик
СообщениеДобавлено: 03 фев 2009, 02:57 
Не в сети

Зарегистрирован: 15 янв 2009, 18:22
Сообщения: 42
Аааа, точно)) то есть... 250 ом?!!! (если питать через 5 в???)

Тогда сразу вопрос - теперь как узнать, сжёг я его или нет)))


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

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


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

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


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

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