Страница 1 из 1

Датчик препятствия на TSOP

Добавлено: Вс дек 16, 2007 12:51:36
Necto
Приветствую.
Спаял схему как в http://parts.roboclub.ru/index.shtml?ik, только вместо Tiny поставил Atmeg(она же - главный мозг для будущей остальной перифирии).
Так вот: мигаю ИК диодом, пытаюсь поймать TSOP1738 Не ловится, даже при касании линз :( . ИК светодиод моргает - видно через камеру на телефоне, но частоту померять не могу. Если насильно установить 0 на выходе TSOP-а (замкнуть "сигнальную" ножку и землю), датчик срабатывает - светодиод(индикатор) гаснет. Ни на какие из имеющихся в доме пультов не реагирует.
Частоту генерирую так:

Код: Выделить всё

#define FCPU = 1000000UL
//...
int per = 1000000/38000;
//...
 for (int i = 0; i < 19; ++i)
 {
  PORTC |= _BV(PC5);
  _delay_us (per);
  PORTC &= ~_BV(PC5);
  _delay_us (per);
 }
//...

Подскажите как проверить TSOP, и в чём ещё может быть заквоздка?
Если надо, могу привести весь исходник.

Добавлено: Вс дек 16, 2007 18:08:20
ARV
уже 100000 раз говорилось, что TSOP видит не просто ИК-свет, а промодулированный сигнал... так что мигать ИК-светодиодом надо с частотой 38000 Гц, только тогда твой датчик его обнаружит... а ты мигаешь с частотой в 2 раза меньше...

Добавлено: Пн дек 17, 2007 18:02:23
Necto
Однако, при замене строчки

Код: Выделить всё

int per = (1000000/38000); 
На

Код: Выделить всё

int per = (1000000/38000)/2;
Внешнее поведение устройства не меняется.TSOP не реагирует.

Добавлено: Пн дек 17, 2007 22:53:59
john_rise
Для получения нужной частоты, воспользуйтесь таймером. И в соответствии с вашими командами включайте/выключайте генерацию частоты на выводе МК.