Страниц (4): « 1 [2] 3 4 » |
  |
Описание: Робот -танк |
Поиск в теме | Версия для печати |
nestandart  |
Отправлено: 18 Октября, 2011 - 20:25:24
|

Супер-модератор

Сообщений всего: 1490
Дата рег-ции: Сент. 2010
|
Цитата:А у Вас есть схема?
Схему рисовать не на чем.
Цитата:они горят постоянно?
Они грят постоянно с частотой 36КГЦ.
Цитата:2 ик светодиода не описываются в void setup?
Ставте один светодиод , просто у меня они запаралелены.
Для понимания пока не ставьте транзистор .
Частота выдается на пин 9 , к этому пину подключаете ИК светодиод
(через резистор 100-220 ОМ).
Все , ИК светодиод у вас мерцает с частотой 36КГц.
Далее ловите это дело опросм пина к кторому подключен TSOP.
Если отраженный сигнал поступает на TSOP , то на этом пине будет лог 0 ,
если нет - лог 1.
Дальность такого датчика составит 5-10 см.
Чтобы ее увеличить уменьшите номинал резистора на светодиоде.(Отредактировано автором: 18 Октября, 2011 - 20:29:30) |
|
|
nestandart  |
Отправлено: 18 Октября, 2011 - 20:43:36
|

Супер-модератор

Сообщений всего: 1490
Дата рег-ции: Сент. 2010
|
Цитата:только частота там не программно задается?
Именно так , частоту там задает микросхема.
И декодирует частоту в прямой сигнал другая микросхема.
Цитата:А если использовать например myTsoper, так код будет такой же?
Не имеет смысла городить myTsoper если вы используете МК.
А код там будет еще проще , частоту там генерировать не нужно , нужно только принять
сигнал с TSOPа.
Цитата:Как-то очень простенько.
Это самый простой пример .
Не надейтесь что дальше будет так же просто.
Мой датчик реагирует на энергосберегающие лампы и яркое солнце.
Сейчас я работаю над модуляцией ИК частоты (наложение одной частоты на другую).
Кстати этим же датчиком можно принимать сигналы с ИК ДУ пультов , только программа там значительно сложнее.
Вот вам для ознакомления .
Управление тем же роботом с ИК ДУ пульта.
(вперед , назад , влево , вправо)
CODE:
unsigned long val=0;
unsigned long val2=0;
unsigned long val3=0;
unsigned long val4=0;
unsigned long val5=0;
unsigned long val6=0;
unsigned long val7=0;
unsigned long val8=0;
#include <Servo.h>
Servo myservo;
void setup()
{
pinMode(19,INPUT);
pinMode(1,INPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
myservo.attach(5);
}
void loop()
{
if(pulseIn(2,LOW)<1)
{
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(13,LOW);
}
val=pulseIn(2,LOW);
val=(val/1000);
if(val==2)
{
val2=pulseIn(2,LOW);
val3=pulseIn(2,LOW);
val4=pulseIn(2,LOW);
val5=pulseIn(2,LOW);
val6=pulseIn(2,LOW);
val7=pulseIn(2,LOW);
val8=pulseIn(2,LOW);
if((val2/1000)==0&&(val3/1000)==0&&(val4/1000)==1&&(val5/1000)==0&&
(val6/1000)==1&&(val7/1000)==1&&(val8/1000)==1)
{
digitalWrite(13,HIGH);//вперд
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
}
if((val2/1000)==0&&(val3/1000)==0&&(val4/1000)==1&&
(val5/1000)==0&&(val6/1000)==1&&(val7/1000)==1&&(val8/1000)==0)
{
digitalWrite(13,LOW);//вправо
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
}
if((val2/1000)==1&&(val3/1000)==1&&(val4/1000)==0&&
(val5/1000)==0&&(val6/1000)==1&&(val7/1000)==1&&(val8/1000)==0)
{
digitalWrite(13,HIGH);//лево
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
}
if((val2/1000)==1&&(val3/1000)==0&&(val4/1000)==1&&
(val5/1000)==0&&(val6/1000)==1&&(val7/1000)==1&&(val8/1000)==1)
{
digitalWrite(13,LOW);//назад
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
}
}
}
|
|
|
nestandart  |
Отправлено: 18 Октября, 2011 - 21:15:29
|

Супер-модератор

Сообщений всего: 1490
Дата рег-ции: Сент. 2010
|
Цитата:А у Вас сделан бампер примерно по такой схеме?
Нет , у меня гораздо проще.
Половина этой схемы это это защита TSOPа по питанию и сглаживание ложных сигналов.
Уменя этого нет (хотя наверно должно быть).
Вторая половина почти как у меня
(только там добавлен переменный резистор для регулировки дальности обнаружения
и кондер на питании).
Светодиоды включаются через мосфет .
Можете собрать и этот датчик , он тоже должен работать.
Цитата:что за другая микросхема?
К155АГ3
На ней собран одновибратор (выпрямитель импульсов).
(Добавление)
Цитата:Там еще есть модуль аппаратного генератора, стоит его городить или пока можно обойтись програмным генерированием?
Повторяю еще раз .
Если у вас есть возможность генерировать частоту програмно , то зачем делать
то же самое на отдельной микросхеме ? |
|
|
nestandart  |
Отправлено: 18 Октября, 2011 - 21:38:33
|

Супер-модератор

Сообщений всего: 1490
Дата рег-ции: Сент. 2010
|
Цитата:затем что пока мы генерим частоту программно- мы не можем отслеживать сигнал от бампера.
1. Это почему ?
2. Это и не нужно . TSOP опрашивается в строго определенные моменты программы.
А прерывание там ... несколько для другой цели.
Цитата:мы не можем точно знать, что это за сигнал, наш или нет, наш то програмный генератор в это время стоял?
Я собираюсь гнать частотные импульсы определенной длинны.
Поймали импульс - измерили длинну - если совпала с эталонной то импальс свой , если нет -чужой (врядли что то внешнее будет намерено гнать импульсы той же длинны на той же несущей частоте).
Пульт то , вроде , нормально реализован .
На незапрограмированые кнопки пульта робот не реагирует.
(Добавление)
Цитата:А для чего К155АГ3 в бампере. Чот я там его не вижу
Вы про какой бампер сейчас говорите ?
Если myTSOPer , то она там есть.(Отредактировано автором: 18 Октября, 2011 - 21:39:37) |
|
|
|
Поиск в теме | Версия для печати |
Страниц (4): « 1 [2] 3 4 » |
« Делаем роботов » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
  |
|
|
|