Problema ao Enviar e Receber IR no mesmo Arduino

Eu não me devo ter explicado bem...

Quando testas e mandas o sinal do comando para o Arduino que recebe e envia, o outro arduino que só recebe também parece estar a receber os dados.

O que eu pedi foi para tentares evitar que esse Arduino (o que só recebe) consiga ver o comando dado pelo controlo remoto. Isto para despistar... e garantires que o teu Arduino apenas está a receber de uma fonte, ou seja, do Arduino que envia.

Quanto ao noInterrupts, tira-a daí... Ela não está a fazer nada relativamente ao envio de dados. A função send não é bufferizada, logo quando essa função noInterrupts corre a função de send já terminou.

No entanto... e como tu não te deste ao trabalho de ler as instruções dessa função... ao usá-la sem o equivalente interrupts(), basicamente estás a colocar o Arduino parado. E depois ou é a função delay() ou é a função irsend que necessitam de interrupções e tu tem-las todas desligadas e o código bloqueia à espera.

Logo, há algo aqui que não está a bater certo e os teus métodos de teste estão-me a deixar desconfiado que terá algo a ver com isso e não necessariamente o código.

Ainda não explicaste que comando estás a usar... é o da TV?? Os dos Ares condicionados são um pouco diferentes...

Só para terminar... temos estado a falar do exemplo IRReceive... tu estás a usar o IRdump... que é bastante diferente...

Que tal se usares o IRReceive assim no Arduino que só recebe:

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
  }
}

Como tinha referido antes... ao usares o IRDump vais activar a porta série... ou seja, enquanto o teu Arduino está à espera de receber dados, vai estar também a mandá-los para a porta série. A porta série usa interrupções e como tal é provável que o outro Arduino esteja a enviar correctamente e o teu de recepção não receba correctamente...

Podes isolar o Arduino só de recepção do teu comando remoto e testar... ou então dar uma temporização entre o comando remoto e o outro Arduino.