Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP

In questa lezione, spiegheremo prima il principio dei comuni protocolli di comunicazione IR. Poi scriveremo un piccolo programma per testare il codice IR di ogni pulsante di un telecomando. Infine useremo il pulsante OK del telecomando per accendere/spegnere un LED.

Per esempio, quando si preme un pulsante sul telecomando del televisore, un LED IR si accende e si spegne ripetutamente, 38.000 volte al secondo, per trasmettere informazioni (come il volume o il controllo del canale) a un sensore a infrarossi sul televisore.

Fase 1: Leggere il codice IR dalla porta seriale di Arduino

In questa fase, vi diremo come testare il codice IR di ogni pulsante in IR remoter e visualizzare il codice nel monitor seriale Mixly.

COLLEGAMENTO

Collegare prima la scheda Magic I/O di OSOYOO alla scheda UNO. Poi collegare il ricevitore IR alla porta D2 della scheda Magic I/O con un cavo PNP a 3 pin come nella seguente immagine (come nella fase 1), poi collegare un modulo LED alla porta D12 della scheda Magic I/O come segue:

Avviso: Togliere la batteria o scollegare l’adattatore di alimentazione quando si carica il codice dello sketch su Arduino.

Puoi scaricare il codice direttamente, poi clicca su ” Open” in Mixly per scegliere il codice che hai scaricato:

Download Code

Oppure potete fare le seguenti operazioni:
Dopo aver completato le operazioni di cui sopra, collegare la scheda Arduino al computer tramite il cavo USB. Il LED verde dell’alimentazione (etichettato PWR) dovrebbe accendersi. Aprire il software di programmazione grafica Mixly e seguire le prossime operazioni:

Trascinate il blocco IR Control dalla categoria Communicate, impostate il pin 3 come ingresso.

Salvare e caricare il programma sulla scheda Arduino

(1)Fare clic su Save dopo aver terminato la programmazione.

(2) Seleziona il tipo di scheda e la porta seriale prima di caricare. Nel nostro caso, stiamo usando la scheda Uno, quindi basta selezionare Arduino/Genuino Uno.

(3) Selezionate il dispositivo seriale della scheda Arduino dal menu COM.

(4) Successivamente, caricare (upload) il codice. Se il caricamento non riesce, controlla la connessione secondo le istruzioni.

(5)Infine, lo stato cambierà in ‘Upload success!

Aprite il Serial Monitor nel Mixly a 9600 bps e premete diversi pulsanti sul vostro telecomando IR. Lo sketch decodificherà automaticamente il tipo di telecomando che stai usando e identificherà quale pulsante del tuo telecomando viene premuto. Il monitor seriale mostra la pressione casuale dei pulsanti del mio telecomando. Pulsanti diversi mostrano codici diversi:

(NOTA: ricevere “FFFFFFFF” significa “ripetere” se si tiene premuto il pulsante).

Ora potete premere il pulsante OK e vedere qual è il risultato nel monitor seriale di Mixly. Scrivete questo codice per un uso successivo.

Fase 2: usare il telecomando IR per accendere/spegnere un LED

Nella fase 1, possiamo conoscere il codice IR del pulsante OK premendo il pulsante OK nel programma della fase 1. Nella fase 2, approfitteremo di questa conoscenza per usare il pulsante OK per accendere/spegnere un LED.

COLLEGAMENTO

Collegare prima la scheda Magic I/O di OSOYOO alla scheda UNO. Poi collegare il ricevitore IR alla porta D2 della scheda Magic I/O con un cavo PNP a 3 pin come nella seguente immagine (come nella fase 1), poi collegare un modulo LED alla porta D12 della scheda Magic I/O come segue:

Puoi scaricare il codice direttamente, poi clicca su “Open” in Mixly per scegliere la lezione12-2 codice che hai scaricato:

Download the Code

Oppure potete fare le seguenti operazioni:
Per prima cosa trascinate un blocco if nella categoria Control.
Trascina fuori il primo blocco nella categoria Logic.
Trascina fuori un blocco ir item nella categoria Variables.
Trascina fuori un blocco 0 nella categoria Match.

Nota: lo 0xFF38C7 nell’immagine sopra è il pulsante OK che abbiamo ottenuto dal programma di esempio della fase 1.

Trascinate un blocco DigitalWrite nella categoria In/Out e un blocco Delay nella categoria Control.

Impostare il pin 12 come uscita, trascinare un blocco not dalla categoria logic nel blocco stat


Trascinare un blocco DigitalWrite dalla categoria In/Out nel blocco stat

Salvare e caricare il programma sulla scheda Arduino
(1) Fare clic su Save dopo aver terminato la programmazione.

(2) Seleziona il tipo di scheda e la porta seriale prima di caricare. Nel nostro caso, stiamo usando la scheda Uno, quindi basta selezionare Arduino/Genuino Uno.

(3) Selezionate il dispositivo seriale della scheda Arduino dal menu COM.

(4) Successivamente, caricare (upload) il codice. Se il caricamento non riesce, controlla la connessione secondo le istruzioni.

(5) Infine, lo stato cambierà in ‘Upload success!.

Pochi secondi dopo la fine del caricamento, premere il pulsante “OK” di un telecomando, il LED collegato a D12 si accenderà. Poi premere di nuovo “OK”, e i LED si spegneranno.

CHE COS’È L’INFRAROSSO (IR)?

La luce infrarossa è in realtà luce normale con un colore particolare. Noi umani non possiamo vedere questo colore perché la sua lunghezza d’onda di circa 950 nm è al di sotto dello spettro visibile.

Dobbiamo sapere che ci sono molte altre fonti di luce infrarossa. Il sole è la fonte più luminosa di tutte, ma ce ne sono molte altre, come: lampadine, candele, sistema di riscaldamento centrale, e anche il nostro corpo irradia luce a infrarossi.

Uno schema di modulazione comune per la comunicazione IR è qualcosa chiamato modulazione 38kHz. Ci sono pochissime fonti naturali che hanno la regolarità di un segnale a 38kHz, quindi un trasmettitore IR che invia dati a quella frequenza si distinguerebbe tra l’IR ambientale. I dati IR modulati a 38kHz sono i più comuni, ma si possono usare altre frequenze.

Quando premi un tasto sul tuo telecomando, il LED IR trasmittente lampeggerà molto velocemente per una frazione di secondo, trasmettendo dati codificati al tuo apparecchio.

Se si dovesse collegare un  oscilloscopio fino al LED IR del tuo telecomando, vedresti un segnale simile a quello sopra. Questo segnale modulato è esattamente quello che vede il sistema ricevente. Tuttavia, lo scopo del dispositivo ricevente è quello di demodulare il segnale e produrre una forma d’onda binaria che può essere letta da un microcontrollore. Quando si legge il pin OUT del VS1838B con l’onda di cui sopra, si vedrà qualcosa come il secondo.

Modulazione

Come tutto ciò che irradia calore, irradia anche luce infrarossa. Quindi dobbiamo prendere alcune precauzioni per garantire che il nostro messaggio IR arrivi al ricevitore senza errori. La modulazione del segnale su una frequenza portante è la risposta per far risaltare il nostro segnale sopra il rumore. Con la modulazione facciamo lampeggiare la fonte di luce IR su una frequenza particolare. Il ricevitore IR sarà sintonizzato su quella frequenza, quindi può ignorare tutto il resto.

Nell’immagine qui sotto potete vedere un segnale modulato che guida il LED IR del trasmettitore sul lato sinistro. Il segnale rilevato esce dal ricevitore dall’altro lato.