Communication entre 2 cartes arduino par infrarouge

Bonjour à tous ! Tout d’abord, je tient à préciser que j’ai chercher sur internet une solution à mon problème mais sans succès.

Voici mon problème :
Je voudrait contrôler un robot avec une manette faite par moi-même avec 2 joystick par infrarouge (je dispose d’un émetteur infrarouge Grove (ref : 101020026 ) et d’un récepteur également Grove (ref : 101020016) connectés sur des base shield grove comme celle ci : http://www.gotronic.fr/art-module-grove-base-shield-103030000-19068.htm ).

Pour l’instant je tente de comprendre le fonctionnement en allumant une led avec un bouton poussoir qui sont branchés sur 2 cartes arduino différentes.
Mon branchement est simple :
sur un shield grove, je branche l’émetteur IR grove sur le D3 (je voudrait d’ailleurs savoir quel est la différence entre la pin Nc et Rx du module émetteur IR), ainsi qu’un bouton poussoir sur la pin 2. Sur le deuxième shield grove j’ai mis le recepteur IR également sur la D3 et une led sur la pin 8.

Mon but est que lorsque j’appuie sur le bouton poussoir, l’émetteur transmet l’information à la deuxième carte qui allume la led.

Pour ce qui est de la réception du signal, je devrait me débrouiller avec ce que j’ai trouvé sur Internet mais mon problème c’est pour l’émission du signal : je ne sais pas du tout comment créer un signal.

Voilà, j’espère que vous pourrais m’aider sachant que je n’ai pas du tout commencé le programme étant donné que je ne sait pas par quoi commencer.
Merci de votre aide :slight_smile:

pepe:
BonjourA priori, ce n'est pas RX (pour Réception) mais TX (pour Transmission).

A oui en effet merci :slight_smile:

Merci beaucoup de ta réponse, je comprend maintenant beaucoup mieux le fonctionnement mais il me reste à savoir comment le programmer.

Tout d'abord j'ai vu que beaucoup utilisent la biblio IRremote, est-elle bien adapté à ce que je veut faire ??
Ensuite, pour déclarer l’émetteur, si j'ai bien compris il suffit de faire "const int emetteur = 3" par exemple ?
De plus j'ai souvent vu la fonction "IRsend ir_send" mais à quoi sert-elle ?
Pour ce qui est de l’émission du signal, ais-je des choses à rajouter avant ma fonction setup et dans la fonction setup ?

J'ai vu par exemple quelqu'un voulant communiquer avec sa télé mettre une fonction du type : "irsend.sendNEC(0x2FD48B7, 32)" mais pour ce qui est de moi, que dois-je mettre à la place de NEC ?

Enfin je voudrais savoir comment indiquer le nombre d'impulsions que l'on veut envoyer dans un train, l'espacement entre les trains, et le nombre de trains par secondes ?

Merci beaucoup de votre aide :slight_smile:

Bonjour ! Je poste ce message pour relancer mon post car depuis deux jours je cherche sans succès, je vous demande donc de l'aide svp :wink:
Merci d'avance

Bonjour, ;D

Je relance ce topic (désolé) :stuck_out_tongue: , qui n’avait jamais été finalisé mais lorsque l’on fait une recherche sur la communication entre deux ardiuino par infrarouge, on tombe directement dessus. :sunglasses:
Donc, je vais y répondre une bonne fois pour toute, pour tous nos futurs noob (comme moi) :grin: qui cherche une réponse.

Sur une carte il faut branche un emetteur infrarouge, télécharger la librairie irRemote by shiriffy
et y inclure ce code : puis brancher l’émetteur sur le pin 2 par exemple.
RECEPTEUR : pin 2

#include <IRremote.h> // Infrarouge

const byte Pin_Infrarouge1 = 2;
IRrecv Infrarouge1(Pin_Infrarouge1);
decode_results IR_results;

void setup() {
  Serial.begin(9600); // Usb
  Infrarouge1.enableIRIn();
  pinMode(Pin_Infrarouge1, INPUT);
}

void loop() {
  if (Infrarouge1.decode(&IR_results)) {
    Serial.print("Infrarouge recu : ");
    Serial.println(IR_results.value);
    Infrarouge1.resume();
  }

Ensuite sur la seconde carte arduino, on met un émetteur infrarouge (a deux broches et transparent), on télécharge de nouveau la librairie irRemote (si c’est pas déjà fait), le récepteur doit IMPERATIVEMENT :o se branche sur le pin 3 de la carte, sinon, il faut modifier la librairie irRemote, mais ca c’est une autre histoire et c’est pas le sujet ici. ::slight_smile:
Ensuite incluez ce code :
EMETTEUR : pin 3

#include <IRremote.h> // Infrarouge

IRsend irsend;

void setup() {
  Serial.begin(9600); // Usb
}
void loop() {
    irsend.sendNEC(16769055, 32);
    delay(2000);
}

Voila et là ca fonctionne, sur la première carte, vous devriez recevoir le code 16769055 si tout est correctement mis en place.

ATTENTION : pour cet exemple, perso j’ai mis une résistance de 220 ohm pour ma led émettrice, mais elle est très faible (trop) donc je pense que une résistance plus faible permettrait d’améliorer le signal (voir un amplificateur), car avec une résistance de 220 la portée est moins de 1mètre.
PTIT ASTUCE : pour vérifier que la led fonctionne, il faut mettre le smartphone en fonction caméra, car l’oeil humain ne voirt pas l’infrarouge mais le smartphone oui, il le voit :wink:

Good dev a tous, :kissing:

Bonsoir,

C'est sympa de mettre ton code mais je crois qu'il y a quelques inconsistances.
Tu parles dans les explications des 2 codes en exemple de monter un récepteur mais jamais un émetteur.
Dans le premier code qui manifestement est celui du récepteur tu connectes celui-ci à la broche 2 mais dans la suite du texte tu dis qu'il faudrait connecter le récepteur sur la broche 3.

Pour les débutants un petit dessin serait un plus.

Bonjour Pepe,

Et merci bcp pour ton intervention très… détaillée :smiley:
Il y a pas mal de choses que je vais devoir approfondir dans ce que tu dis, ce sont de très bonne piste.
(PS : bonne mémoire pour la méga).

fdufnews, merci pour cette réflexion, en effet j’ai fais une erreur d’inatention. (ca arrive) :slight_smile:
Le stress ou la fatigue surement :smiley:
J’ai corrigé, donc désormais ca devrait être plus compréhensible.

Pour le dessin, je suis (moi même) trop débutant, peur de faire des erreurs avec les résistance ect…

:wink: