Quelle comunication entre arduino ?

Bonjour, je cherche le meilleur moyen de communiquer entre arduino Uno.

J’ai fait un programme pour piloté des Led RGB, pour le moment il est piloté via une commande IR, ce qui fonctionne bien mais je souhaite passer sur plusieurs boitiers et le problème du IR, et bien c’est que si un boitier ne capte pas le signal j’ai qu’une partie de mon installation qui ne fonctionne pas!

Je souhaite donc maitre un Uno maitre qui gèrera le signal IR et enverra « les couleurs prédéfini » à chaque Led au Uno esclave.

Pour le moment, chaque appuie sur une touche fait varier les variables une par une, et d’autres touches affiche directement un pré réglage ou lance une animation.

Le plus gros boitier pilote 14LED sur 10 position (0 a10) 99999999999999

Je pensai envoyer une valeur de 14 chiffre mais il ne semble pas que ce soit possible

J’ai tester le I2C avec les exemples dans le programme arduino mais, il ne traite qu’une valeur de 256.

J’avais pensé aussi d’envoyer plusieurs codes à la suite : le premier (le nombre de code qui doit être lu), les suivant : le numéro de la Led suivi de la variante (01 2) et le dernier pour actualiser les couleurs. Mais gros gros boulot en perspective !

La fonction Wire.onReceive agit comme une interruption ? (La, dans mes boucles d’animation j’ai dû ajouté un contrôle de nouveau code IR ce qui me fait un petit retard dans mes boucles et saccade les animations et pas possible de mettre une interruption car le moindre reflet de soleil ou autre télécommande me coupe les animations)

Le protocole I2C m’intéresse assez, car cela me permettra de piloté d’autre module complet ! (Wou-Hou ça va être la discothèque a là mais ! :smiley: )

J’ai fait un peu le tour sur le net mais la plupart des tutos envoie juste 1 ou zéro et les tutos plus complexes, je n’arrive pas à les comprendre.

Voilà, c’est un peu confus mais désoler, c’est dans le même état dans ma tête à ce moment,

Bon code a tous !

envoyer quelque chose qui fait plus d'un octet, c'est simplement envoyer plusieurs fois de suite un octet et recevoir plusieurs fois de suite un octet. Souvent cela se fait de manière asynchrone, donc il faut que celui qui "écoute" soit patient: attente qu'un octet soit dispo, le lire puis recommencer jusqu'à la fin du message pour avoir reçu un message complet.

étudiez Several Things at a Time pour l'architecture du code et
Serial Input Basics pour les concepts de communication asynchrone (ici sur le port Série mais l'idée s'applique un peu à tout une fois que vous comprenez comment émettre et écouter, y compris l'I2C (ou ce sera moins asynchrone))

Sinon des libraires ou classes standard de communication (port Série ou SofwtareSerial, ouVirtualWire par exemple) peuvent-être utilisées en mettant des fils (au lieux du sans fil)