Пульт вскрыл увидел что там "нормальной микросхеме" вот фото пульта и фото микросхемы
LT1338N на нее дотащит не нашел
http://www.imghost.in/images/bp3...s7puycyypko.jpeg
http://www.imghost.in/images/0i0...ruxu0apfftd.jpeg
16. alex91 - 23 Сентября, 2010 - 22:12:52 - перейти к сообщению
17. nest - 23 Сентября, 2010 - 22:23:43 - перейти к сообщению
LT1388 вообще то.
упоминается тут
Можете там где нибудь и поинтересоваться, что за кодировка у этого пульта. Телевизионщики вообще уже по внешнему виду пульта скажут
Ну или просто перепробуйте остальные пульты.
упоминается тут
Можете там где нибудь и поинтересоваться, что за кодировка у этого пульта. Телевизионщики вообще уже по внешнему виду пульта скажут
Ну или просто перепробуйте остальные пульты.
18. alex91 - 23 Сентября, 2010 - 22:40:07 - перейти к сообщению
nest спасибо проглядел
я поинтересовался, даже если он не rc-5 завтра на барахолке куплю еще несколько пультов разных производителей
я поинтересовался, даже если он не rc-5 завтра на барахолке куплю еще несколько пультов разных производителей
19. mihail - 23 Сентября, 2010 - 22:55:12 - перейти к сообщению
В архиве программа для ATmega8535. Переделать эту программу под ATtiny2313 выше моих сил Светодиоды припаивайте к порту А или С.
20. alex91 - 24 Сентября, 2010 - 00:00:41 - перейти к сообщению
mihailспасибо большое сейчас опробую
(Добавление)
Вот зараза не работает
Наверно все же этот пульт не RC-5
Сегодня уже утром придется парочку других купить
подключил светодиоды к портам PAO-7 а TSOP к порту PD3
порт AVCC подсоединил к +5в
(Добавление)
Вот зараза не работает
Наверно все же этот пульт не RC-5
Сегодня уже утром придется парочку других купить
подключил светодиоды к портам PAO-7 а TSOP к порту PD3
порт AVCC подсоединил к +5в
21. mihail - 24 Сентября, 2010 - 01:41:56 - перейти к сообщению
Не знаю, что и сказать. Схема, вроде, соответствует программе. Программу я почти не менял. Правда, после более близкого знакомства с ней, она мне не понравилась. Микроконтроллер точно на 8 мегагерцах работает? TSOP на пульт с большого расстояния реагирует?
(Добавление)
Есть программа для RC5 написанная самими ATMELовцами (AVR410: RC5 IR Remote Control Receiver). Но она на ассемблере
(Добавление)
Есть программа для RC5 написанная самими ATMELовцами (AVR410: RC5 IR Remote Control Receiver). Но она на ассемблере
22. alex91 - 24 Сентября, 2010 - 01:59:13 - перейти к сообщению
микроконтроллер выставлен по этим фьюзам
http://myrobot.ru/forum/topic.ph...13&topic=318
на пульт устройство вообще не как не реагирует
Ничего, может утром разберусь с другими пультами
http://myrobot.ru/forum/topic.ph...13&topic=318
на пульт устройство вообще не как не реагирует
Ничего, может утром разберусь с другими пультами
23. mihail - 24 Сентября, 2010 - 02:22:25 - перейти к сообщению
alex91 пишет:
Я имел ввиду свою "универсальную" программу. Расстояние реакции на пульт должно быть большим (метров 5).на пульт устройство вообще не как не реагируе
alex91, EEPROM записать не забыли?
24. mihail - 24 Сентября, 2010 - 05:18:25 - перейти к сообщению
Изобрел я велосипед alex91, проверьте. Если работает, напишите. Я из за этого велосипеда уснуть не могу
/* ************************************
RC5
************************************* */
#include <avr/io.h>
#include <util/delay.h>
int main(void) /* начало основной программы */
{
DDRA = 0xff; /* порт A сконфигурировать как выход */
PORTA = 0x00; /* установить "0" на всех выводах порта A */
DDRD &= (~(1<<3)); /* PD3 сконфигурировать как вход, TSOP */
PORTD |= (1<<3); /* установить "1" на PD3, включаем подтягивающий резистор */
volatile unsigned char byte_high;
volatile unsigned char byte_low;
while(1) /* бесконечный цикл */
{
byte_high = 0;
byte_low = 0;
while( PIND & (1<<3) ); /* проверка TSOP */
_delay_us(200); /* задержка */
if( !(PIND & (1<<3)) ) byte_high += 32;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_high += 16;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_high += 8;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_high += 4;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_high += 2;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_high += 1;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_low += 128;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_low += 64;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_low += 32;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_low += 16;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_low += 8;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_low += 4;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_low += 2;
_delay_us(1778); /* задержка */
if( !(PIND & (1<<3)) ) byte_low += 1;
_delay_ms(40); /* задержка */
PORTA = byte_low; /* вывести младший байт на порт A */
} /* закрывающая скобка бесконечного цикла */
return 0;
} /* закрывающая скобка основной программы */
25. alex91 - 24 Сентября, 2010 - 11:28:15 - перейти к сообщению
я вообще привык программировать микроконтроллер программой понипрог
и открываю программу и файл и программирую сразу и flach и eeprom
а от первой программы видит где-та на 7 метров зажигает светодиод
спасибо вам большое сейчас попробую последнюю программу
(Добавление)
работает
Работает значит так
если нажимать на кнопку 2 пульта то зажигаются только два светодиода PA3 и PA6
остальные светодиоды включаются если нажать на кнопку 1 и держать тогда светодиоды
PA0-PA7 зажигаются поочередно с большой скоростью
Если нажать на кнопку 0 пульта то также зажигаются PA3 и PA6 и если еще раз нажать то PA3 будет гореть постоянно а PA6 только при нажатии а если держать кнопку 0 они медленно зажигаются поочередно PA0-PA7
и открываю программу и файл и программирую сразу и flach и eeprom
а от первой программы видит где-та на 7 метров зажигает светодиод
спасибо вам большое сейчас попробую последнюю программу
(Добавление)
работает
Работает значит так
если нажимать на кнопку 2 пульта то зажигаются только два светодиода PA3 и PA6
остальные светодиоды включаются если нажать на кнопку 1 и держать тогда светодиоды
PA0-PA7 зажигаются поочередно с большой скоростью
Если нажать на кнопку 0 пульта то также зажигаются PA3 и PA6 и если еще раз нажать то PA3 будет гореть постоянно а PA6 только при нажатии а если держать кнопку 0 они медленно зажигаются поочередно PA0-PA7
26. mihail - 24 Сентября, 2010 - 17:47:54 - перейти к сообщению
То что есть прогресс - хорошо [очень грустная улыбка]
Работать эта программа должна так:
- если нажать и удерживать кнопку пульта, то должны постоянно гореть несколько светодиодов;
- если кнопку отпустить все светодиоды гаснут;
- разные кнопки пульта дают разную комбинацию светодиодов.
Программа написана по мотивам нижеприведенного описания протокола RC5.
http://www.sbprojects.com/knowledge/ir/rc5.htm
Программа на столько проста и примитивна, что даже не знаю где я там мог ошибиться.
Проверить бы программу пультом гарантированно работающем на RC5. Случайно не можете у друзей одолжить 2-3 пульта от техники Philips Желательно разных лет выпуска.
В Makefile проверьте F_CPU = 8000000
Пульт от какой техники?
Работать эта программа должна так:
- если нажать и удерживать кнопку пульта, то должны постоянно гореть несколько светодиодов;
- если кнопку отпустить все светодиоды гаснут;
- разные кнопки пульта дают разную комбинацию светодиодов.
Программа написана по мотивам нижеприведенного описания протокола RC5.
http://www.sbprojects.com/knowledge/ir/rc5.htm
Программа на столько проста и примитивна, что даже не знаю где я там мог ошибиться.
Проверить бы программу пультом гарантированно работающем на RC5. Случайно не можете у друзей одолжить 2-3 пульта от техники Philips Желательно разных лет выпуска.
В Makefile проверьте F_CPU = 8000000
Пульт от какой техники?
27. alex91 - 24 Сентября, 2010 - 23:31:57 - перейти к сообщению
у меня пульт от телевизора vesta model : DT-2126
купил я сегодня пару пультов от тв samsung sony lg
они работают также как и мой
наверно надо было брать по старее
уже у друга попрошу на время его пульты от домашней техники
в принципе при нажатие и удерживании кнопки 1 они все и зажигаются по очереди с большой скоростью и гаснут а ели отпустить светодиоды не гаснут
купил я сегодня пару пультов от тв samsung sony lg
они работают также как и мой
наверно надо было брать по старее
уже у друга попрошу на время его пульты от домашней техники
в принципе при нажатие и удерживании кнопки 1 они все и зажигаются по очереди с большой скоростью и гаснут а ели отпустить светодиоды не гаснут
28. mihail - 25 Сентября, 2010 - 04:24:32 - перейти к сообщению
Программа для пульта SONY
Описание протокола http://www.sbprojects.com/knowledge/ir/sirc.htm
(Добавление)
/* ************************************
Sony SIRC Protocol (12 bit)
************************************* */
#include <avr/io.h>
#include <util/delay.h>
int main(void) /* начало основной программы */
{
DDRA = 0xff; /* порт A сконфигурировать как выход */
PORTA = 0x00; /* установить "0" на всех выводах порта A */
DDRD &= (~(1<<3)); /* PD3 сконфигурировать как вход, TSOP */
PORTD |= (1<<3); /* установить "1" на PD3, включаем подтягивающий резистор */
volatile unsigned char byte_command;
volatile unsigned char byte_address;
while(1) /* бесконечный цикл */
{
byte_command = 0;
byte_address = 0;
while( PIND & (1<<3) ); /* проверка PD3, TSOP */
_delay_us(3700);
/* command bit 1 */
if( !(PIND & (1<<3)) )
{
byte_command |= 0b00000001;
_delay_us(600);
}
/* command bit 2 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_command |= 0b00000010;
_delay_us(600);
}
/* command bit 3 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_command |= 0b00000100;
_delay_us(600);
}
/* command bit 4 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_command |= 0b00001000;
_delay_us(600);
}
/* command bit 5 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_command |= 0b00010000;
_delay_us(600);
}
/* command bit 6 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_command |= 0b00100000;
_delay_us(600);
}
/* command bit 7 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_command |= 0b01000000;
_delay_us(600);
}
/* address bit 1 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_address |= 0b00000001;
_delay_us(600);
}
/* address bit 2 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_address |= 0b00000010;
_delay_us(600);
}
/* address bit 3 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_address |= 0b00000100;
_delay_us(600);
}
/* address bit 4 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_address |= 0b00001000;
_delay_us(600);
}
/* address bit 5 */
_delay_us(1200);
if( !(PIND & (1<<3)) )
{
byte_address |= 0b00010000;
_delay_us(600);
}
_delay_ms(18);
PORTA = byte_command; /* вывести байт комманды на порт A */
} /* закрывающая скобка бесконечного цикла */
return 0;
} /* закрывающая скобка основной программы */
Описание протокола http://www.sbprojects.com/knowledge/ir/sirc.htm
(Добавление)
alex91 пишет:
Правильно. Я в описании программы ошибся
если отпустить светодиоды не гаснут
29. alex91 - 25 Сентября, 2010 - 14:05:18 - перейти к сообщению
последняя программа что-то вообще не работает
устройство вообще не реагирует на пульт SONY зато от моего пульта vesta реагирует но работает не понятно как
Может использовать другой способ управление роботом а не rc-5?
устройство вообще не реагирует на пульт SONY зато от моего пульта vesta реагирует но работает не понятно как
Может использовать другой способ управление роботом а не rc-5?
30. nest - 25 Сентября, 2010 - 16:16:18 - перейти к сообщению
alex91 пишет:
может. Может использовать другой способ управление роботом а не rc-5?
написать свой кодер и декодер.
да хоть UART сделать на ИК-лучах. Кстати, неплохая идея, так как никаких програмных телодвижений, всё на аппаратном уровне. ... медленновато будет, но пару байтов переслать хватает.
alex91, у вас вообще что за комманды предпологаются?
типа "вперёд-назад-влево-вправо, включить фары" и тому подобное?
какую дальность вам необходимо?