In questo articolo vediamo come sviluppare in Arduino Uno un ricevitore IR/RF che permetta di catturare i dati inviati da un telecomando che utilizza una delle due tecnologie di comunicazione.

IR e RF: Breve Panoramica

Le tecnologie principalmente utilizzate a livello commerciale per sviluppare dispositivi a controllo remoto sono 2: RF anche conosciuta come “frequenze radio” e IR ovvero “infrarosso“.

Entrambe hanno vantaggi e svantaggi.

IR è veloce, efficiente e offre l’abilità di comunicare un’ampia varietà di comandi. Il rovescio della medaglia è il range di funzionamento, affidabile sulla corta distanza e senza alcun oggetto che si interponga tra il trasmettitore e il ricevitore.

Dall’altro lato RF, opera a distanze decisamente più lunghe ed è robusto anche di fronte ad ostacoli da dover oltrepassare ma risulta povero in termini di complessità di comandi.

Per entrambe le tecnologie esistono trasmettitori e ricevitori acquistabili online e interfacciabili con Arduino Uno.

Per quanto riguarda IR, ti consiglio questo prodotto:

mentre per RF ho utilizzato quest’altra coppia di moduli il cui ricevitore è il seguente:

Il Circuito

Come puoi vedere il circuito finale è tutt’altro che complicato, oltre ai 2 ricevitori che abbiamo appena presentanto, è sufficiente avere una scheda Arduino Uno e qualche cavetto di connessione.

Tenendo di riferimento questa immagine, il sensore infrarosso è quello posto in alto a destra della breadboard mentre quello RF è posto in alto a sinistra.

Per quanto riguarda il primo, andiamo collegare il pin OUT, ovvero l’ultimo pin a destra, con il pin 4 della nostra scheda Arduino Uno (cavo rosso) mentre i pin GND e VCC vengono collegati rispettivamente alle colonne – (cavo bianco) e + (cavo marrone) della breadboard.

Similmente a quanto appena fatto, colleghiamo anche i pin del sensore RF. In questo caso abbiamo che il primo e ultimo pin corrispondono rispettivamente al + (cavo marrone) e al – (cavo bianco) della breadboard; si utilizza infine solo il penultimo pin per il segnale analogico che andiamo quindi a collegare nel pin 2 della scheda Arduino Uno (cavo verde).

Per terminare non ci resta che alimentare la nostra breaboard, per far ciò colleghiamo il pin GND di Arduino alla colonna – della bread (cavo giallo) e il pin 5V di Arduino alla colonna + (cavo giallo).

Lo Sketch

Bene, adesso siamo pronti a caricare su Arduino il nostro sketch per poter interagire con i sensori appena collegati.

Puoi scaricare il codice completo da questo repository.

Apri Arduino IDE e, dopo aver collegato la tua scheda tramite l’apposito cavo in dotazione, clicca su Strumenti -> Scheda -> Arduino Uno.

Controlla inoltre che sia selezionata la porta di comunicazione corretta sempre da Strumenti -> Porta -> COM3 (nel mio caso specifico).

Se non ancora installate, è necessario procedere a scaricare le librerie IRremote e RCSwitch.

Per far ciò vai su Strumenti -> Gestione librerie e dalla finestra che si apre cerca le librerie ed installale.

Bene, adesso diamo un rapido sguardo allo sketch:

Copy to Clipboard

Dopo aver inlcuso le librerie che hai appena installato, definiamo i PIN per la ricezione dei dati da parte del ricevitore IR (pin numero 4) e RF (pin numero 2), insieme agli oggetti che gestiscono la logica di interfacciamento con i sensori (irrecv e mySwitch).

Copy to Clipboard

Nella funzione di setup, inizializziamo il baud rate per la comunicazione seriale a 9600 e specifichiamo le informazioni necessarie al corretto funzionamento degli oggetti irrecv e mySwitch.

Copy to Clipboard

Infine nella funzione di loop controlliamo iterativamente l’arrivo di nuovi dati dai sensori e in caso affermativo li stampiamo a schermo.

Nel caso di dati in arrivo dal sensore RF, si fa uso di una libreria di formattazione (output) che è presente sempre nel progetto scaricabile dal repository.

Conclusioni

Perfetto, adesso dal nostro IDE procediamo con il caricare lo sketch sulla scheda Arduino e poi clicchiamo su Strumenti -> Monitor Seriale.

La finestra che si apre mostra in basso a destra una listbox da cui è possibile selezionare il baudrate corretto, schegli 9600.

A questo punto, avvicina un qualsiasi telecomando che hai a casa e premi un pulsante, se la tecnologia utilizzata rientra tra quelle compatibili con i sensori che abbiamo montato, dovresti poter vedere delle stringhe stampate a schermo come le seguenti.