уже 3 перепробовал
и ничего
31. rain_cbc - 06 Февраля, 2010 - 21:19:18 - перейти к сообщению
32. nest - 06 Февраля, 2010 - 21:34:43 - перейти к сообщению
а как вы видите "срабатывание" фототранзистора ?
замерте напряжение между коллектором фототранзистора и ПЛЮСОМ источника питания в затемнённом и осветлённом "положении", сколько ?
замерте напряжение между коллектором фототранзистора и ПЛЮСОМ источника питания в затемнённом и осветлённом "положении", сколько ?
33. rain_cbc - 06 Февраля, 2010 - 21:51:58 - перейти к сообщению
навожу его на лампу в прямую....потому что ничего не происходит если не навести на яркий свет.....напряжение в темноте 4.14 при срабатывании 0.09
34. nest - 06 Февраля, 2010 - 21:55:26 - перейти к сообщению
rain_cbc, подключите резистор 50-100 кОм между коллектором и плюсом питания.
35. rain_cbc - 06 Февраля, 2010 - 22:03:44 - перейти к сообщению
типа вот так?
36. nest - 06 Февраля, 2010 - 22:36:30 - перейти к сообщению
rain_cbc пишет:
"ничего" - в смысле поведение моторчика не меняется?потому что ничего не происходит если не навести на яркий свет
вот так. только не 50 Ом, а 50..100 кОм (любой от 50 кОм до 100 кОм)
37. rain_cbc - 10 Февраля, 2010 - 17:25:41 - перейти к сообщению
можно глупый вопросик?это типа ножка выхода к мк?
38. nest - 10 Февраля, 2010 - 19:05:08 - перейти к сообщению
rain_cbc, в общем - да.
39. rain_cbc - 26 Февраля, 2010 - 22:45:56 - перейти к сообщению
есть вопрос)пытаюсь подружить вот это http://myrobot.ru/stepbystep/r_firstbot1.php
с вот этим http://robozone.su/2008/04/22/mo...ratora-dlja.html
http://robozone.su/mrc28/19-modul-ik-datchika-na-osnove-tsop2136.html
возникает много вопросов.....по идее в мк как я понимаю должно быть задействовано 2 ножки....1 по которой передается программа с подачей импульсов...а вторая для приема состояния тсопа....но там вроди идет только 1 ножка.почему так?или я чтото не правельно понимаю?
подключал как там показано но не подсоединял к мк просто питание подавал заметил такую штуку...когда препятствия нету на out тсопа показывает гдето 2.85,когда приближаеш преграду ничего не происходит.....но когда она поевляется рывкон(очень быстро) тогда падает около -2.8
кто-то может подсказать как мне это все привести в порядок?
с вот этим http://robozone.su/2008/04/22/mo...ratora-dlja.html
http://robozone.su/mrc28/19-modul-ik-datchika-na-osnove-tsop2136.html
возникает много вопросов.....по идее в мк как я понимаю должно быть задействовано 2 ножки....1 по которой передается программа с подачей импульсов...а вторая для приема состояния тсопа....но там вроди идет только 1 ножка.почему так?или я чтото не правельно понимаю?
подключал как там показано но не подсоединял к мк просто питание подавал заметил такую штуку...когда препятствия нету на out тсопа показывает гдето 2.85,когда приближаеш преграду ничего не происходит.....но когда она поевляется рывкон(очень быстро) тогда падает около -2.8
кто-то может подсказать как мне это все привести в порядок?
40. ОЛЕГ - 27 Февраля, 2010 - 01:08:32 - перейти к сообщению
rain_cbc пишет:
когда препятствия нету на out тсопа показывает гдето 2.85,когда приближаеш преграду ничего не происходит.....но когда она поевляется рывкон(очень быстро) тогда падает около -2.8
кто-то может подсказать как мне это все привести в порядок?
кто-то может подсказать как мне это все привести в порядок?
Все точно так и происходит. Сигнал нужно слать пачками, тогда все будет в порядке.
Если у Вас есть МК, зачем тогда использовать внешний генератор?
Какую программу и куда Вы хотите передавать?
Нарисуйте схематично (просто блоками, где что происходит и что на что влияет), как Вы себе представляете согласование устройств, ссылки на которые Вы привели.
41. rain_cbc - 01 Марта, 2010 - 20:18:57 - перейти к сообщению
я хотел сделать бампер))тоесть насколько теперь понял то сигнал можно генерировать мк не подключая гениратор?
если все так как понял то должно быть так?:
если все так как понял то должно быть так?:
42. nest - 01 Марта, 2010 - 20:37:56 - перейти к сообщению
если есть МК, то тогда уж так:
43. rain_cbc - 01 Марта, 2010 - 21:05:51 - перейти к сообщению
ну да....на моем рисунке ик датчик это http://robozone.su/mrc28/19-modu...ve-tsop2136.html
я в програмировании еще полный чайник...поэтому нашол похожий код и немного его переделал...он компилируется но ничего не происходит((((кто-то может подсказать в чем проблема?
вот код
#include <avr/io.h>
#include <avr/delay.h>
int main( void )
{
//конфигурация портов
DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы
while( 1 )
{
//цикл подачи пачки импульсов ик светодиодом
for( char i = 0; i < 30; i++ )
{
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
}
PORTD &= ~0x01;
if(!(PINC & (1<<PINC5))) // проверка: если на ноге PC5 (к ней TSOP подключен) ноль (есть сигнал)
{
PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
}
else // если нет сигнала
{
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC |= _BV(PC2); // установить "1" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC |= _BV(PC4); // установить "1" на линии 4 порта C
}
_delay_us( 1000 ); //пауза между пачками импульсов
}
return 0;
}
я в програмировании еще полный чайник...поэтому нашол похожий код и немного его переделал...он компилируется но ничего не происходит((((кто-то может подсказать в чем проблема?
вот код
#include <avr/io.h>
#include <avr/delay.h>
int main( void )
{
//конфигурация портов
DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы
while( 1 )
{
//цикл подачи пачки импульсов ик светодиодом
for( char i = 0; i < 30; i++ )
{
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
}
PORTD &= ~0x01;
if(!(PINC & (1<<PINC5))) // проверка: если на ноге PC5 (к ней TSOP подключен) ноль (есть сигнал)
{
PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
}
else // если нет сигнала
{
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC |= _BV(PC2); // установить "1" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC |= _BV(PC4); // установить "1" на линии 4 порта C
}
_delay_us( 1000 ); //пауза между пачками импульсов
}
return 0;
}
44. ОЛЕГ - 01 Марта, 2010 - 23:06:09 - перейти к сообщению
rain_cbc пишет:
for( char i = 0; i < 30; i++ )
{
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
}
PORTD &= ~0x01;
{
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
}
PORTD &= ~0x01;
Так не получится.
Раз Вы решили поступить таким образом, то тогда лучше вот так:
CODE:
for( char i = 0; i < 30; i++ )
{
PORTD &= ~0x01;
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
_delay_us(14);
}
for( char i = 0; i < 30; i++ )
{
PORTD &= ~0x01;
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
_delay_us(14);
}
Мне кажется, Вам придется поиграть задержкой для того, чтобы поточнее подстроить частоту.
И следует обратить внимание, что после генерации очередной пачки МК должен успеть "метнуться" к TSOP, а на том все еще должен быть "0".
И я не уверен по поводу _delay_us(14);
45. nest - 01 Марта, 2010 - 23:11:08 - перейти к сообщению
ОЛЕГ пишет:
или завести его на прерывание.после генерации очередной пачки МК должен успеть "метнуться" к TSOP, а на том все еще должен быть "0"
Весь алгоритм с пояснениями (хоть и почти на асм) с использованием прерывания и всеми расчётами я уже приводил как то :) >>>