Перейти к содержанию
    

тогда заранее извиняюсь перед администрацией что спрошу здесь два вопроса. Как вывести на порты PB0 и PB1 (именно эти) на контроллере atmega16 при работе от внутреннего генератора на 4 мегагерца 36 килогерц. и второй. когда луч будет попадать на tsop на выводе мк хватит опроса if (PIND.1==0) { программа else { ничего не делать }}? Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда заранее извиняюсь перед администрацией что спрошу здесь два вопроса. Как вывести на порты PB0 и PB1 (именно эти) на контроллере atmega16 при работе от внутреннего генератора на 4 мегагерца 36 килогерц. и второй. когда луч будет попадать на tsop на выводе мк хватит опроса if (PIND.1==0) { программа else { ничего не делать }}? Спасибо.

 

1. Эти выводы не задействованы напрямую таймером , поэтому Вам придётся использовать прерывания и в ручную переключать один из этих пинов для формирования 36 кгц.

2. Смотря какое расстояние будет в итоге. Может и придётся буфер ставить . Соберите на макетке LED и приемник, на выход приёмника 5 метров провода и посмотрите что получится на другом конце

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Led и приемник уже собрал, щас добавлю 5 метров провода. Led подключил к PINB.3 так как он вроде как связан с таймером. Далее сам код для передатчика

#include<mega16.h> 

void main (void){

DDRB.3=1;

ASSR=0x00;

TCCR0=0x19;

TCNT0=0x00;

OCR0=110;

while(1);

}

 

Частота процессора 8 мегагерц. Правильно ли я делаю?

Одно только непонятно, зачем 5 метров провода на выходе датчика.?

длину между датчиком и приемником в месте установки замерял, максимальная 2.5 метра

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Led и приемник уже собрал, щас добавлю 5 метров провода. Led подключил к PINB.3 так как он вроде как связан с таймером. Далее сам код для передатчика

#include<mega16.h>

void main (void){

DDRB.3=1;

ASSR=0x00;

TCCR0=0x19;

TCNT0=0x00;

OCR0=110;

while(1);

}

 

Частота процессора 8 мегагерц. Правильно ли я делаю?

Одно только непонятно, зачем 5 метров провода на выходе датчика.?

длину между датчиком и приемником в месте установки замерял, максимальная 2.5 метра

 

Вы в посте написали 5 метров

 

ASSR=0x80;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а если между самим датчиком TSOP и самим контроллером будет провод 10 метров допустим. ну чтобы выносить датчик куда либо от самой платы. Рисунок прилагаю

 

Еще подскажите если при расчете OCR0 получается число 54.5 то округлять к 54 или 55 ?

post-67350-1319829994_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что то вы там все мудрите)))

Модулируете передатчик допустим контроллером. На приемнике ловите сигнал и обрабатываете.

Чтобы приемник не "затыкался" постоянной частотой, ее(частоту 36кГц) нужно давать пачками , скажем с периодом 1кГц.

С выхода TSOP у вас будет меандр 1кГц. Вот по наличию этого мендра вы и будите контроллером оценивать присутствие объекта в зоне излучения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что то вы там все мудрите)))

Модулируете передатчик допустим контроллером. На приемнике ловите сигнал и обрабатываете.

Чтобы приемник не "затыкался" постоянной частотой, ее(частоту 36кГц) нужно давать пачками , скажем с периодом 1кГц.

С выхода TSOP у вас будет меандр 1кГц. Вот по наличию этого мендра вы и будите контроллером оценивать присутствие объекта в зоне излучения.

 

Подскажите пожалуйста как давать ее пачками.

#include<mega16.h>

void main (void){

DDRB.3=1;

ASSR=0x80;

TCCR0=0x19;

TCNT0=0x00;

OCR0=110;

while(1);

}

Как я понял в этом варианте будет постоянно 36 кГц давать на ножку 3 порта B. порылся в интернете,ничего не нашел по этому поводу

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Собрал вся конструкцию, на atmega16 , на PORTB.3 модулирую сигнал кодом выше, на ИК диод через резистор 100 ом. Принимаю Tsop1836 выводы GND на массу, VCC через 220 ом на питание, OUT на ногу МК PINA.0

Далее направил ик диод на Tsop. Программа состоит в следующем, если луч между ик диодом и TSOP прерывается, то загорается сетодиод на PORTD.1

 

if (PINA.0==1){

PORTD.1==1;

else{

PORTD.1==0

}

}

 

Включил, не работает. На сколько я понимаю я не правильно принимаю сигнал. Подскажите что не так

Изменено пользователем ururur

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полностью убежден, что человеку лучше давать удочку, а не рыбу!

Для начала вам надо правильно сформировать сигнал. Я Вам уже писал что приемник начнет "захлебыватся" несущей. Сконцентрируйтесь на правильном источнике сигнала, а потом проконтролируйте наличие сигнала на выходе TSOP. А уж потом беритесь за реализацию программной части на приемнике.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

значит из последнего эксперимента получилось вот что. На расстоянии пол метра направлен ик диод на тсоп. Меряю на выходе тсопа напряжение. один конец на выход , другой на + . Показывает 0.03 вольта. Если закрыть ик диод и потом убрать руку то на Tsop Напряжение подпрыгивает до 4.5 вольта и опять 0.03. При изменении расстояния разницы никакой.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

значит из последнего эксперимента получилось вот что. На расстоянии пол метра направлен ик диод на тсоп. Меряю на выходе тсопа напряжение. один конец на выход , другой на + . Показывает 0.03 вольта. Если закрыть ик диод и потом убрать руку то на Tsop Напряжение подпрыгивает до 4.5 вольта и опять 0.03. При изменении расстояния разницы никакой.

 

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

 

36 - это несущая. Вам надо сформировать одиночный импульс длительностью 1ms и заполнить его этой частототой. Bcё делается на одном таймере. Один канал формирует 36 , второй 2ms - 500 гц

В момент положительной или отрицательной длительности импульса разрешить выход 36 кгц

Посмотрите - модулятор в инете

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда на выходе TSOP получится не постоянная единица, и придется ее обрабатывать?

вот так допустим нельзя пачковать сигнал

 

TCCR0=0x19;

delay_ms(1);

TCCR0=0x00;

delay_ms(1);

 

 

Вообще в том варианте когда пересекаешь луч , при прыжке на ножке мк все работает(цикл запускается), но просто не думаю то так надежно и правильно

Изменено пользователем ururur

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я программы писать не умею, поэтому по коду ничего не скажу.

Но по части железа... я бы сделал синхронный детектор, например как на приложенном рисунке.

На U1.a,U1,b собран мультивибратор. Он подает на LED импульсы, и эти же импульсы открывают аналоговый ключ U3. Поскольку такой детектор пропускает не только импульсы основной частоты, но и все кратные гармоники, необходим аналоговый полосовой фильтр на операционнике U2a, U2b.

U1 - любой логический элемент, например 74HC02, 74HC03, 74HC04, и т д

U3 - например FST3126

U2 - операционник работающий от 5V и подходящий по частоте.

Удачи!

post-37440-1319999586_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще в том варианте когда пересекаешь луч , при прыжке на ножке мк все работает(цикл запускается), но просто не думаю то так надежно и правильно

 

 

1. Постоянный уровенть в системах охраны - это плохо - всегда можно обойти .

2. Импульсный сигнал - постоянная проверка на "вшивость" самой системы и посчитайте с какой скоростью человек пройдет этот барьер по сравнению с пулей. Каким сигналом можно пренебречь ,а на какой отреагировать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...