Rafael_K_A:
budulindo, não entendi, o código é o mesmo do anterior que vc me passou!!
Experimentaste???
ANTES:
void loop() {
if (irrecv.decode(&results)) { //se existe algo descodificado...
long int decCode = results.value;
Serial.println(results.value); // REPARA NESTA LINHA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if (results.value == 16736925) { // se o que foi descodificado, é o que queremos receber...
for (int i = 0; i < 4; i++) { //não percebo este for... mas o artista aqui és tu...
irsend.sendNEC(0xAF518E7, 32);
delay(400);
}
}
irrecv.enableIRIn();
irrecv.resume(); //esta instrução pode até ser desnecessária...
}
}
DEPOIS:
void loop() {
if (irrecv.decode(&results)) { //se existe algo descodificado...
long int decCode = results.value;
//NÃO ESTÁ AQUI SERIAL.PRINT NENHUM....
if (results.value == 16736925) { // se o que foi descodificado, é o que queremos receber...
for (int i = 0; i < 4; i++) { //não percebo este for... mas o artista aqui és tu...
irsend.sendNEC(0xAF518E7, 32);
delay(400);
}
}
Serial.println(results.value);//EM VEZ DISSO ESTÁ AQUI!!!!!!!!!!!!!!!!!!!
irrecv.enableIRIn();
//irrecv.resume(); //esta instrução pode até ser desnecessária...
}
}
O código não é igual. É uma diferença minúscula, é certo, mas não é igual.
Como a porta série é bufferizada, se fizeres um print antes de usares algo com temporizações muito apertadas, pode acontecer que a transmissão de dados estrague as temporizações.
A biblioteca não desliga a porta série para enviar e receber... logo é uma possibilidade. Pelo que li, se enviares algo desactivas o receptor e vice-versa, pelo que a única coisa mais óbvia que me salta à vista é isto da porta série.
E no exemplo que experimentaste?? Estava lá um for para repetir o comando 4 vezes?