Trasmettere valori 10-Bit ADC con VirtualWire

Ciao a tutti, voglio trasmettere il valore di un potenziometro (da 0 a 1023), con la libreria VirtualWire per i classici modulini a 433MHz. Come posso trasmetterli, dato che la libreria supporta soltanto array di char a 8 bit? Grazie in anticipo

nid69ita grazie per avermi risposto, ma il tuo post è sparito. Lo riporto qui sotto:

0-1023 ovvero un numero int (word), quindi 2 byte (1 char è 1 byte) Puoi usare lowByte() e highByte() per spezzare il valore int in 2 byte, metterlo in array di char e spedirlo http://arduino.cc/en/Reference/LowByte

Con word(h,l) lo rimetti insieme http://arduino.cc/en/Reference/WordCast

Ok, sono riuscito e ho scritto un piccolo sketch per provare le 2 funzioni:

byte bitAlto=0;
byte bitBasso=0;
int numero=0B1010100011; //corrisponde a 675
int unione=0;
void setup() {

  Serial.begin(9600);
  bitBasso=lowByte(numero);
  bitAlto=highByte(numero);
  Serial.println(numero,DEC);
  Serial.println(bitBasso,BIN);
  Serial.println(bitAlto,BIN);
  unione= int(word(bitAlto,bitBasso)); //unisce i 2 byte e converte in variabile int
  Serial.println(unione);
}

void loop() {
  //non c'è niente da eseguire all'infinito!
}

Sorry, l'ho cancellato per un motivo. Secondo me non credo ti possa funzionare con VirtualWire. :D

VirtualWire è questo? http://www.airspayce.com/mikem/arduino/VirtualWire/ E quindi il comando per spedire questo?

uint8_t vw_send (uint8_t *buf, uint8_t len)

Questo comando non ti permette di spedire dati che non siano testo. Alcuni valori spediti non rientrano tra 65 (A) e 90 (Z) o comunque tra i valori 32 e 128 e possono essere interpretati come caratteri speciali. Ad esempio 0 di solito è il terminatore di stringa (vettore di char). Secondo me è meglio se utilizzi la conversione da int a testo e spedisci i numeri come testo. Poi quando li ricevi li riconverti. Puoi usare la snprint()

char buf[5];   // 4 numeri + fine stringa
snprintf(buf,5,"%04d",tuovaloreint);    // spedisce sempre 4 cifre, esempio 123=>0123
vw_send(buf,strlen(buf));

In ricezione puoi usare atoi(), converte da testo a intero.

Ah, perchè?