Здравствуйте скажите где можно почитать описание команды irsend.sendRC5(0xFFFFFF, 12);, Спасибо
Вид для печати
Здравствуйте скажите где можно почитать описание команды irsend.sendRC5(0xFFFFFF, 12);, Спасибо
Можно на сайте разработчика
PHP код:
void IRsend::sendRC5(unsigned long data, int nbits)
{
enableIROut(36);
data = data << (32 - nbits);
mark(RC5_T1); // First start bit
space(RC5_T1); // Second start bit
mark(RC5_T1); // Second start bit
for (int i = 0; i < nbits; i++) {
if (data & TOPBIT) {
space(RC5_T1); // 1 is space, then mark
mark(RC5_T1);
}
else {
mark(RC5_T1);
space(RC5_T1);
}
data <<= 1;
}
space(0); // Turn off at end
}
Решил поиграться с IR приемником. "Подправил" скетч:
Теперь вопрос, как сделать, чтобы при повторном нажатии кнопки - светодиод принимал противоположное значение?PHP код:
#include <IRremote.h>
int RECV_PIN = 11;
int awe=0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(22, OUTPUT);
pinMode(24, OUTPUT);
pinMode(26, OUTPUT);
pinMode(28, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results))
{
Serial.println(results.value);
if (results.value == 3772784863) // цифра 1 на пульте
{
digitalWrite (22, HIGH);
}
if (results.value == 3772817503) // цифра 2 на пульте
{
digitalWrite (24, HIGH);
}
if (results.value == 3772801183) // цифра 3 на пульте
{
digitalWrite (26, HIGH);
}
if (results.value == 3772780783) // цифра 4 на пульте
{
digitalWrite (28, HIGH);
}
if (results.value == 3772793023) // ON-OFF на пульте
{
digitalWrite (22, LOW);
digitalWrite (24, LOW);
digitalWrite (26, LOW);
digitalWrite (28, LOW);
}
delay (1000); // типа защита от повторов
irrecv.resume(); // Receive the next value
}
}
Придумал - скетч корявый, но рабочий :)
PHP код:
#include <IRremote.h>
int RECV_PIN = 11;
int awe=0;
int stat1 = 0;
int stat2 = 0;
int stat3 = 0;
int stat4 = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(22, OUTPUT);
pinMode(24, OUTPUT);
pinMode(26, OUTPUT);
pinMode(28, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results))
{
Serial.println(results.value);
stat2=digitalRead(24);
stat3=digitalRead(26);
stat4=digitalRead(28);
if (results.value == 3772784863)
{
stat1=digitalRead(22);
if (stat1 == 0)
{
digitalWrite (22, HIGH);
delay(500);
}
else
{
digitalWrite (22, LOW);
delay(500);
}
}
if (results.value == 3772817503)
{
stat1=digitalRead(22);
if (stat2 == 0)
{
digitalWrite (24, HIGH);
delay(500);
}
else
{
digitalWrite (24, LOW);
delay(500);
}
}
if (results.value == 3772801183)
{
stat3=digitalRead(26);
if (stat3 == 0)
{
digitalWrite (26, HIGH);
delay(500);
}
else
{
digitalWrite (26, LOW);
delay(500);
}
}
if (results.value == 3772780783)
{
stat1=digitalRead(28);
if (stat4 == 0)
{
digitalWrite (28, HIGH);
delay(500);
}
else
{
digitalWrite (28, LOW);
delay(500);
}
}
if (results.value == 3772793023)
{
digitalWrite (22, LOW);
digitalWrite (24, LOW);
digitalWrite (26, LOW);
digitalWrite (28, LOW);
}
delay(500);
irrecv.resume();
}
}
а с таким модулем будет работать скетч?
http://www25.tx8cdn.com/photo/hong16...7115354107.JPG
Работать будет, только частоту бы приемника узнать не мешало бы.
В документации присутствует схема и скетч.
http://fedorych.users.photofile.ru/p.../208393076.jpg
Код HTML:Incept Code(download Arduino NO.1):
#define ADD 0x00
int IR_S = 2;
int a;
void setup()
{
pinMode(IR_S,OUTPUT);
Serial.begin(115200);
}
void loop()
{
uint8_t dat,temp;
{
a=analogRead(0);
temp = a/4;
Serial.println(temp,DEC);
IR_Send38KHZ(280,1);
IR_Send38KHZ(140,0);
IR_Sendcode(ADD);
dat = ~ADD;
IR_Sendcode(dat);
IR_Sendcode(temp);
Из скетча видно что 38KHZ, значит подойдет
Камнями не кидать! Ситуация такая. Переставил винду. Закинул IRKey.exe в автозагрузку, как и раньше было. Запускается вместе с виндой, НО! не работает вообще. И не реагирует ни на что! Даже блин через диспечер задач не вышибается!?! Хуже вирусни (поставил антивирь... не вирусня)! Если убираю из автозапуска и запускаю вручную - то всё чудесно робит. В чем может быть проблем?
P.S. система win7 32, ярлык с правами администратора... три дня уже тыкаюсь безрезультатно!
Драйвер нужно последний установить и программу с прошивкой лучше тоже обновить
Программа и драйвер подойдут
Все привет. Подскажите какой протокол у этого пульта http://www.aliexpress.com/item/Unive...60528733.html? Или как можно определить?
Спроси у продавца, может он знает
Я сам пока этот пульт не заказа, но планирую. Хочу им управлять android планшетом через IOIO. Сейчас пока с домашними пультами провожу эксперименты и очень жалею, что под IOIO нет такой библиотеки. Пытаюсь определить протокол по длительности первого импульса.
Пытаюсь определить протокол по длительности первого импульса.[/QUOTE] Доброго времени суток iFynk. Для того чтобы определить протокол и каждую команду я воспользовался схемой состоящей из ик приемника , USB(A) разъема (для питания 5 V) и разъема - миниджек для подключения ИК приемника в микрофонный вход ноутбука.(Схема подключения самого ИК приемника на первой странице этой темы) Наверное мне очень повезло - потому что микрофонный разъем моего ноутбука не смотрит что к нему подключено (как делают "звуковухи" стационарных компьютеров) Я записывал ИК команды - как звуковые файлы с помощью программы "SONY Sound Forge 9.0" , а потом просматривал их как осциллограммы. (вот пример = https://14e3d466-a-62cb3a1a-s-sites....attredirects=0)
Подскажите, почему у меня скетч из шапки выдает в сериалмониторе вот такую фигню
http://s020.radikal.ru/i705/1304/e1/9707d68f000c.png
причем с любым пультом
Потому что передача данных в бинарном виде
А как сделать чтоб были в HEX?
Мне не надо передавать коды в комп, я хочу чтоб их обрабатывала ардуина.
Тогда не понимаю для чего их передавать?Цитата:
Мне не надо передавать коды в комп, я хочу чтоб их обрабатывала ардуина.
Для того чтоб понять какой код у какой кнопки, а потом в ардуине сделать обработчик.
В финальном изделии ардуина будет обрабатывать сигналы с ИК пульта, а компу отправлять уже коды кнопок клавиатуры.
А сейчас у меня не получается отследить у какой кнопки пульта какой код
Можете для просмотра данных использовать не встроенный в IDE монитор, а например PUTTY
Попробовал с PUTTY, еще хуже, в родном сериалмониторе хоть символы были разные, а в PUTTY вообще все одинаковое показывает.
Долго мучил скотинку, но не выходит каменный цветок. Пытался вписать сочетания клавиш ни как. В результате решил проблему программкой "HotkeyP", присваиваем кнопкам пульта клавиши клавы в IRKey_config и напрямую в HotkeyP вписываем кнопки пульта. Открываем приложения, закрываем короче получается сервис IRLinkа.
А возможно с кнопок пульта управлять указателем и кнопками мыши?
Курсором управлять можно, а при определенных настройках в винде, курсор можно настроить на управление мышкой
если имеется ввиду \Панель управления\Все элементы панели управления\Центр специальных возможностей\Облегчение работы с клавиатурой - Включить управление указателем с клавиатуры - то при включении этого режима hotkey не захватывает коды клавиш на управление указателем и если ей указать коды кнопок numpad - реакции тоже никакой. И еще в таблице кодов клавиш где указаны коды кнопок мыши - то на них тоже никакой реакции нет.
Тогда получается без правки программы не получится.
В планах есть желание обновить софтину и прошивку
будем ждать с нетерпением, а то есть пульт на котором есть джойстик вот и хотелось его запользовать
А кто подскажет, на какое максимальное растояние можно выносить ИК датчик от Ардуины? Провод на 3-4 метра - это не много?
Много, попробуй витой парой
Пока провод около метра и всё равно как-то не стабильно работает. Причём, ловит пульт максимум где-то 30-40 см. Это от приёмника зависит или может батарейка плохая?
Попробуй электролит около ИК приемника по питанию поставить
Я проверял на 1 м , все работает без лагов
Сначала не понял насчёт электролита, думал, что нужно в банку налить немного и поставить около приёмника :) А кондерсатор я поставил сразу, только не возле приёмника, а возле Ардуины, попробую поменять. А от батарейки может зависеть радиус действия?
А батарейка какое напряжение выдает?
3,1 В - вроде как даже больше :) Ещё одну пробовал, но там уже 2,8 В
Ещё есть такой пульт:
Вложение 16931
Так он вообще выдает по несколько кодов на одну кнопку, причём постоянно разные коды.
Например такое:
0x6C41C0F4
0xFA53849E
0xF076C13B
0xD8E6E448
0xABB75E95
0x4AC5647A
0xC2509427
0x5EC21197
0xFFE01F
0xFFE01F
0xFFE01F
Это всё одна кнопка :)
Задержку между нажатиями поставил 250. Кондерсатор тоже возле приёмника.
Может и правда приёмник неправильный... Там даже выводи по-другому идут: сигнал, минус, плюс. Но в машине работал, хоть и с перебоями.
Заказал ещё такой пульт в комплекте с приёмником, может хоть он будет нормально работать.
Вложение 16932