Projet communications Drapeaux Airsoft

Coucou a tous

Je suis sur un asser gros projet.

Un systeme de drapeau interactif et sans fil pour l'airsoft.

J'en suis à apprendre la communications (entre PC et arduino pour le moment)

Pour le moment, j'arrive très bien à piloter l'état de mon drapeau depuis mon PC en envoyant R ou B depuis la console serie du logiciel arduino.

      if (Serial.available()>0) {          // Si des données sont disponibles
    received = Serial.read();          // On les récupère
    if(received == 'B') {Drap_Bleu();}
    if(received == 'R') {Drap_Rouge();}

Pour les besoin de mon projet, je cherche à piloter mes drapeaux (5 au final) via code a trois chiffre. (ex:101)
ou une library qui permette la comm très facilement ^^

(petite video de mon system drapeau en cours: [Arduino] Drapeau interactif et sans fil Prototype 1 - YouTube)

Merci de votre aide !!!!

Salut,

Du coup la question, c'est quoi ?

Comment utiliser un code à trois chiffre (ex:101) a la place d'un caractere unique (ex: A)

J'ai tenter de remplacer bettement A par 101, mais sa ne marche pas.

Bin 'A' c'est déjà un chiffre, si tu fais :
if(received == 0b101)
c'est exactement pareil que
if(received == 'A')
ou bien encore
if(received == 65)

sa ne fonctionne pas.

En fait au final je vais avoir 5 base drapeau.
Elle seront toute reliés en sans fil a une base centrale.

Je tente de cré un code pour donner l'état de chaque base à la base centrale.

ex:
Base 1 passe en rouge --> code correspondant 101
Base 3 passe en bleu --> code correspondant 302

je sais pas si c'est bien compréhensif.

EDIT: j'ai bien lus ton lien, mais du coup se que je cherche a faire reste "compliqué"

Je croit que je vais crée mon code sans fil uniquement avec un caractere.

Ex: A= drap 1 rouge
a=drap 1 bleu
etc...

merci de ton aide !!!

Ah ok je crois comprendre.

Donc si j'ai bien compris il te faut un identifiant + variable d'état. Easy avec du bitwise (je te laisse googleiser le terme :wink: )

A l'émission :

#define DRAPEAU_HAUT 1
#define DRAPEAU_BAS 0

byte ID = 3 ;// identifiant
...

byte message = ID<<1 | etatDrapeau // etatDrapeau = DRAPEAU_HAUT ou DRAPEAU_BAS
envoi(message);

A la réception :

#define NOMBRE_DE_DRAPEAU 5

byte etatDrapeau[NOMBRE_DE_DRAPEAU];
byte messageRecu,ID,etat;

...
reception(&messageRecu);

ID=constrain(messageReçu>>1 , 0 ,NOMBRE_DE_DRAPEAU-1];
etat =  messageRecu & 1;

etatDrapeau[ID]= etat;

L'idée générale c'est que le bit le plus à droite correspond à l'état du drapeau, ceux qui suive sur la gauche correspondent à l'identifiant du drapeau. Exemple :

101 => drapeau 2 levé
010 => drapeau 1 baissé
110 => drapeau 3 baissé
1001 => drapeau 4 levé

Dac, je part la dessus.

merci !!!