ARDUINO UDP

Fino ad ora per far comunicare gli Arduino collegati alla LAN ho usato la libreria "Ethernet.h" che a sua volta usa il protocollo TCP, in questa pagina presento un sistema di comunicazione basato sul protocollo UDP che utilizza la libreria "EthernetUdp.h".
A differenza del primo protocollo l'UDP non richiede una connessione continua tra gli Arduini interessati alla comunicazione, non verifica che i pacchetti arrivino a destinazione e quindi non aspetta risposte e non risponde ad esse per il controllo del flusso dei dati, il programma che sfrutta questo tipo di protocollo e' piu' leggero e di maggiore compressione, a grandi linee le sue istruzioni sono paragonabili a quelle che gestiscono la seriale.
Tutte queste caratteristiche rendono il protocollo UDP ideale per trasmettere dati a velocita' superiori di quella per trasmetterli  in ambito TCP quando, ovviamente, non si da importanza alla perdita o alla ricezione di  pacchetti alterati lungo il percorso.
In questa pagina il sistema che presento e' solo dimostrativo dato che non richiede alte velocita' di trasmissione dati e serve solo per comprendere il meccanismo di base della comunicazione UDP,.
Il materiale che serve e' il seguente:

1) Un Arduino Mega con shield Ethernet.
2) Un Arduino Nano con shield Ethernet.
3) Un pulsante.
4) Due resistenze 1K 1/4 W.
5) Due led.

Lo schema a blocchi relativo e' rappresentato nella seguente figura:

Premendo il pulsante viene spedito un byte ('a') ad Arduino Uno, quest'ultimo lo legge e se e' corretto  illumina  il  led ad esso collegato, successivamente spedisce al mittente un byte che illumina o spegne il led collegato ad Arduino Mega a seconda del suo stato precedente. Questo sistema ci assicura che il dato e' stato ricevuto da Arduino Uno semplicemente osservando se il led del pulsante ha cambiato stato.
Il diagramma di flusso del programma caricato su Arduino Mega  e' rappresentato nella figura seguente:

Il diagramma di flusso del programma caricato su Arduino Uno  e' rappresentato nella figura seguente:

Nelle due figure seguenti sono rappresentati i collegamenti di Arduino Mega e Arduino Uno (nel disegno, per chiarezza, non sono presenti le schield  Ethernet).



File sorgente
Fabio
HOME