birrohgt:
grazie per la spiegazione ma sono un po alle prime armi a sto cercando di imparare
allora ti spigo quello che vorrei fare da arduino (1) devo inviare al arduino(2) 2 tipi di informazioni.
la prima è di tipo float (un numero con virgola tipo 7.15 (quello che mi hai gia spiegato)
la seconda deve essere una variabile giusta qualsiasi di tipo int o char ecc non ha importanza (bisogna segliere la migliore per il mio scopo) cioe ad esempio attivare o disattivare un pin digitale sul arduino(2) esempio se mi arriva il numero 1 o la scritta "accendi" mi deve accendere un led
non ho ancora un progetto da postare perche sto solo facendo delle prove di invio dati tra i due arduini per arrivare al mio scopo
non devo fare una cosa molto complessa slo inviare e interpretare questi due tipo di comadi
grazie per aiuto se mi potresti consigliare che strada prendere per fare ciò
Il modo più semplice per trasmettere dati diversi senza alcuna forma di sincronizzazione, se ti limiti a due dati, è usare due software serial e quindi due canali fisici distinti ciascuno dedicato a inviare un tipo di dato. Ogni canale deve avere un TX e un RX dedicati, da cui derivano 4 fili di connessione fra i due Arduino (TX_1, RX_1 - TX_2, RX_2).
Studiati bene questo tutorial e adatta il programma al tuo scopo:
TwoPortReceive
Nell'esempio la scrittura dei dati avviene sul monitor seriale dell'Arduino locale. A te invece interessa inviare dati all'altro Arduino, per cui nel programma dell'Arduino (1) dovrai sostituire le Serial.write() rispettivamente con:
portOne.write(cmd_bool);
portTwo.println(var_float, num_cifre_decimali);
Nota comune per i due programmi: le Serial.println(); usate come "blank line" omettile che non servono.
Nota bene: nel programma che invia le listen() e le available() non le devi usare.
Puoi fare anche il viceversa a seconda di come preferisci. Però stabilisci un ordine perché quello che fai da una parte deve essere speculare nell'altra.
Nell'Arduino (2) farai:
cmd_bool = portOne.read();
var_float = portTwo.parseFloat();
Nota bene: nella ricezione non puoi copiare e incollare direttamente le variabili nell'ordine in cui le ho scritte io. L'uso delle software serial presenta la limitazione di dover ricevere i dati in momenti separati, quindi si usano le listen().
Per non complicarti la vita ti conviene rendere cmd_bool e var_float delle variabili globali. Anche se personalmente non lo farei, ma per fare una prova veloce lo puoi fare.
Schema dei collegamenti se usi due Arduino UNO:

Nota bene: se usi Arduino MEGA i PIN 8,9 non li puoi usare per la software serial e devi sceglierne altri compatibili: limitazioni SoftwareSerial
Anche altri modelli di Arduino hanno limitazioni sui PIN utilizzabili.
Definizione dei PIN programma che invia:
#define TX_1 11
#define RX_1 10
#define TX_2 9
#define RX_2 8
SoftwareSerial portOne(RX_1, TX_1);
SoftwareSerial portTwo(RX_2, TX_2);
Definizione dei PIN programma che riceve:
SoftwareSerial portOne(11, 10);
SoftwareSerial portTwo(8, 9);
#define TX_1 10
#define RX_1 11
#define TX_2 8
#define RX_2 9
SoftwareSerial portOne(RX_1, TX_1);
SoftwareSerial portTwo(RX_2, TX_2);
Come vedi TX e RX si invertono fra i due Arduino se si mantiene lo stesso ordine di PIN.
per il numero con la virgola puoi anche pensare di moltiplicarlo per 100 e poi trasmetterlo come intero, una volta ricevuto lo dividi per la stessa quantità 
Giustissimo Patrick, volevo citare anche questo metodo ma poi mi sono scordato di farlo :D.