Infra rouge pas cohérent

Bonjour à tous,
je suis sur un projet de remplacement de diverse télécommande IR. Mais celle-ci ne sont pas du Sony, du JVC ou autre marque connu, cela serai trop facile :confused: .
J’aimerai controler des radiateurs de la maque délonghi, et un climatiseur de la marque essential B(Boulanger), désolé pour la pub, mais la précision à son importance.

Donc dans un premier temps j’ai essayer de chopper les trames et de les retransmettre, mais sans effet.
J’ai vérifier avec la caméra de mon iphone, la LED IR s’allume bien.

J’ai ensuite essayer avec 2 arduino, l’un en emmetteur, et l’autre en récepteur, et j’ai bien des signaux, mais ce ne sont pas les mêmes.

j’envoie cela

{600,550, 550,1550, 600,500, 600,500, 550,1600, 550,550, 550,500, 600,500, 600,500, 600,500, 600,1550, 550,550, 550,1600, 550,1550, 600,500, 600,500, 550,550, 550,550, 550,550, 550,500, 600,500, 600,500, 600,500, 550,550, 550,550, 550,1600, 550,1550, 600,500, 600,500, 550,1600, 550,550, 550,500, 600,500, 600,500, 600,500, 600,500, 550,550, 550,550, 550,500, 600,500, 600,500, 600,500, 600,500, 550,550, 550,550, 550,550, 550,500, 600,500, 600,500, 600,500, 550,550, 550,550, 550,550, 550,500, 600,500, 600,500, 600,500, 550,550, 550,550, 550,550, 550,500, 600,500, 600,500, 600,500, 600,500, 550,1600, 550,1550, 600,500, 600,500, 600,1550, 550,550, 550,550, 550};

et je reçois ceci

{600,600, 500,1550, 600,550, 500,550, 550,1600, 500,600, 550,500, 600,500, 550,550, 550,550, 550,1600, 500,600, 500,1600, 500,1600, 600,500, 600,500, 550,600, 450,600, 550,550, 550,550, 500,550, 600,500, 600,500, 550,550, 550,550, 550,1650, 450,1600, 550,550, 550,550, 500,1600, 550,600, 500,550, 550,550, 550,500, 600,550, 550,550, 500,600, 500,550, 550,550, 550,550, 550,500, 600,550, 550,550, 500,600, 500,550, 550,600, 500,550, 550,500, 600,550, 550,500, 550,600, 500,550, 550,550, 550,500, 600,500, 600,500, 600,500, 550,550, 550,600, 500,550, 550,550, 550,550, 550,500, 600,500, 600,550, 500,1600, 550,1550, 550,550, 550,500, 600,1600, 500,600, 500,550, 550};

et par moment je ne reçois pas toujours la même chose.

Donc je pense que je cumule les erreurs:

  • au niveau de l’émetteur j’ai un montage d’un diode émettrice +une résistance
    -au niveau du récepteur j’ai un 1838B.

Auriez vous quelque piste de recherche, et par hasard quelqu’un saurez t’il quelle est la dernière version de la librairie IR.

Par avance merci de votre aide.

Flo

bonjour,
sans code, schéma, difficile de répondre.

boulang… n’est pas un fabricant mais un revendeur, donc aucun rapport avec le matériel :wink:

alors pour le capteur j’utilise ce schéma

et pour l’émetteur j’utilise celui-ci

pour les programmes en récepteur j’utilise celui-ci

/* rawR&cv.ino Example sketch for IRLib2
 *  Illustrate how to capture raw timing values for an unknow protocol.
 *  You will capture a signal using this sketch. It will output data the 
 *  serial monitor that you can cut and paste into the "rawSend.ino"
 *  sketch.
 */
// Recommend only use IRLibRecvPCI or IRLibRecvLoop for best results
#include <IRLibRecvPCI.h> 

IRrecvPCI myReceiver(2);//pin number for the receiver

void setup() {
  Serial.begin(9600);
  delay(2000); while (!Serial); //delay for Leonardo
  myReceiver.enableIRIn(); // Start the receiver
  Serial.println(F("Ready to receive IR signals"));
}

void loop() {
  //Continue looping until you get a complete signal received
  if (myReceiver.getResults()) { 
    Serial.println(F("Do a cut-and-paste of the following lines into the "));
    Serial.println(F("designated location in rawSend.ino"));
    Serial.print(F("\n#define RAW_DATA_LEN "));
    Serial.println(recvGlobal.recvLength,DEC);
    Serial.print(F("uint16_t rawData[RAW_DATA_LEN]={\n\t"));
    for(bufIndex_t i=1;i<recvGlobal.recvLength;i++) {
      Serial.print(recvGlobal.recvBuffer[i],DEC);
      Serial.print(F(", "));
      if( (i % 8)==0) Serial.print(F("\n\t"));
    }
    Serial.println(F("1000};"));//Add arbitrary trailing space
    myReceiver.enableIRIn();      //Restart receiver
  }
}

et pour l’émeteur

/* rawSend.ino Example sketch for IRLib2
 *  Illustrates how to send a code Using raw timings which were captured
 *  from the "rawRecv.ino" sample sketch.  Load that sketch and
 *  capture the values. They will print in the serial monitor. Then you
 *  cut and paste that output into the appropriate section below.
 */
#include <IRLibSendBase.h>    //We need the base code
#include <IRLib_HashRaw.h>    //Only use raw sender

IRsendRaw mySender;

void setup() {
  Serial.begin(9600);
  delay(2000); while (!Serial); //delay for Leonardo
  Serial.println(F("Every time you press a key is a serial monitor we will send."));
}
/* Cut and paste the output from "rawRecv.ino" below here. It will 
 * consist of a #define RAW_DATA_LEN statement and an array definition
 * beginning with "uint16_t rawData[RAW_DATA_LEN]= {…" and concludes
 * with "…,1000};"
 */


#define RAW_DATA_LEN 100
unsigned int  rawData[41] = {2650,900, 400,950, 400,450, 400,500, 400,950, 800,500, 400,450, 400,500, 400,500, 400,450, 400,500, 400,450, 400,500, 400,450, 450,450, 400,500, 400,450, 850,450, 450,900, 400,500, 400};


/*
 * Cut-and-paste into the area above.
 */
   
void loop() {
  if (Serial.read() != -1) {
    //send a code every time a character is received from the 
    // serial port. You could modify this sketch to send when you
    // push a button connected to an digital input pin.
    mySender.send(rawData,RAW_DATA_LEN,38);//Pass the buffer,length, optionally frequency
    Serial.println(F("Sent signal."));
  }
}

je commence à cerner mon soucis, ce n'est pas matériel, mais en réalité un soucis de fréquence que je n'arrive pas à déterminé. donc je vais plancher dessus

bon ba je séche pas moyen de simplement répéter le signal. je l'ai envoyé de 15 à 70 khz sans effet, le signal recrée ne correspond jamais au signal de base.

je suis preneur de tout idée

Cela peut s'expliquer par les bruits dans les montages car il n'y a aucun filtrage, ou par une incompatibilité de la led IR avec le photorécepteur ?

Ce lien va peut etre t'aider : Application note