probleme branchement 2 boards arduino ensemble via RX/TX

Bonjour,

J'ai un petit phénomène que je n'arrive pas à comprendre lors d'une communication arduino/arduino RX/TX, si vous avez une idée n'hésitez pas!

  1. je branche via RX/TX une board arduino sur une autre board arduino sans micro relié à l'ordi (USB). Je récupère sans souci des variables sur l'ordinateur (via logiciel arduino)

  2. Je branche maintenant deux board avec micro entres elles via RX/TX, les variables (int) ne sont plus les mêmes... un trois devient 51, un quatre devient 52... (le 1 et 0 passe, mais pour les grosses valeurs ça devient nimporte quoi!!!) Cela est vrai, aussi bien pour l'ordinateur qui regarde le traffic, que pour le micro qui n'a donc pas les valeurs expectés.

Mon but est de recuperer une donnée analogique sur une board et l'envoyer en série sur une autre board (par la suite en Xbee)
Je précise que ce n'est ni un probleme de masse commune, ni une inversion RX/TX.

Merci d'avance :~

C'est parce que tu envois un caractère ascii et qu'à la réception il est sous forme décimale.

regarde ici :

http://www.table-ascii.com/

et là :

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1237119479

Donc j'envoie ma donnée en décimal, le recepteur l'interprète tel quel et me lit 54 au lieu de 6, je comprends...

http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Serialprint
J'étais sur ce site qui spécifie les données d'envoies, mais quel format dois je mettre pour avoir ce que je veux à la fin?
Serial.println(lum1, DEC); ne changera rien vu que j'envoie deja en decimal... comment envoyer en ce qu'il appel "caractère" sur le code ASCII?

Regarde là :

jeanot1314:
J'étais sur ce site qui spécifie les données d'envoies, mais quel format dois je mettre pour avoir ce que je veux à la fin?
Serial.println(lum1, DEC); ne changera rien vu que j'envoie deja en decimal... comment envoyer en ce qu'il appel "caractère" sur le code ASCII?

Le but final c'est d'envoyer la valeur ?
Tu peut faire une chose pour te faciliter la vie coté, arduino N°1 tu fait un Serial.println(valeur,DEC); puis coté arduino N°2 tu utilise la librairie messenger elle fera le travail pour toi ou sinon EasyTransfer Arduino Library « The Mind of Bill Porter

avec quelques difficultés je suis arrivé à le faire avec des char...
soit une émission :
char toto = (analogRead(capteur1)/4)
Serial.print("toto");

Et une réception :
if (Serial.available() > 0) {
incomingByte = Serial.read();
Serial.println((int)(incomingByte*4));

Le /4 et *4 me permettent de pas dépasser les 8 bits lors de la transmission... ya surement des trucs plus propre

merki encore