Problemi accensione TV con IR

salve, devo poter accendere e spegnere tramite infrarossi un videoproiettore bella Benq. Riesco a codificare il telecomando, ma quando cerco di inviare l’impulso per lo spegnimento a videoproiettore non accade nulla. Il problema che non mi funziona nemmeno con i televisori.

Di seguito metto i codici:

Codice ricevitore:

#include <IRremote.h>
 
int RECV_PIN = 11;
 
IRrecv irrecv(RECV_PIN);
 
decode_results results;
 
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}
 
// Dumps out the decode_results structure.
// Call this after IRrecv::decode()
// void * to work around compiler issue
//void dump(void *v) {
//  decode_results *results = (decode_results *)v
void dump(decode_results *results) {
  int count = results->rawlen;
  if (results->decode_type == UNKNOWN) {
    Serial.print("Unknown encoding: ");
  }
    else if (results->decode_type == NEC) {
    Serial.print("Decoded NEC: ");
  }
  else if (results->decode_type == SONY) {
    Serial.print("Decoded SONY: ");
  }
  else if (results->decode_type == RC5) {
    Serial.print("Decoded RC5: ");
  }
  else if (results->decode_type == RC6) {
    Serial.print("Decoded RC6: ");
  }
  else if (results->decode_type == SAMSUNG) {
    Serial.print("Decoded SAMSUNG: ");
  }
  else if (results->decode_type == JVC) {
    Serial.print("Decoded JVC: ");
  }
  else if (results->decode_type == PANASONIC) {
    Serial.print("Decoded Panasonic: ");
  }
  Serial.print(results->value, HEX);
  Serial.print("(");
  Serial.print(results->bits, DEC);
  Serial.println(" bits)");
  Serial.print("#define Something_DEC ");
  Serial.println(results->value, DEC);
  Serial.print("#define Something_HEX ");
  Serial.println(results->value, HEX);
  Serial.print("Raw (");
  Serial.print(count, DEC);
  Serial.print("): ");
  for (int i = 0; i < count; i++) {
    if ((i % 2) == 1) {
      Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
    } 
    else {
      Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC);
    }
    Serial.print(" ");
  }
  Serial.println("");
}
 
void loop() {
  if (irrecv.decode(&results)) {
    dump(&results);
    irrecv.resume(); // Receive the next value
  }
}

Codice Trasmettitore:

#include "IRremote.h"
 
IRsend irsend;
unsigned int ON[68]={8010,8900,4400,550,600,500,600,500,600,500,600,500,600,500,600,500,600,550,600,450,1750,500,1700,500,1700,500,1700,500,1700,550,1650,550,1750,450,1700,500,1700,500,1700,550,1650,550,600,500,1700,500,600,500,600,500,600,500,600,550,600,450,650,500,1650,550,600,500,1700,500,1700,550,1650,550};
 
void setup()
{
  Serial.begin(9600);
}
 
 
void loop() {
 irsend.sendRaw(ON, 68, 38);
  Serial.println("Inviato Messaggio di On");
  delay(4000);
 }

I collegamenti che faccio per il trasmettitore è:

Ho provato sia con Arduino uno e sia con Arduino micro pro, il risultato è sempre negtivo.

Solo la parte del ricevitore funziona.

Se qualcuno ha qualche consiglio da darmi mi farebbe un grosso favore.

ciao

Una semplice ipotesi... diodo montato al contrario.

ciao
pippo72

No, il diodo l'ho montato nel verso giusto

Hai guardato con una fotocamera del cellulare se il LED si illumina?
Ciao Uwe

Ho fatto la prova che mi suggerisci ma non vedo l’impulso luminoso. I collegamenti sono giusti, ho cambiato 3 diodi e fatto le prove con 2 arduino, l’uno e il micro pro ma niente.

Metti per prova un led colorato.
Ciao Uwe

Non vedo impostazione dei pin, sul progr. trasmettitore non c'è un pin 3 da nessuna parte

byte IR_LED = 3;

void setup(){
pinMode(IR_LED, OUTPUT);
Serial.begin(9600);
}

...
...

Accendere un led rosso, verde, giallo o un IR non fa differenza, se non imposti l'uscita, ci fai poco.

ciao

pablos:
Non vedo impostazione dei pin, sul progr. trasmettitore non c'è un pin 3 da nessuna parte

Lo fa la libreria... su arduino uno la libreria di default usa il pin3 (timer2), all'inizio del file IRremoteInt.h trovi le define per scegliere quale timer usare a seconda del tipo di board...

Io li ho sempre messi nello sketch e ha sempre funzionato.