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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
User avatar
Tigra
Встал на лапы
Posts: 99
Joined: Sat Nov 29, 2008 19:34:25
Location: Нальчик

Post by Tigra »

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


сегодня перепаять уже не смогу, в комнате дети спят.
Реклама
User avatar
ooogo
Это не хвост, это антенна
Posts: 1306
Joined: Sun Jan 18, 2009 20:51:02

Post by ooogo »

давай до завтра, пошел я тоже спать, еще мою строчку измени
sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
Реклама
User avatar
Tigra
Встал на лапы
Posts: 99
Joined: Sat Nov 29, 2008 19:34:25
Location: Нальчик

Post by Tigra »

ooogo wrote: попробуй закоментируй эти строчки
пришлось закоментировать

Code: Select all

/*                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;              */
иначе ругается

результата никакого
User avatar
Tigra
Встал на лапы
Posts: 99
Joined: Sat Nov 29, 2008 19:34:25
Location: Нальчик

Post by Tigra »

ooogo wrote:давай до завтра, пошел я тоже спать, еще мою строчку измени
sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
ОК!
Реклама
Эиком - электронные компоненты и радиодетали
User avatar
ooogo
Это не хвост, это антенна
Posts: 1306
Joined: Sun Jan 18, 2009 20:51:02

Post by ooogo »

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

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

а если у сделать как ты закоментировал, кот его знает что получится.
и прочитай хотя бы вот эту страничку avr(сто двадцать три).nm.ru/05.htm
Attachments
nec_lcd.rar
не буди во мне зверя
(2.17 KiB) Downloaded 231 times
Реклама
User avatar
Tigra
Встал на лапы
Posts: 99
Joined: Sat Nov 29, 2008 19:34:25
Location: Нальчик

Post by Tigra »

ooogo wrote: еще мою строчку измени
sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
После этой замены , устройство перестало реагировать на нажатие всех пультов. (Всё время отображает Дают - бери,бьют - защищайся!)
Реклама
User avatar
ooogo
Это не хвост, это антенна
Posts: 1306
Joined: Sun Jan 18, 2009 20:51:02

Post by ooogo »

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

напиши так :) sprintf(lcd_buffer," bla bla bla");
User avatar
Tigra
Встал на лапы
Posts: 99
Joined: Sat Nov 29, 2008 19:34:25
Location: Нальчик

Post by Tigra »

ooogo wrote:приемник по даташиту перепоял?
сейчас в гостях ,через 1 час буду дома, итогда быстро перепаяю и заодно попробую sprintf(lcd_buffer," bla bla bla");
User avatar
ooogo
Это не хвост, это антенна
Posts: 1306
Joined: Sun Jan 18, 2009 20:51:02

Post by ooogo »

сейчас в гостях ,через 1 час буду дома, итогда быстро перепаяю и заодно попробую sprintf(lcd_buffer," bla bla bla");
это шутки у меня такие плоские :))
1. перепаиваешь строго по даташиту;
2. делаешь фото обвязки;
2. пробуешь этот исходник;
3. детально описываешь что происходит.
Через 1,5 часа вернусь проконтролирую. :))
Attachments
nec_lcd.rar
убрал функцияю sprintf
(2.18 KiB) Downloaded 237 times
User avatar
Tigra
Встал на лапы
Posts: 99
Joined: Sat Nov 29, 2008 19:34:25
Location: Нальчик

Post by Tigra »

ooogo wrote:
1. перепаиваешь строго по даташиту;
сделал
2. делаешь фото обвязки;
сделал
3. пробуешь этот исходник;
прошил
4. детально описываешь что происходит.
При нажатии кнопок пульта пропадает надпись"дают - бери" и в первой верхней ячейеке LSD появляются хаотичные символы, причём на каждую кнопку свой!
Attachments
00.JPG
(96.92 KiB) Downloaded 399 times
01.JPG
(76.93 KiB) Downloaded 385 times
02.JPG
(111.17 KiB) Downloaded 428 times
User avatar
ooogo
Это не хвост, это антенна
Posts: 1306
Joined: Sun Jan 18, 2009 20:51:02

Post by 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);
User avatar
Tigra
Встал на лапы
Posts: 99
Joined: Sat Nov 29, 2008 19:34:25
Location: Нальчик

Post by 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();
Пробовал , вобще перестаёт реагировать на нажатие пульта

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

Code: Select all

lcd_putchar(cmd_0);
заменять на

Code: Select all

lcd_putchar(cmd_1);
и на

Code: Select all

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

Кажется осталось разобраться с выводом на LSD :beer:
User avatar
Tigra
Встал на лапы
Posts: 99
Joined: Sat Nov 29, 2008 19:34:25
Location: Нальчик

Post by Tigra »

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

Code: Select all

                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
только в непонятном виде

что нужно изменить?
User avatar
ooogo
Это не хвост, это антенна
Posts: 1306
Joined: Sun Jan 18, 2009 20:51:02

Post by 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
Last edited by ooogo on Sun Jan 10, 2010 15:28:27, edited 1 time in total.
User avatar
ooogo
Это не хвост, это антенна
Posts: 1306
Joined: Sun Jan 18, 2009 20:51:02

Post by ooogo »

попробуй размер массива lcd_buffer уменьшить до 32 байт
unsigned char lcd_buffer[32];
может тогда целиком строчку пихать в ЖКИ будет :?
User avatar
Tigra
Встал на лапы
Posts: 99
Joined: Sat Nov 29, 2008 19:34:25
Location: Нальчик

Post by Tigra »

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


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

Code: Select all

//                 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=s ... &russian=0
Спасибо за ссылку! Очень доступно разжована работа с выводом на LSD
User avatar
ooogo
Это не хвост, это антенна
Posts: 1306
Joined: Sun Jan 18, 2009 20:51:02

Post by ooogo »

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

Post by Tigra »

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

Post by ooogo »

Code: Select all

А можно заменить 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 КГц появляется.
User avatar
ooogo
Это не хвост, это антенна
Posts: 1306
Joined: Sun Jan 18, 2009 20:51:02

Post by ooogo »

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

Return to “Разные вопросы по МК”