Progetto 6 Ricezione IR

1.Descrizione
Non c’è dubbio che il telecomando a infrarossi sia onnipresente nella vita quotidiana. Viene utilizzato per controllare vari elettrodomestici, come TV, stereo, videoregistratori e ricevitori di segnali satellitari. Il telecomando a infrarossi è composto da un sistema di trasmissione a infrarossi e un sistema di ricezione a infrarossi, cioè un telecomando a infrarossi e un modulo ricevitore a infrarossi e un microcontrollore in grado di decodificare.

Il segnale portante a infrarossi a 38K emesso dal telecomando è codificato dal chip di codifica nel telecomando. È composto da una sezione di codice pilota, codice utente, codice utente inverso, codice dati e codice dati inverso. L’intervallo di tempo dell’impulso viene utilizzato per distinguere se è un segnale 0 o 1 e la codifica è composta da questi segnali 0, 1.
Il codice utente dello stesso telecomando è costante mentre il codice dati può distinguere il tasto.
Quando si preme un tasto del telecomando, il telecomando invia un segnale portante a infrarossi. Quando il ricevitore IR riceve il segnale, il programma decodifica il segnale portante e determina quale tasto è stato premuto. Il MCU decodifica il segnale 01 ricevuto, giudicando così quale tasto è stato premuto dal telecomando.
Il ricevitore a infrarossi che usiamo è un modulo ricevitore a infrarossi. Composto principalmente da una testa ricevente a infrarossi, che è un dispositivo che integra ricezione, amplificazione e demodulazione. Il suo IC interno ha completato la demodulazione e può realizzare dalla ricezione a infrarossi all’uscita ed è compatibile con segnali TTL.
Inoltre, è adatto per telecomandi a infrarossi e trasmissione dati a infrarossi. Il modulo ricevitore a infrarossi realizzato dal ricevitore ha solo tre pin, linea del segnale, VCC e GND. È molto comodo per comunicare con Arduino e altri microcontrollori.
2.Specifiche
Tensione di funzionamento: 3.3-5V (DC)
Segnale di uscita: Segnale digitale
Angolo di ricezione: 90 gradi
Frequenza: 38kHz
Distanza di ricezione: 10m
L’immagine mostra il prodotto reale e lo schema elettrico del ricevitore a infrarossi.

3.Componenti
Scheda di Sviluppo *1 |
Driver Motore 8833 *1 |
Modulo LED Rosso*1 |
|---|---|---|
|
|
|
Cavo Dupont 3P*1 |
Cavo USB*1 |
|
|
|
Poiché la scheda 8833 integra il ricevitore IR, non necessita di cablaggio. I pin del modulo ricevitore IR sono G (GND), V (VCC) e D3.
4.Codice di Test
//*************************************************************************************
/*
keyestudio 4wd BT Car
lesson 6.1
IR remote
http://www.keyestudio.com
*/
#include <IRremote.h> //dichiarazione libreria IRremote
int RECV_PIN = 3; //definisce il pin del ricevitore IR come D3
IRrecv irrecv(RECV_PIN);
decode_results results; // i risultati della decodifica esistono in “results” di “decode_results”
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Abilita il ricevitore
}
void loop() {
if (irrecv.decode(&results))//decodifica con successo, riceve un set di segnali a infrarossi
{
Serial.println(results.value, HEX);//Stampa il valore in esadecimale a 16 bit e riceve il codice
irrecv.resume(); // Riceve il valore successivo
}
delay(100);
}
//*************************************************************************************
5.Risultato del Test
Dopo aver caricato con successo il codice sulla scheda V4.0, collegare i cablaggi secondo lo schema elettrico, quindi collegare il computer tramite un cavo USB per alimentare la scheda. Dopo l’accensione, aprire il monitor seriale e impostare la velocità di trasmissione a 9600.
Prendere il telecomando e inviare il segnale al sensore ricevitore a infrarossi. È possibile vedere il valore del tasto corrispondente; se il tempo di pressione del tasto è troppo lungo, FFFFFFFF tende a generare caratteri illeggibili.

I valori dei tasti del telecomando Keyestudio sono mostrati di seguito.

6. Spiegazione del Codice
irrecv.enableIRIn(): Dopo aver abilitato la decodifica IR, i segnali IR verranno ricevuti,
decode(): La funzione “decode()” controllerà continuamente per assicurarsi che la decodifica sia avvenuta con successo.
irrecv.decode(&results): dopo una decodifica riuscita, questa funzione restituirà “true” e conserverà il risultato in “results”. Dopo aver decodificato i segnali IR, eseguire la funzione resume() e continuare a ricevere il segnale successivo.
7. Pratica Estesa
Abbiamo decodificato il valore dei tasti del telecomando IR. Che ne dite di controllare il LED tramite il valore misurato? Potremmo progettare un esperimento.
Collegare un LED a D9, quindi premere i tasti del telecomando per accendere e spegnere il LED.

//*************************************************************************************
/*
keyestudio 4wd BT Car
lesson 6.2
IR remote LED
http://www.keyestudio.com
*/
#include <IRremote.h>
int RECV_PIN = 3;//definisce il pin del ricevitore IR come D3
int LED_PIN = 9;//definisce il pin del LED come pin 9
int a=0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{Serial.begin(9600);
irrecv.enableIRIn(); //Inizializza il ricevitore IR
pinMode(LED_PIN,OUTPUT);//imposta il pin 9 del LED come OUTPUT
}
void loop() {
if (irrecv.decode(&results))
{
if(results.value==0xFF02FD && (a==0)) //secondo il valore del tasto sopra, premendo “OK” sul telecomando, il LED sarà controllato
{
Serial.println("HIGH");
digitalWrite(LED_PIN,HIGH);//il LED si accenderà
a=1;
}
else if(results.value==0xFF02FD && (a==1)) //premere di nuovo
{
Serial.println("LOW");
digitalWrite(LED_PIN,LOW);//il LED si spegnerà
a=0;
}
irrecv.resume(); // riceve il valore successivo
}
}
//*************************************************************************************
Dopo aver caricato con successo il codice sulla scheda V4.0, collegare i cablaggi secondo lo schema elettrico, quindi collegare il computer tramite un cavo USB per alimentare la scheda. Dopo l’accensione, premendo il tasto “OK” sul telecomando si può accendere e spegnere il LED.




