Arduino/bluetooth/app inventor 2

Bonjour,

Lors de l'unvoie d'une trame 16 bits depuis l'arduino vers mon application app inventor, j'ai de petits soucis.
J'arrive à recevoir la trame correctement grace à "bluethooth client receive text" (photo 1) mais derrière ma trame est alors en texte et je ne peut pas la traiter avec des opérations mathématiques
Et si j'utilise "blutooth client receive 2 unsigned byte number" (photo 2) alors ma trame à la réception est fausse.

Quelqu'un peut-il m'aider.
Merci d'avance

1.PNG

Maximaxou:
...
Et si j'utilise "blutooth client receive 2 unsigned byte number" (photo 2) alors ma trame à la réception est fausse.

bonsoir
comment l'arduino envoie t'il cette "trame de 16 bits" ?
quelle instruction dans le sketch arduino ?

Bonsoir :slight_smile:

J'utilise un module bluethooth HC-06
Voilà mon code d'envoie:

int bluetoothTx = 4;
int bluetoothRx = 2;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()
{
Serial.begin(9600);
bluetooth.begin(9600);
Serial.println("init ");
}

void loop()
{
unsigned long int affichage = 0xC50B; //initialis d'affichage(la trame que j'envoie juste ci-après)
bluetooth.print(affichage,BIN); //1100 0101 0000 1011
}

Maximaxou:
Bonoir :slight_smile:

J'utilise un module bluethooth HC-06
Voilà mon code d'envoie:

int bluetoothTx = 4;
int bluetoothRx = 2;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

void setup()
{
Serial.begin(9600);
bluetooth.begin(9600);
Serial.println("init ");
}

void loop()
{
unsigned long int affichage = 0xC50B; //initialis d'affichage(la trame que j'envoie juste ci-après)
bluetooth.print(affichage,BIN); //1100 0101 0000 1011
}

unsigned long int affichage= 0xc508 , ça me semble bizzare
essaie çà

void loop()
{  
   unsigned  int affichage = 0xC50B; //initialis d'affichage(la trame que j'envoie juste ci-après)
   bluetooth.print(affichage); //1100 0101 0000 1011
}

ah oui en effet, merci jevais essayer !
A la base, j'étais parti sur une trame 32 bit d'où le unsigned long int.
puis j'ai changer en 16 pensant que ma trame était trop longue

Maximaxou:
ah oui en effet, merci jevais essayer !
A la base, j'étais parti sur une trame 32 bit d'où le unsigned long int.
puis j'ai changer en 16 pensant que ma trame était trop longue

ok
mais c'est soit unsigned int ou unsigned long , mais pas unsigned long int ( je ne sais pas comment le compilateur gere/prorise ça , si il ne genere pas d'erreur)

unsigned long int existe bien

Maximaxou:
unsigned long int existe bien

et ça donne quoi en occupation ?
perso (mais je ne suis pas un specialiste du C ) je trouve ça "ambigu"

ici, il te donne les valeurs : http://neofutur.net/article/4-les-differents-types-de-donnees

Bonjour,

unsigned long est un raccourci pour unsigned long int. C'est la même chose
de la même façon unsigned et unsigned int sont la même chose.

kamill:
Bonjour,

unsigned long est un raccourci pour unsigned long int. C'est la même chose
de la même façon unsigned et unsigned int sont la même chose.

je me coucherais moins c.n ce soir. :grin:
l'important pour le probleme est de transmettre seulement 2 octets et pas 4

Oui mais ça ne marche toujours pas

Maximaxou:
Oui mais ça ne marche toujours pas

quand tu envoie 0xFF00 tu reçois quoi ?
idem pour 0x00FF

fais aussi un test avec çà

void loop()
{  

   bluetooth.write(B11000101); //1100 0101 0000 1011
   bluetooth.write(B00001011); //1100 0101 0000 1011
}

Ca ne marche pas, il affiche la trame qu'à partir du premier 1, d'où le fait que ma trame commence par 1

Maximaxou:
Ca ne marche pas, il affiche la trame qu'à partir du premier 1, ...

donc cà marche ? :grin:
l'ensemble numerique est coherent

ton probleme n'est pas un probleme d'origine arduino , mais de représentation arrivé sous ton appli AI2

Non ça ne marchait pas correctement.
J'ai trouvé, enfin j'ai contourné le problème
Avant je rangeait la trame sous forme de texte dans une variable, après je ne pouvait pas faire d'opération mathématique dessus
Maintenant je range la trame sous forme de texte, puis je la convertit de binaire à décimal puis de décimal à binaire et ça marche. Étrange tout ça
En tout cas merci de ton aide quand même :slight_smile:

Capture.PNG