Comunicare e convertire array di bit tra due arduino

Salve a tutti, per il mio primo grosso progetto ho bisogno di comandare due motori stepper e tre servomotori collegati ad un arduino mega tramite un arduino nano.
Per fare questo ho acquistato gli economicissimi moduli rf da 433Mhz e ne ho verificato il funzionamento con un oscilloscopio.
Se l'ingresso del modulo di trasmissione è high allora l'uscita del modulo ricevente sarà anch'essa high e viceversa. Sapendo questo ho bisogno di trasferire degli int (che serviranno per posizionare i motori) da arduino nano ad arduino mega ma non riesco a pensare ad un programma adatto.
So che questa comunicazione posso farla molto facilmente tramite librerie esterne ma siccome mi piace complicarmi la vita, unito al fatto che voglio usare meno librerie per imparare il più possibile, preferisco scrivere io stesso un programma per farlo.

Nello specifico ho intenzione di inviare un primo array di 3 bit nel quale comunico quale motore muovere, far seguire questi tre bit da un segnale high o low (dipende da come scriverò il programma) di durata stabilita (ad esempio 10 millisecondi) che servirà all'arduino ricevente per capire che la trasmissione dei primi tre bit è terminata e poi inviare un array di 8 o 16 bit(rispettivamente per i servomotori e per i motori stepper) per comunicare la posizione in cui il motore(stabilito in precendenza dall'array di tre bit) si deve posizionare; infine per comunicare la fine della trasmissione far seguire il tutto da un altro segnale low o high di durata stabilita.

Ora saprei come scrivere il software e inviare un array di bit ma quello che non so è come convertire una variabile int e conservarlo in un array, da inviare poi con un ciclo for
se ad esempio devo comunicare al motore numero 2 di andare in posizione 500 come faccio a ricavare due array contenenti rispettivamente 010 e 111110100?

Il problema non si ferma qui: nell'arduino ricevente ho bisogno dell'operazione inversa, ossia tradurre questi array in variabili int.
Come posso fare?
Grazie a tutti in anticipo per le risposte

Il problema di fondo è che il bit non è contemplato come informazione minima gestibile, quella è il byte, infatti se noti i più classici bus inviano dati 8 bit alla volta, il massimo che puoi fare è creare un array di 2 byte per inviare i tuoi interi, e poi estrapolare i singoli bit mediante un processo meccanico.

int a = 57;

bool bit1 = a & 0b1;
bool bit2 = a & 0b10;
bool bit2 = a & 0b100;

//oppure

byte bit1 = a & 0b1;
byte bit2 = (a >> 1) & 0b1;
byte bit3 = (a >> 2) & 0b1;

Con una Union e la libreria EasyTranser.
--> EasyTransfer Arduino Library « The Mind of Bill Porter

Prima di affrontare il problema software, considera che la trasmissione/ricezione di questi bit deve essere affidabile.

Cioè devi usare una algoritmo come minimo con controllo di un carattere di checksum, abortendo segnali ricevuti non congrui.

Non puoi permetterti di trasmettere 10101011 e ricevere 11011111!