roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 04:46

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




Начать новую тему Ответить на тему  [ Сообщений: 100 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 21:36 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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

36 кГц это 36 тысяч импульсов в секунду?
тоесть 1 импульс это 1/36000 секунды
сответсно 1/(36000*2) это длит. высокого уровня и столько же длит. низкого уровня( Lo+Hi=1 импульс)
тоесть 7.7*Е-10
а наносекунды это всего лишь -9 степень
это получается у меня 0.77 наносекунды  :durak:
блин а сколько мне надо поставить в delay_ns() если у меня длинна короче чем минимально возможно :durak:
в чём косяк объясните :durak:


а вобще вот так я посылаю импульсы :)
Код:
for( i=0 ; i<10 ; i++ )
{
PORTC.2 = 1;
delay_us(100);
PORTC.2 = 0;
delay_us(100);
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 22:34 
Не в сети

Зарегистрирован: 13 окт 2005, 14:13
Сообщения: 68
Откуда: Ростов-на-Дону
Skype: hars_oleg
ФИО: Олег Харсеев
МУР что-то у тебя калькулятор глючит ))) (ничего что на ты?)
длительность импулься при частоте 36КГц составит 0,0000138 секунды, или 0,0138мс или 13,8мкс
при скважности 0,5 у тебя длительность логической единицы и нуля 6,9 мкс, что легко задается делэями, хотя лучше таймер со счетчиком прикрутить  :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 22:39 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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


блин странно
хотя я калькулятором виндовым считал...
спосибо вобщем :)
щас пойду попробую с делэем


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 22:41 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Myp писал(а):
блин чёто я запутался


если в микросекундах то так:

1000 000 / 72 000 = 13,88888....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 22:48 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Код:
for(i=0;i<10;i++)
{
PORTC.2 = 1;
delay_ms(7);
PORTC.2 = 0;
delay_ms(7);
}




неа не работает такой код
чёто не та частота, от пульта тсоп работает а от светодиода нет =/


Последний раз редактировалось Myp 14 апр 2007, 22:55, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 22:52 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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


если в микросекундах то так:

1000 000 / 72 000 = 13,88888....

Код:
for(i=0;i<10;i++)
{
PORTC.2 = 1;
delay_ms(14);
PORTC.2 = 0;
delay_ms(14);
}

частота получается 35,7 кГц должно схватыватся
но не работает тоже...
осцилографа нету немогу реальную частоту померять чтоб исправить

[off]пойду в протеусе потестю...
кстати
delay зависит от частоты кварца ???
ато у меня мега8 с заводской установкой я ещё фьюзы не ставил ибо не решил как мне хочетсо

блин
ну что такое

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

пойду спатьпожалуй ато моск отказал[/off]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 03:34 
Не в сети
Правохранитель
Аватара пользователя

Зарегистрирован: 23 фев 2007, 02:23
Сообщения: 197
Откуда: Зеленоград
Ребят, а вы бы по прерыванию таймера то зажигали светодиод для тсопа, а?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 06:18 
Не в сети

Зарегистрирован: 14 мар 2007, 12:15
Сообщения: 11
Откуда: Россия
Myp писал(а):
avr123.nm.ru писал(а):
Myp писал(а):
блин чёто я запутался


если в микросекундах то так:

1000 000 / 72 000 = 13,88888....

Код:
for(i=0;i<10;i++)
{
PORTC.2 = 1;
delay_ms(14);
PORTC.2 = 0;
delay_ms(14);
}

частота получается 35,7 кГц должно схватыватся
но не работает тоже...
осцилографа нету немогу реальную частоту померять чтоб исправить

[off]пойду в протеусе потестю...
кстати
delay зависит от частоты кварца ???
ато у меня мега8 с заводской установкой я ещё фьюзы не ставил ибо не решил как мне хочетсо

блин
ну что такое

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

пойду спатьпожалуй ато моск отказал[/off]

Да... Спать это в самый раз.
Как это из 28 миллисекунд (2 раза delay_ms(14)) получилось 35,7 кГц?
Там задержа должна быть в микросекундах...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 09:42 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Myp писал(а):
осцилографа нету немогу реальную частоту померять


Измеряй в VMLAB  - пример - avr123.nm.ru/z3.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 12:10 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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


боковая засветка  действительно  ужасная=)


в теме про моего робота можно заценить видео как это дело у меня работает=)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 13:23 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Myp писал(а):
боковая засветка  действительно  ужасная


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 16:44 
Не в сети
Аватара пользователя

Зарегистрирован: 30 сен 2006, 19:05
Сообщения: 364
Откуда: Санкт-Петербург
Так выложи окончательную схему и код, пожалуйста.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 18:33 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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

хе
ну раз просите...
ток там собсно кода то и нет никакого
и схемы тоже нету практически

вот код для отправки пачки из 10 импульсов сразу на все 3 ИК диода(на схеме нарисован одинн но можно хоть 10)
Код:
void send(void)
{
for(i=0;i<14;i++)  // количество импульсов минимум 10 но для надёжности я  думаю надо больше, но не больше 70 хотя у меня и с 14 всё отлично работает
{
PORTC.2 = 1;  // начало импульса
delay_us(14);  // задержка чтоб получить 36 кГц
PORTC.2 = 0;  // конец импульса
delay_us(14);  // пауза между импульсами чтоб получилось 36 кГц
}
}



код для приёма должен быть примерно такой
в таком варианте принимаем сигнал от 3х тсопов
Код:
void recive(void)
{
x ^= PINC.5; //если x,y или z единиса значит чёто приняли
y ^= PINC.4; //5,4,3 это ноги МК к которым подключены выходы тсопов
z ^= PINC.3;  
}


а в мэйне чтото типа этого
Код:
while(1)
{
void send();
void recive();

delay_us(500); // небольшая задержка чтоб тсоп успел расслабится и переключится в высокое состояние
             // после 1 пачки из 10 импульсов надо ждать время равное длинне минимум 14 импульсов тоесть 392 микросекунды минимум
             // в даташите правда нарисовано 600 микросекунд... наверно прозапас =)
//----опять можно посылать импульсы и принимать сигнал
void send();
void recive();
}

если после отправки тсоп сработал то на выходе тсопа будет низкий уровень который мы и считаем в x,y,z
для надёжности запускаем второй раз сканирование
и если после второго раза тоже чтото приняли значит стопудово препятствие
иначе просто помеха случайная


Вложения:
Комментарий к файлу: вот почему вобще это всё работает
ACDSee6 BMP Image.jpg
ACDSee6 BMP Image.jpg [ 22.59 КиБ | Просмотров: 2302 ]
Комментарий к файлу: а вот так выглядит моя схема
транзюк резистор и диод подбирайте по желанию.
также как и количество тсопов

ACDSee6 BMP Image.jpg
ACDSee6 BMP Image.jpg [ 18.29 КиБ | Просмотров: 2299 ]


Последний раз редактировалось Myp 05 май 2007, 16:38, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 18:48 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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


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


ужос
там вобще этот свет из всех дырок светит и засвечивае
железная бленда вокруг тсопа не помогает
по моему ик свет даже по текстолиту  распространяется как по световоду во все стороны  :evil:
надо ещё оставшиеся 2 светодиода запихивать в трубочки и законопачивать вобще всё что можно


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 19:06 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
На счет засветки это действительно полный кошмар. Кстати ТСОП будет реагировать на сигнал от пульта ДУ телевизора. Я даже если в соседнюю комнату свечу, под стол или под диван ТСОП все равно сигнал принимает.


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

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


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

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


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

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