komstomtymt
1

ИК приемник-передатчик. Проблем

18.03.2011, 19:29. Показов 6886. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Стоит такая задача сделать ИК бампер для определения препятствия, для отправки сигнала используется ИК диод, а для приема приемник IRM8601S.
посылку и прием пытаюсь осуществить вот этой функцией
Код
ISR(TIMER0_OVF_vect)
{
if (TM_count == 1)
{
TCNT0 = 255-75;
sei();
TM_count = 2;
while(1)
{
IR_LED_PORT &= ~(1<<IR_LED);
_delay_us(time);
IR_LED_PORT |= 1<<IR_LED;
_delay_us(time);
}
}
if (TM_count == 2)
{
TCNT0 = 255-75;
sei();
TM_count = 1;
while(1)
{
if((IR_RES_PIN&(1<<IR_RES))!=0)
{
S1_LED_PORT |= 1<<S1_LED;
S0_LED_PORT &= ~(1<<S0_LED);
cli();
work();
}
else
{
S0_LED_PORT |= 1<<S0_LED;
S1_LED_PORT &=~(1<<S1_LED);
}
}
}
}
в чем проблема не знаю, но код не работает.
прошу помощи в создании алгоритма.
datasheet на IRM8601S и проект для Студии в архиве
[252.16 Кб]

заранее спасибо.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2011, 19:29
Ответы с готовыми решениями:

Передатчик-приемник
Не получается связать передатчик и приемник. Смущает то что на передатчики отсутствует катушка в 3...

Atmega8 и 433Mhz передатчик и приемник
Вобщем такая беда. Есть 2 атмеги8, одна приемник ,другая передатчик,работают на частоте 12.8Mhz от...

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

Передатчик и приемник (помогите с выбором)
Приветствую господа ! Есть задача на максимально возможном расстоянии (2-5 км) в пределах...

Передатчик приемник 100м дальности
Подскажите, пожалуйста, схему приемника и передатчика на 100м по открытому пространству. Очень...

5
0 / 0 / 0
Регистрация: 17.12.2010
Сообщений: 62
21.03.2011, 12:11 2
Цитата Сообщение от komstomtymt
Доброго времени суток!
в чем проблема не знаю, но код не работает.
прошу помощи в создании алгоритма.
datasheet на IRM8601S и проект для Студии в архиве
Вложение:
Irdemo2.rar
заранее спасибо.

Логика какая то странная. То есть ты в одном прерывании сначала включаешь лампу потом отключаешь. и заем пытаешся что то уловить датчиком.
Лучше сделать детектор на отдельном, физическом прерывании, независимом от таймера. а в таймере сохратять время старта.
И последнее. Работать ето должно быстрее скорости света - ведь растояние меряется не от земли до луны и реагировать должно мгновенно.
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
21.03.2011, 18:46 3
Если надо просто определить "есть стена"/"нет стены", то все примитивно:
-Включаем свет. Надо не просто включить, но мигать с определенной частотой (несущая - 36кГц, 38кГц, тыды). Можно сделать на ШИМ.
-Чуть ждем (примерно 10-20 циклов несущей), чтобы приемник мог поймать отраженный сигнал.
-Проверяем выход с приемника. Если поймал сигнал, значит - "есть стена" :)
0
komstomtymt
30.03.2011, 20:09 4
Спасибо за ответы,очень помогли, извиняюсь что раньше не написал, навалилась много учебы. Проблема решена, действительно процесс очень быстрый, поэтому пришлось переделать алгоритм.
Итак выкладываю свое решение, мало ли кому то пригодится и будет полезным =)
Код
#include <avr/io.h>
#include <avr/interrupt.h>

#include "def_irdemo3.h"

ISR(TIMER0_OVF_vect){         // обработчик прерывание таймера
IR_LED_PORT^=1<<IR_LED;      // осуществляющего задержку и мигание IR дилдом
TCNT0=time;               // время задержки
}

int main(){
IR_LED_DDR |= 1<<IR_LED;   // определям нужные порты на выход
S0_LED_DDR |= 1<<S0_LED;
S1_LED_DDR |= 1<<S1_LED;

IR_RES_DDR &=~(1<<IR_RES);   // и на вход для получение результатов
IR_RES_PORT |= 1<<IR_RES;

TCCR0 = 1<<CS00|1<<CS01|0<<CS02;   // настраеваем предделитель таймера
TIMSK = 1<<TOIE0|0<<OCIE0;         // разрешаем приревание по переполнению
TCNT0 = time;
sei();

while(1){                        // в отладочном варианте бесконечный цикл
if((IR_RES_PIN&(1<<IR_RES))==0){   // если датчик принял сигнал
cli();                     // запрещяем прирывание, перестаем мигать
S0_LED_PORT |= 1<<S0_LED;      // зажигаем сигнальный диод
//briok;                  // и выходим из цикла
}

}

}
Регулировать расстояние можно путем изменение времени задержки (увеличиваем время уменьшаем расстояние).

и проект целиком
[9.67 Кб]
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
30.03.2011, 20:22 5
Тестил? Как ведет себя с разными поверхностями? (цвет, материал)
0
komstomtymt
31.03.2011, 02:17 6
потестил и привожу результаты с разными поверхностями, какие только смог найти дома
мерил примерное максимальное расстояние на котором определялось препятствие, получились вот такие результаты:
материал: лист белой буниги, прим растояние 15см
материал: рука, 8см
материал: черная кожанная папка, практически не ловит
материал: зеркало, 35 см
материал: страница из журнала хакер, 15 см
материал: глянцывая фото бунига, 15-18 см
материал: белая хлопкавая ткань, 12 см
материал: красная бунига, 15-18 см
материал: зеленая бунига, 15-18см
материал: желтая бунига, 15-18 см
материал: коврик от мыши, 12 см
материал: текстолит, 9 см
материал: медь на текстолите, 35 см
материал: фанера, 16 см
Как уже писал выше регулировать расстояние можно либо изменять сопротивление около диода или изменять частоту мигание диода путем изменение задержки. При изменении одного из этих параметров расстояние меняется у всех материалов примерно на одинаковую величину.
31.03.2011, 02:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2011, 02:17
Помогаю со студенческими работами здесь

Радио приёмник и передатчик arduino
Приветствую, недавно купил передатчик FS1000A и приёмник MX-RM-5V, от ардуино. Вот на этом сайте...

Собрать СВЧ передатчик и приёмник
Хочу собрать СВЧ передатчик и приёмник к нему. В качестве модулятора будет выступать...

Простой приемник и передатчик на микроконтроллере Atmega8
Далек от радиоэлектроники, но нужно для курсовой создать приемник и передатчик на микроконтроллере....

Выбор типа пары Приемник-Передатчик
Всем привет! Есть устройство, которым хочу управлять посредством брелока, имеющим три кнопки, с...

FM передатчик
Решил сделать FM передатчик на 10,7 мгц - промежуточная частота многих приемников, чтобы принимали...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru