Go Down

Topic: Arduino/bluetooth/app inventor 2 (Read 1 time) previous topic - next topic

Maximaxou

Jan 06, 2017, 06:31 pm Last Edit: Jan 06, 2017, 06:39 pm by Maximaxou
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

Artouste

#1
Jan 06, 2017, 07:04 pm Last Edit: Jan 06, 2017, 07:05 pm by Artouste
...
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 ?

Maximaxou

#2
Jan 06, 2017, 07:22 pm Last Edit: Jan 06, 2017, 07:28 pm by Maximaxou
Bonsoir :)

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
}

Artouste

Bonoir :)

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 çà
Code: [Select]
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
}



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

Artouste

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)

Maximaxou

unsigned long int existe bien

Artouste

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"

Maximaxou

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

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.

Artouste

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. :smiley-mr-green:
l'important pour le probleme est de transmettre seulement 2 octets et pas 4

Maximaxou

Oui mais ça ne marche toujours pas

Artouste

#12
Jan 06, 2017, 08:44 pm Last Edit: Jan 06, 2017, 09:07 pm by Artouste
Oui mais ça ne marche toujours pas
quand tu envoie 0xFF00 tu reçois quoi ?
idem pour 0x00FF

fais aussi un test avec çà
Code: [Select]

void loop()


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



Maximaxou

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

Artouste

Ca ne marche pas, il affiche la trame qu'à partir du premier 1, ...
donc cà marche ? :smiley-mr-green:
l'ensemble numerique est coherent

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



Go Up