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