Citazione:
Originalmente inviato da CarloRoma63 Il protocollo di comunicazione non mi piace come è stato fatto. Io avrei scelto un timing fisso, gestito da interrupt, e ci avrei messo i bit. In questo modo si potrebbero inviare frame più lunghe, includendo anche un CRC o almeno un bit di parità....
Carlo
P.S. mi dispiace per le stelle... |
Un'altra alternativa, più ad alto livello, potrebbe prevedere l'utilizzo della libreria di comunicazione della Radio Head
RadioHead: RadioHead Packet Radio library for embedded microprocessors, usando il driver per una seriale generica. La differenza è che, rispetto al codice che ho già postato, occorre un generatore di tono separato (che potrebbe essere arduino stesso) ed un mosfet che applica tale tono all'emettitore ad ultrasuoni.
Se l'arduino che usi ha solo una seriale, solitamente utilizzata per il debug, si può utilizzare la SoftwareSerial e creare così una seconda seriale.
La libreria di RH gestisce direttamente la pacchettizzazione ed il CRC.
Carlo