Протоколы IR пультов дистанционного управления

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

ooogo писал(а):
сделай по даташиту.


сегодня перепаять уже не смогу, в комнате дети спят.
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

давай до завтра, пошел я тоже спать, еще мою строчку измени
sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

ooogo писал(а):попробуй закоментируй эти строчки


пришлось закоментировать

Код: Выделить всё

/*                if ((cmd_1 + cmd_0) == 0xFF) cmd = cmd_1;                       //проверили правильность приема команды
                        else cmd = 0;       
                b_cnt = 0;                                                      //обнулили счетчик битов
                start_cond = 0;                                                 //сбросили стартовое условие
                repeat_cond = 0;
                TCCR0B=0x00;                                                     //остановили таймер
                TCNT0=0x00;              */


иначе ругается

результата никакого
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

ooogo писал(а):давай до завтра, пошел я тоже спать, еще мою строчку измени
sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);


ОК!
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

пришлось закоментировать

давай начинай думать головой, нужно закоментировать только две строчки
// if ((cmd_1 + cmd_0) == 0xFF) cmd = cmd_1; //проверили правильность приема команды
// else cmd = 0;

а если у сделать как ты закоментировал, кот его знает что получится.
и прочитай хотя бы вот эту страничку avr(сто двадцать три).nm.ru/05.htm
Вложения
nec_lcd.rar
не буди во мне зверя
(2.17 КБ) 229 скачиваний
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

ooogo писал(а): еще мою строчку измени
sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);


После этой замены , устройство перестало реагировать на нажатие всех пультов. (Всё время отображает Дают - бери,бьют - защищайся!)
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

приемник по даташиту перепоял?

напиши так :) sprintf(lcd_buffer," bla bla bla");
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

ooogo писал(а):приемник по даташиту перепоял?


сейчас в гостях ,через 1 час буду дома, итогда быстро перепаяю и заодно попробую sprintf(lcd_buffer," bla bla bla");
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

сейчас в гостях ,через 1 час буду дома, итогда быстро перепаяю и заодно попробую sprintf(lcd_buffer," bla bla bla");

это шутки у меня такие плоские :))
1. перепаиваешь строго по даташиту;
2. делаешь фото обвязки;
2. пробуешь этот исходник;
3. детально описываешь что происходит.
Через 1,5 часа вернусь проконтролирую. :))
Вложения
nec_lcd.rar
убрал функцияю sprintf
(2.18 КБ) 233 скачивания
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

ooogo писал(а):
1. перепаиваешь строго по даташиту;

сделал
2. делаешь фото обвязки;

сделал
3. пробуешь этот исходник;

прошил
4. детально описываешь что происходит.


При нажатии кнопок пульта пропадает надпись"дают - бери" и в первой верхней ячейеке LSD появляются хаотичные символы, причём на каждую кнопку свой!
Вложения
00.JPG
(96.92 КБ) 397 скачиваний
01.JPG
(76.93 КБ) 383 скачивания
02.JPG
(111.17 КБ) 425 скачиваний
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

зачем стока светодиодов в обвязке ик-приемника?
При нажатии кнопок пульта пропадает надпись"дают - бери" и в первой верхней ячейеке LSD появляются хаотичные символы, причём на каждую кнопку свой!
а тебе чего надо, что бы появлялось?
если цифры, то раскоментируй 1 и 3 строчки
//sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
lcd_clear();
//lcd_puts(lcd_buffer);

и библиотеку
//#include <stdio>

а эту закоментируй
lcd_putchar(cmd_1);
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

зачем стока светодиодов в обвязке ик-приемника?


Когда разбирался с кодом
1 светодиод показывал сигнал с приёмника
if (PIND.2 == 0) PORTD.4 = 0; else PORTD.4 = 1;
2 светодиод зажигался если условие выполнено (мне так легче было разобраться с кодом)
Убирать их не стал если всё получится ,попробую включать и выключать их разными кнопками пульта.

если цифры,


Не только цифры ещё разные закарючки, латинские и кирилические символы.

то раскоментируй 1 и 3 строчки
//sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
lcd_clear();


Пробовал , вобще перестаёт реагировать на нажатие пульта

Так-же пробовал

Код: Выделить всё

lcd_putchar(cmd_0);

заменять на

Код: Выделить всё

lcd_putchar(cmd_1);
и на

Код: Выделить всё

lcd_putchar(addr_0);

каждый символ привязан к конкретной кнопке!

Кажется осталось разобраться с выводом на LSD :beer:
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

Код вывода на LSD изменил следующим образом

Код: Выделить всё

                sprintf(lcd_buffer,"%x %x",addr_1,addr_0);
                lcd_clear();
                lcd_gotoxy(0,0);
                lcd_puts(lcd_buffer);
               
                sprintf(lcd_buffer,"%x %x",cmd_1,cmd_0);
                lcd_gotoxy(0,1);
                lcd_puts(lcd_buffer);


После этого в первой строчке стал выводится АДРЕС : ff 0
А во второй строчке стал выводится КОД :.. 9f
только в непонятном виде

что нужно изменить?
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

странно, почему он не хочет всю строку сразу пихать!? :?
почему не в нормальном, в шестнадцатиричном виде выводит. Если в деситичном хочешь, то:
размер массива lcd_buffer уменьши до 8(9 байт lcd_buffer[8])
строки измени по такому виду sprintf(lcd_buffer,"Адрес: %3u %3u",addr_1,addr_0);
читаешь функции библиотеки stdio http://www.opennet.ru/man.shtml?topic=s ... &russian=0
Последний раз редактировалось ooogo Вс янв 10, 2010 15:28:27, всего редактировалось 1 раз.
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

попробуй размер массива lcd_buffer уменьшить до 32 байт
unsigned char lcd_buffer[32];
может тогда целиком строчку пихать в ЖКИ будет :?
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

размер массива lcd_buffer уменьши до 8(9 байт lcd_buffer[8])
строки измени по такому виду sprintf(lcd_buffer," %3u %3u",addr_1,addr_0);


Теперь всё оК ! адрес 146 109 код 106 149
Это нормально? Должны быть такие большие значения?

Код: Выделить всё

//                 if ((addr_1+addr_0) == 0xFF) addr = addr_0;                  //закомментировано, потому как в пульте First
//                         else addr = 0;                                       //16-bit адрес 0x6120, т.о. проверка адреса не проходит
             //   if ((cmd_1 + cmd_0) == 0xFF) cmd = cmd_1;                       //проверили правильность приема команды
             //           else cmd = 0;


что делать с этой закоментированной частью кода - удалить? разве проверка не нужна?

читаешь функции библиотеки stdio http://www.opennet.ru/man.shtml?topic=sprintf&category=3&russian=0


Спасибо за ссылку! Очень доступно разжована работа с выводом на LSD
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

посмотри еще раз я там подправил
строки измени по такому виду sprintf(lcd_buffer,"Aгpec: %3u %3u",addr_1,addr_0);
тут не опечатка.
Очень доступно разжована работа с выводом на LSD
хоть пробегись, там про дисплеи ни слова, сайт по фряхе. :)) Но там разжована функция printf.
что делать с этой закоментированной частью кода - удалить? разве проверка не нужна?
Кто из нас программист я или ты!? Правильно ты! :))) я бы оставли, к тому в данном случае команда тоже в инверсном виде передается, но может и не передоваться. :wink:
Ну так ты чего теперь будешь конструировать с пультом?
Аватара пользователя
Tigra
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб ноя 29, 2008 19:34:25
Откуда: Нальчик

Сообщение Tigra »

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

для начала поиграюсь светодиодами, а потом попробую реализовать свою давнюю задумку Шторы Занавеска и Экран домашнего кинотеатра на IR пульте управления.
А можно заменить IR приёмник на РАДИО 433.92 Мгц и заместо IR пульта использовать AVR+передатчик 433.92Мгц?
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

Код: Выделить всё

А можно заменить IR приёмник на РАДИО 433.92 Мгц и заместо IR пульта использовать AVR+передатчик 433.92Мгц? 
тут я не силен. Как то поднимал тему но единомышленников не нашел, все заглохло.
по поводу готовых модулей на 430 МГц, удовольствие не из дешовых примерно 900 руб. передатчик и приемник. альтернатива самодельные радиомодули тут есть несколько вариантов http://vrtp.ru/index.php?act=categories&cat=206
http://vrtp.ru/index.php?act=categories ... ticle=1418
но тут уже нужны навыке работы с СВЧ и со сверхачаи, у меня таковых нет.
альтернатива радиоуправление
http://vrtp.ru/index.php?act=categories ... ticle=1496
http://vrtp.ru/index.php?act=categories ... ticle=1235
если просто приторочить радиомодуль к пульту и к приемнику, то программу приемника надо переписывать, т.к. как там еще и несущая 36 КГц появляется.
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Сообщение ooogo »

если чего сгондобишь платой поделись, а то я не могу сделать обычного управления люстрой с пульта(с двумя релюшками), с платами у меня хреново. :(
Ответить

Вернуться в «Разные вопросы по МК»