Re: Управление компьютером, любым ИК пультом.
У меня все работает
Повесил светодиод на D3 , залил ниже выложенный скетчь
и визуально вижу отправляемые пакеты с паузой 1 сек
PHP код:
#include <IRremote.h>
IRsend irsend;
void setup()
{
}
void loop()
{
irsend.sendNEC(0x10EF28D7, 32);
delay(100);
irsend.sendNEC(0x10EF28D7, 32);
delay(100);
irsend.sendNEC(0x10EF28D7, 32);
delay(1000);
}
Re: Управление компьютером, любым ИК пультом.
Может у меня что-нить с библиотекой не так? Качал и отсюда и с сайта разработчика... Одна отправка и висит...
Re: Управление компьютером, любым ИК пультом.
А светодиод через ограничивающий ток резистор подключил?
Re: Управление компьютером, любым ИК пультом.
Да 100. Как на схеме. И с диодом виснет и без него... В смысле, даже если на пустой Пин 3 послать сигнал. Оч. странно.
Re: Управление компьютером, любым ИК пультом.
Действительно странно ???
Re: Управление компьютером, любым ИК пультом.
ребят помогите дайте исходник программы для работы с ик приёмником желательно на дельфи очень надо ноподобе IRKey.
Re: Управление компьютером, любым ИК пультом.
Купил пульт на руль JVC RM-RK39 с Arduino неработает, пульт нравится у него в отличии от пионера крепление хорошее не болтается. что делать как заставить его работать?
Re: Управление компьютером, любым ИК пультом.
Цитата:
Сообщение от
joni_ku
Купил пульт на руль JVC RM-RK39 с Arduino неработает, пульт нравится у него в отличии от пионера крепление хорошее не болтается. что делать как заставить его работать?
Таже фигня. Надо разбираться, но пока некогда :-(
Re: Управление компьютером, любым ИК пультом.
Нужно добавить в библиотеку обработку JVC протокола. Здесь про это есть.
Re: Управление компьютером, любым ИК пультом.
Взял с вышеуказанного сайта
JVC protocol:
PHP код:
#define JVC_HDR_MARK 8000
#define JVC_HDR_SPACE 4000
#define JVC_BIT_MARK 600
#define JVC_ONE_SPACE 1600
#define JVC_ZERO_SPACE 550
#define JVC_RPT_LENGTH 60000
//Sending function:
void IRsend::sendJVC(unsigned long data, int nbits, int repeat)
{
enableIROut(38);
data = data << (32 - nbits);
if (!repeat){
mark(JVC_HDR_MARK);
space(JVC_HDR_SPACE);
}
for (int i = 0; i < nbits; i++) {
if (data & TOPBIT) {
mark(JVC_BIT_MARK);
space(JVC_ONE_SPACE);
}
else {
mark(JVC_BIT_MARK);
space(JVC_ZERO_SPACE);
}
data <<= 1;
}
mark(JVC_BIT_MARK);
space(0);
}
//Receiving funtion:
long IRrecv::decodeJVC(decode_results *results) {
long data = 0;
int offset = 1; // Skip first space
// Check for repeat
if (irparams.rawlen - 1 == 33 &&
MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK) &&
MATCH_MARK(results->rawbuf[irparams.rawlen-1], JVC_BIT_MARK)) {
results->bits = 0;
results->value = REPEAT;
results->decode_type = JVC;
return DECODED;
}
// Initial mark
if (!MATCH_MARK(results->rawbuf[offset], JVC_HDR_MARK)) {
return ERR;
}
offset++;
if (irparams.rawlen < 2 * JVC_BITS + 1 ) {
return ERR;
}
// Initial space
if (!MATCH_SPACE(results->rawbuf[offset], JVC_HDR_SPACE)) {
return ERR;
}
offset++;
for (int i = 0; i < JVC_BITS; i++) {
if (!MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK)) {
return ERR;
}
offset++;
if (MATCH_SPACE(results->rawbuf[offset], JVC_ONE_SPACE)) {
data = (data << 1) | 1;
}
else if (MATCH_SPACE(results->rawbuf[offset], JVC_ZERO_SPACE)) {
data <<= 1;
}
else {
return ERR;
}
offset++;
}
//Stop bit
if (!MATCH_MARK(results->rawbuf[offset], JVC_BIT_MARK)){
return ERR;
}
// Success
results->bits = JVC_BITS;
results->value = data;
results->decode_type = JVC;
return DECODED;
}
Цитата:
*Note instead of sending the REPEAT constant if you want the JVC repeat signal sent, send the original code value and change the repeat argument from 0 to 1. JVC protocol repeats by skipping the header NOT by sending a separate code value like NEC does.