Il aura fallut que tu me le dise 3 fois pour que j' arrête avec mes string et que je copie ton code !!
Merci a toi ça fonctionne très bien.
Au moins tu as finit par le faire c'est le principal

Bon déja : byte report[3]; -> erreur !
c'est : byte report[4]; puisque un int est stocké sur 2 octets

Par contre j' ai de grosse lacune en prog et comme j'aime bien comprendre ce que je fais, peux-tu m'expliquer =
byte report[1]; et pas int report[1]; (j'ai essayer les valeur s'arrete a 255 et reparte a zero
Pourquoi byte et non int ?
Tout simplement parce que je préfère manipuler des octets brute plutôt que des types prédéfini, c'est tout

Version avec un tableau de int :
#include <VirtualWire.h>
int report[2];
void setup()
{
Serial.begin(9600);
Serial.println("setup");
vw_setup(2000);
}
void loop()
{
report[0] = analogRead(A0);
report[1] = analogRead(A1);
vw_send((uint8_t *)report, sizeof(report));
vw_wait_tx();
delay(1000);
}
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600);
Serial.println("setup");
vw_setup(2000);
vw_rx_start();
}
void loop()
{
int buf[2];
uint8_t buflen = sizeof(buf);
if (vw_get_message((uint8_t *)buf, &buflen))
{
Serial.print("Got: ");
Serial.println();
Serial.print(buf[0]);
Serial.println();
Serial.print(buf[1]);
Serial.println();
}
}
Au niveau du bitwise (xx << nn, xx & nn, etc etc) c'est une technique de transformation d'octet.
xx << nn, permet de "décaler" les bits de la valeur xx par nn rang vers la gauche,
xx >> nn, permet de édécaler" les bits de la valeur xx par nn rang vers la droite,
xx & nn, applique un masque nn de "et" logique sur chaque bits de xx
etc etc ...
Dans cette application j'utilise le bitwise pour transformer des int de 2 octets en deux octets séparé.
Si tu est curieux :
http://en.wikipedia.org/wiki/Bitwise_operation