Go Down

Topic: [RESOLU] récupérer plusieurs valeurs processing vers arduino : serial.read(); (Read 6062 times) previous topic - next topic

Jean-François

Imagine que ta liaison série soit un tuyaux, tu envoies des billes depuis un bout... les billes ressortent une à une de l'autre coté.
Pour récupérer ces billes l'Arduino à un tapis roulant avec des gobelets, chaque gobelets ne peux avoir qu'une bille à la fois (Serial.read()).
Par contre tu peux ensuite vider les gobelets dans une bouteille (string)....

Et tu peux faire ainsi :

Code: [Select]
r += Serial.read()-48;

C'est pareille que :

Code: [Select]
r=r + Serial.read()-48;
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5<br />imac PPC G3 os X Pa

chesnel

si j'envoie par exemple 145 depuis processing, arduino va les recevoir en miroir
Donc en premier le 1*100 = 100
Le deuxième 4*10 = 40
troisième

100+40+5 = 145 ! et la valeur est reconstitué :)

ahh super ! merci à toi :)

Jean-François

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5<br />imac PPC G3 os X Pa

teonocalt

Bonjour,

je me suis un peu perdu dans ce post, et je n'ai pas eu le "déclic" de compréhension :

j'ai deux capteurs, le premier capte 25 et le second 12 (c'est un exemple)
j'envoie 2 valeurs avec une entête pour les différencier depuis arduino, pas de soucis ...

A25
B12

je récupère ça dans processing : (oui tout va bien)

A25
B12

ce que je ne sais pas faire c'est virer l'entête pour réaffecter les valeurs a chacune de mes variables

Variable1 = 25
Variable2 = 12

en pseudo code ça donnerais ça :

Code: [Select]

{
    //on lit le premier caractère
    char choseLue = Serial.read();
 
    if(choseLue == A) //si c'est A
    {
        Variable1 = PAS le premier caractere mais les autres et ce n'est plus une chaine mais un INT ;
    }

    if(choseLue == B) //si c'est B
    {
        Variable2 = PAS le premier caractere mais les autres et ce n'est plus une chaine mais un INT ;
    }
   
}




Si vous pouvez m'éclairer un peu ça serait magique.
Merci



Go Up