Технический форум по робототехнике.
Digit » 10 ноя 2007, 15:03
А уверен, что пульт от телека с нужной частотой шлет?
Doniak » 10 ноя 2007, 15:44
- Код: Выделить всё • Развернуть
#include<tiny2313.h>
#include<delay.h>
void main(void){
DDRB = 0b00000001;
PORTB= 0b00000001;
DDRD = 0b01000000;
PORTD.6= 0;
PORTD.4= 0;
while(1) {
if (PIND.4==0) {
PORTD.6=1;
delay_ms(100);
}
}
}
от собсно мая прога де ножка 4 ето тсоп а ножка 6 ето светодиод. Светодиод выключен еси тсоп выдаёт ноль он загораеца после 100 милисикунд проверяется ножка тсопа. Он неразу незагорается у мну развечто всегда горит если проверять тсоп не 0 а 1 то постояно горит. пульт использую от LG телика. незная на что ставить ножку МК для тсопа Зет состояние или подтяжка через 40 кОм ?
Master » 10 ноя 2007, 17:25
Вот схема. 100% рабочая у меня светик мигает.
- Вложения
-
- image001.gif (6.87 КиБ) Просмотров: 1744
Doniak » 10 ноя 2007, 19:53
всё исправел нашол ошибку
терь работает светик от всех пультов ДУ зажигается видак ДВД плеер муз центр телик даже от мобильного телефона када пытаюсь перекинуть чтото по ИК порту
я просто мало Вольтов в схему подал, соеденил 3 по 1.5 В батареек и терь всё норм.
Мастер а зачем тебе стока разных деталей на схеме транзистор конденсаторы? я напрямую всё подсоеденил к МК и к питанию вроде пашит
steel_monkey » 10 ноя 2007, 22:37
Это все согласно даташиту( кстати, для чего каждый элемент-описано в даташите) . Вот Вы движочек еще к этому же питанию прикрутите ( особенно не самого высокого качества), и посмотрите на реакцию ТСОПа- пойдут ложные срабатывания.
Master » 11 ноя 2007, 13:53
Мастер а зачем тебе стока разных деталей на схеме транзистор конденсаторы? я напрямую всё подсоеденил к МК и к питанию вроде пашит
Как правильно написал стальной обезьянка
схема из ДШ.
И в твоем случае транзистор не нужен т. к. ИК диод у тебя в пульте, т. е. вся эта цепочка не нужна.
И вообще выложи свою схему, чет мне сдается, что там не совсем все правильно. А то потом начнешь что-то делать и будешь писать что не фурычит.
И зачем ты к МК подключал светиком мона и так мигать?
Doniak » 11 ноя 2007, 14:06
иногда срабатывает тсоп при включение питания наверно от зачем обвязка
- Вложения
-
- Схемка
- CXEMA.GIF (2.67 КиБ) Просмотров: 1722
Хуан Тортик » 25 янв 2009, 03:50
Новую тему решил не создавать про ИК датчик и напишу здесь.
Вот собрал свой первый ИК бампер, мозг - Tiny26. Зеленый светик - устройство работает, красный - есть сигнал от тсопа. Но вот какая проблема вылезла: если подносить руку к датчику резко, то четко срабатывает на 30см, а если медленно подносить руку издалека, то реагирует только на 2-3см. Че может быть за фигня
Вот мой примитивный код:
- Код: Выделить всё • Развернуть
#include <tiny26.h>
#include <delay.h>
char i;
main() {
DDRA = 0b11101111;
DDRB = 0b11111111;
PORTA =0b11011111;
PORTB = 0b00000000;
while (1) {
i=0;
while ( i < 15)
{
PORTB ^=0b00000001;
delay_us(14);
PORTB ^=0b00000001;
delay_us(14);
i++;
};
if ( PINA.4 == 0)
{
PORTA.7 = 0;
}
else
{
PORTA.7 =1;
};
delay_us(600);
};
}
А вот схема:
- Вложения
-
- Схема
- .GIF (3.56 КиБ) Просмотров: 1564
Хуан Тортик » 26 янв 2009, 19:26
эээ... Мне кто-нибудь ответит?
EdGull » 26 янв 2009, 19:30
я конечно не Сишник, но вроде как для обычного человека 600 микросекунд тяжеловато будет заметить...
или ты супермэн?
Хуан Тортик » 26 янв 2009, 19:58
Причем тут "заметить" ? 600 микросекунд - это пауза между импульсами, подаваемыми на ик светодиод
EdGull » 26 янв 2009, 20:01
а какова тогда длительность его свечения?
Хуан Тортик » 26 янв 2009, 20:19
Тот же код, но с комментариями:
- Код: Выделить всё • Развернуть
#include <tiny26.h>
#include <delay.h>
char i;
main() {
DDRA = 0b11101111; //конфигурация портов
DDRB = 0b11111111;
PORTA =0b11011111;
PORTB = 0b00000000;
while (1) {
i=0;
while ( i < 15) //цикл подачи пачки импульсов ик светодиодом
{
PORTB ^=0b00000001; // начало импульса
delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTB ^=0b00000001; // конец импульса
delay_us(14); // задержка между импульсами
i++;
};
if ( PINA.4 == 0) // проверка: если на ноге PA4 (к ней TSOP подключен) ноль (есть сигнал)
{
PORTA.7 = 0; // то зажигаем красный светик
}
else // если нет сигнала
{
PORTA.7 =1; // то красный светик не зажигаем/тушим после последнего включения
};
delay_us(600); //пауза между пачками импульсов
};
}
EdGull » 26 янв 2009, 20:21
так и какова тогда длительность свечения светодиода?
Хуан Тортик » 26 янв 2009, 20:28
Какого светика?
ИК: посылает пачки из 15 периодов (14мкс горит, 14мкс не горит), затем 600 мкс не горит (пауза между пачками)
Зеленый: горит все время, пока работает контроллер
Красный(сигнализирует о препятствии): зажигается при появлении сигнала от TSOPа, тушится при его исчезновении