Cos'è un ricevitore IR. Installiamo un ricevitore IR aggiuntivo nel ricevitore satellitare. Schema di collegamento del ricevitore IR

schema tratto dalla rivista "Giovane Tecnico".

Una direzione interessante dell'elettronica radio, che ha integrato questa elettronica con i nuovi vantaggi della luce "invisibile" (luce infrarossa). Quindi propongo uno schema di un semplice (ad esempio) ricevitore e trasmettitore basato su raggi infrarossi. Base: amplificatore operazionale k140ud7 (qui ho ud708), che emette e riceve fotodiodi IR, ULF (k548un1a (b, c - indici) - per due canali) (anche se il secondo canale dell'amplificatore "accendersi" dipende da te - il circuito del trasmettitore è progettato per un canale, ovvero mono). Alimentazione del dispositivo: generalmente lo consiglio con una discreta stabilizzazione delle correnti (e l'adattatore "dendy" dà fastidio con lo sfondo della "rete"). Metodo: il segnale modulato in ampiezza del trasmettitore viene amplificato dal ricevitore 1000 volte.

Come funziona il dispositivo. Ti consiglio di guardare un breve video per testare "a orecchio" il telecomando IR. Puoi controllare rapidamente le prestazioni e la potenza del segnale tramite il suono.

Schema del ricevitore IR e del trasmettitore IR

Durante il montaggio, i condensatori C1 e C2 dovrebbero essere il più vicino possibile all'amplificatore! All'uscita è possibile collegare cuffie ad alta impedenza (le cuffie a bassa impedenza richiedono un ULF separato). Fotodiodo FD7 (io ho FD263: "pillola" con lente di focalizzazione); Resistenze da 0,125 W: R1 con R4 imposta il fattore di potenza del segnale su 1000 volte. Il ricevitore è facile da configurare: il fotodiodo viene indirizzato verso una fonte di radiazione infrarossa, ad esempio una lampada 220v-50Hz: il filamento verrà emesso ad una frequenza di 50Hz oppure il telecomando del televisore (video, ecc. La sensibilità del ricevitore è elevata: normalmente riceve segnali riflessi dalle pareti.

LED AL107a sul trasmettitore IR: va bene qualsiasi cosa. R2 2 kOhm, C1 1000mkFx25V, C2 200mkFx25V, anche qualsiasi trasformatore. Sebbene sia del tutto possibile fare a meno di un trasformatore, applica un segnale audio amplificato al condensatore C2.

Schema del dispositivo

Schema di un ricevitore IR con ULF

Recentemente, per necessità, ho assemblato un ricevitore IR per testare i telecomandi IR (TV e DVD). Dopo aver finalizzato il circuito, ho installato un mono ULF TDA7056. Questo amplificatore ha buone caratteristiche di guadagno di circa 42 dB; funziona nell'intervallo di tensione da 3 V a 18 V, il che ha consentito al ricevitore IR di funzionare anche con una tensione di 3 V; La gamma di guadagno TDA da 20 Hz a 20 kHz (l'UD708 salta fino a 800 kHz) è più che sufficiente per utilizzare il ricevitore come accompagnamento audio; ha protezione contro il cortocircuito su tutte le "gambe"; protezione contro il "surriscaldamento"; coefficiente di autointerferenza debole. In generale, mi è piaciuto questo ULF compatto e affidabile (ce l'abbiamo per 90 rubli).
C'è una descrizione dettagliata per questo. La Figura 1 mostra un esempio di utilizzo di un amplificatore.


Foto TDA7056


Fig. 1. Circuito amplificatore con TDA7056

Il risultato è un ricevitore IR (Fig. 2), che funziona nell'intervallo di tensione da 3 V a 12 V. Consiglio di utilizzare batterie per alimentare il ricevitore o batterie. Quando si utilizza un alimentatore, è necessaria una sorgente stabilizzata, altrimenti si sentirà un sottofondo di rete a 50 Hz, che amplifica l'UD708. Se il dispositivo si trova vicino a una fonte di tensione di rete o di radiazioni radio, potrebbero verificarsi interferenze. Per ridurre le interferenze nel circuito, è necessario includere il condensatore C5. TDA7056 è progettato per un altoparlante con uscita da 16 ohm, purtroppo non ne ho uno. Ho dovuto utilizzare un altoparlante da 4 ohm 3 watt collegato tramite una resistenza da 1 watt 50 ohm. Una resistenza della bobina dell'altoparlante troppo bassa provoca un eccesso di potenza e surriscalda l'amplificatore. In generale, grazie alla resistenza aggiuntiva, l'ULF non si riscalda, ma fornisce un guadagno abbastanza accettabile.

È possibile realizzare facilmente un ricevitore per telecomando IR per il controllo degli elettrodomestici utilizzando il contatore decimale CD4017, il timer NE555 e il ricevitore a infrarossi TSOP1738.

Utilizzando questo circuito ricevitore IR, puoi controllare facilmente i tuoi elettrodomestici utilizzando il telecomando della TV, il lettore DVD o utilizzando il circuito del telecomando descritto alla fine dell'articolo.

Circuito ricevitore IR per telecomando

I pin 1 e 2 del ricevitore IR TSOP1738 vengono utilizzati per alimentarlo. Il resistore R1 e il condensatore C1 sono progettati per un funzionamento stabile e la soppressione di varie interferenze nel circuito di alimentazione.

Quando i raggi IR a 38kHz colpiscono il ricevitore IR TSOP1738, la sua uscita 3 diventa bassa e quando i raggi IR scompaiono, torna alta. Questo impulso negativo viene amplificato dal transistor Q1, che invia un segnale di frequenza amplificato all'ingresso del contatore decimale CD4017. Le uscite del contatore 16 e 8 sono progettate per alimentarlo. Il pin 13 è collegato a terra, consentendogli di funzionare.

L'uscita di Q2 (pin 4) è collegata al pin di reset (pin 15) per far funzionare il CD4017 come multivibratore bistabile. Durante il primo impulso, Q0 va a log 1, il secondo segnale di clock fa sì che Q1 vada a log 1 (Q0 diventa basso) e il terzo clock fa sì che Q0 vada di nuovo a log 1 (Q2 è collegato a MR, quindi il terzo segnale di clock azzera il contatore ).

Supponiamo che il contatore sia stato ripristinato (Q0 è alto e il resto è basso). Quando si preme il pulsante del telecomando, il segnale dell'orologio influisce sul contatore, portando ad un livello alto su Q1. Pertanto, il LED D1 si accende, il transistor Q2 si accende e il relè viene attivato.

Premendo nuovamente il pulsante del telecomando, sull'uscita Q0 appare il log 1, il relè si spegne e il LED D2 si accende. Il LED D1 indica quando l'apparecchio è acceso e il LED D2 indica quando l'apparecchio è spento.

È possibile utilizzare il telecomando del televisore per controllarlo oppure assemblarne uno separato secondo lo schema seguente.

  • Tensione in ingresso: 2,7 ... 5,5 V
  • Consumo di corrente: 0,65 ... 1,05 mA (a Vcc = 5 V) nominalmente 0,9 mA
  • Frequenza portante: 38 kHz
  • Lunghezza d'onda della luce: 850 ... 1050 nm (trasmessa dal filtro oltre l'80%)
  • Sensibilità: 0,17…30000 mW/m2 (rispetto alla potenza del flusso luminoso)
  • Distanza di ricezione: fino a 45 m
  • Temperatura di esercizio: -25 … 85 °C
  • Angolo direzionale: ±45°

Tutti i moduli della linea “Trema” sono realizzati nello stesso formato

Connessione:

Il modulo si collega a qualsiasi pin digitale dell'arduino. Nel kit è compreso un cavo per il collegamento semplice e veloce al Trema Shield.

È conveniente collegare il modulo in 3 modi, a seconda della situazione:

Metodo - 1: Utilizzando un circuito cablato e Piranha UNO


La libreria utilizza un secondo timer hardware,

NON USCIRE SEGNALI PWM SU 3 O 11 USCITE!

Ulteriori informazioni sull'installazione della libreria nel nostro ..

Ulteriori informazioni sull'utilizzo del modulo:

Pacchetti: Quasi tutti i telecomandi inviano non solo un pacchetto informativo (indicante il tipo di dispositivo e il codice del pulsante premuto), ma ripetono anche pacchetti che informano il dispositivo che il pulsante è stato tenuto premuto. Pertanto, il dispositivo ricevente può rispondere alla pressione del pulsante una volta o durante l'intero tempo in cui viene tenuto premuto.

Ad esempio: tenendo premuto il pulsante con il numero del canale TV, la TV passerà a questo canale solo una volta. Tenendo premuto il pulsante di aumento del volume, il televisore lo aumenterà per tutto il tempo in cui si tiene premuto il pulsante.

Numero di pacchetti informativi la maggior parte dei telecomandi ne ha uno, ma alcuni dispositivi, come i condizionatori d'aria, utilizzano 2, 3 o più pacchetti di informazioni.

La composizione dei pacchetti: Il pacchetto informativo contiene informazioni sul codice del produttore, sul tipo di dispositivo, sul codice del pulsante premuto, ecc. I pacchetti ripetuti possono coincidere parzialmente o completamente con il pacchetto di informazioni, copiarne i bit con inversione o non portare alcuna informazione, rappresentando una sequenza di diversi bit identici per ciascun pacchetto ripetuto.

Durata della pausa tra i pacchetti: di solito non supera i 200 ms.

Protocolli di trasferimento dati: definire i seguenti parametri principali:

  • frequenza portante;
  • metodo di codifica delle informazioni, durata degli impulsi e pause dei bit trasmessi;
  • numero di pacchetti informativi:
  • composizione del pacchetto informativo e dei pacchetti di tentativi;
  • durata delle pause tra i pacchetti;
  • presenza e forma dei segnali di Start, Stop e Toggle;

Frequenza portante: sulla maggior parte dei telecomandi è 38 kHz, che è la frequenza su cui è sintonizzato il ricevitore IR Trema.

Codifica delle informazioni: questo è il principio della trasmissione di bit di dati. Distinguiamo tre tipi principali di codifica, in cui ogni bit viene trasmesso da una sequenza di un impulso e una pausa:

  • codifica della lunghezza dell'impulso: prima viene trasmesso un impulso, la cui lunghezza dipende dal valore del bit trasmesso, quindi segue una pausa, la cui lunghezza non dipende dal valore del bit. Ad esempio: nel protocollo SIRC (Sony), la lunghezza dell'impulso per il bit "1" = 1200 µs, e per il bit "0" = 600 µs, la lunghezza delle pause è sempre 600 µs. Pertanto è possibile distinguere "1" da "0" in base alla lunghezza dell'impulso.
  • codifica a pausa lunga: prima viene trasmesso un impulso, la cui lunghezza non dipende dal valore del bit trasmesso, quindi segue una pausa, la cui lunghezza dipende dal valore del bit. Ad esempio: nel protocollo NEC, la durata della pausa per il bit "1" = 1687,5 µs e per il bit "0" = 562,5 µs, la lunghezza dell'impulso è sempre 562,5 µs. Pertanto è possibile distinguere "1" da "0" in base alla lunghezza della pausa.
  • codifica bifasica: la lunghezza dell'impulso è uguale alla lunghezza della pausa e la loro sequenza determina il tipo di bit trasmesso. Ad esempio: nel protocollo RS5 (Philips), per il bit "1" un impulso segue una pausa, mentre per un bit "0", una pausa segue un impulso. Per il protocollo NRC (Nokia), invece, per il bit "1" all'impulso segue una pausa, mentre per il bit "0" alla pausa segue un impulso.

Segnali di avvio, arresto e commutazione: con il loro nome si trovano all'inizio, alla fine o al centro della confezione.

fermare: Quando si codifica una pausa lunga, è impossibile determinare il valore dell'ultimo bit nel pacchetto, poiché dopo il pacchetto c'è una lunga pausa e l'ultimo bit sarà sempre definito come "1", quindi viene aggiunto il segnale di Stop al pacchetto, che è un impulso che non trasporta alcuna informazione.

inizio: La codifica bifasica richiede un segnale di Start, poiché è impossibile avviare la trasmissione di un pacchetto da una pausa.

Alterna: Questo bit, che cambia valore ad ogni nuova pressione di un pulsante, viene utilizzato nei protocolli RS5, RS5X, RS6 (Philips), dove i pacchetti di ripetizione ripetono completamente i dati del pacchetto di informazioni. Pertanto, il dispositivo ricevente può distinguere tra tenere premuto il pulsante e premerlo nuovamente.

Esempi:

La verifica della disponibilità dei dati ricevuti dal telecomando IR viene effettuata dalla funzione check(). Questa funzione reagisce alla pressione dei pulsanti sul telecomando IR, ma se viene richiamata con il parametro true , reagirà anche alla pressione dei pulsanti.

Leggendo i dati da qualsiasi telecomando, rispondiamo solo alla pressione dei pulsanti:

#includere // Collega la libreria per lavorare con il ricevitore IR iarduino_IR_RX IR(7); // Dichiara un oggetto IR indicando il pin a cui è collegato il ricevitore IR void setup()( Serial.begin(9600); // Avvia il trasferimento dati al monitor della porta seriale ad una velocità di 9600 bps IR.begin(); // Avvia il lavoro con il ricevitore IR ) void loop()( if(IR.check())( // Se il buffer contiene dati ricevuti dal telecomando (il pulsante è stato premuto) Serial.println(IR.data, HEX ); // Stampa il codice del pulsante premuto Serial.println(IR.length); // Stampa il numero di bit nel codice ) )

In questo schizzo, la funzione check() viene chiamata senza argomenti, il che significa che reagisce solo alla pressione dei pulsanti sul telecomando IR.

Leggendo i dati da qualsiasi telecomando, reagiamo tenendo premuti i pulsanti:

#includere // Collega la libreria per lavorare con il ricevitore IR iarduino_IR_RX IR(6); // Dichiara un oggetto IR indicando il pin a cui è collegato il ricevitore IR void setup()( Serial.begin(9600); // Avvia il trasferimento dati al monitor della porta seriale ad una velocità di 9600 bps IR.begin(); // Avvia il lavoro con il ricevitore IR ) void loop()( if(IR.check(true))( // Se ci sono dati ricevuti dal telecomando nel buffer (il pulsante viene tenuto premuto) Serial.println(IR .data, HEX); // Stampa il codice del pulsante premuto Serial.println(IR.length); // Stampa il numero di bit nel codice ) )

In questo sketch, la funzione check() viene chiamata con il parametro true, il che significa che reagisce sia alla pressione che alla pressione dei pulsanti del telecomando IR.

Lettura dei dati da qualsiasi telecomando, indicando come rispondere a quali pulsanti.

#includere // Collega la libreria per lavorare con il ricevitore IR iarduino_IR_RX IR(6); // Dichiara un oggetto IR, indicando il pin a cui è collegato il ricevitore IR // bool flgKey1 = false; uint32_t codKey1 = 0xFF30CF; // Definisce il flag di clic e il codice del pulsante 1 bool flgKey2 = false; uint32_t codKey2 = 0xFF18E7; // Definisce il flag di clic e il codice del pulsante 2 bool flgKey3 = false; uint32_t codKey3 = 0xFF7A85; // Definisce il flag di clic e il codice del pulsante 3 bool flgKey = false; uint32_t tmrKey = 0; // Definisce il flag che consente l'output dei dati sul monitor e l'ora dell'ultima pressione del pulsante. // void setup()( // Serial.begin(9600); // Avvia il trasferimento dei dati al monitor della porta seriale, a una velocità di 9600 bps IR.begin(); // Avvia il lavoro con il ricevitore IR) // / / void loop()( // if(IR.check(true))( // Se ci sono dati ricevuti dal telecomando nel buffer (il pulsante viene tenuto premuto), allora... if(millis() -200 > tmrKey)( / / Se sono trascorsi più di 200 ms dall'ultimo comando ricevuto, allora flgKey1=false; // Consideriamo che il pulsante 1 non sia tenuto premuto flgKey2=false; // Consideriamo che il pulsante 2 non sia tenuto premuto flgKey3=false; // Consideriamo che il pulsante 3 non sia tenuto premuto ) tmrKey = millis(); flgKey=true; // Salva l'ora dell'ultima reazione al telecomando e abilita l'output dei dati if(IR.data ==codKey1)( if(flgKey1)(flgKey=false;) flgKey1=true; )else(flgKey1= false;) // Disabilita l'output dei dati del pulsante 1 tenendolo premuto if(IR.data==codKey2)( if(flgKey2 )(flgKey=false;) flgKey2=true; )else(flgKey2=false;) // Disabilita il pulsante di uscita dati 2 tenendolo premuto if(IR.data==codKey3)( if(flgKey3)(flgKey=false;) flgKey3 =vero; )else(flgKey3=false;) // Disabilita l'output del pulsante 3 tenendolo premuto if(flgKey)( // Se l'output dei dati è abilitato, allora... Serial.println(IR.data, HEX); // Stampa il codice del pulsante premuto pulsanti Serial.println(IR.length); // Stampa il numero di bit nel codice ) // ) // ) //

In questo schizzo, la funzione check() viene chiamata con il parametro true, il che significa che reagisce sia alla pressione che alla pressione dei pulsanti del telecomando IR. Ma l'output dei dati sul monitor della porta seriale viene eseguito solo quando è impostato il flag flgKey, che viene ripristinato tenendo premuti i pulsanti con i codici 0xFF30CF , 0xFF18E7 e 0xFF7A85 . Si scopre che lo schizzo reagisce a 3 pulsanti solo quando vengono premuti e ai restanti pulsanti, sia alla pressione che alla pressione.

Lettura dei dati solo da quei telecomandi che funzionano secondo il protocollo specificato:

#includere // Collega la libreria per lavorare con il ricevitore IR iarduino_IR_RX IR(5); // Dichiara un oggetto IR indicando il pin a cui è collegato il ricevitore IR void setup()( Serial.begin(9600); // Avvia il trasferimento dati al monitor della porta seriale ad una velocità di 9600 bps IR.begin(); // Avvia il lavoro con il ricevitore IR IR.protocol("Ae`` `|LJ` @@@@BPBp"); // Specifica il protocollo di trasferimento dati a cui rispondere ) void loop()( if(IR.check( true))( // Se il buffer contiene dati ricevuti dal telecomando (pulsante premuto) Serial.println(IR.data, HEX); // Stampa il codice del pulsante premuto Serial.println(IR.length) ; // Stampa il numero di bit nel codice ) )

In questo sketch, nel codice setup(), viene specificato il protocollo di trasferimento dati, che raramente coincide con i diversi produttori di telecomandi IR. Ciò significa che la funzione check() nel codice loop() risponderà solo ai telecomandi IR che supportano il protocollo specificato.

Ottenere il protocollo di trasferimento dati e il tipo di codifica:

#includere // Collega la libreria per lavorare con il ricevitore IR iarduino_IR_RX IR(4); // Dichiara un oggetto IR indicando il pin a cui è collegato il ricevitore IR void setup()( Serial.begin(9600); // Avvia il trasferimento dati al monitor della porta seriale ad una velocità di 9600 bps IR.begin(); // Avvia il lavoro con il ricevitore IR ) void loop()( if(IR.check())( // Se il buffer contiene dati ricevuti dal telecomando (il pulsante è stato premuto) Serial.println(IR.protocol() ); // Visualizza la riga del protocollo di trasferimento dati ) )

Questo esempio descrive come ottenere il protocollo di trasferimento dati del telecomando IR. L'articolo descrive come trasferire i codici dei pulsanti utilizzando il protocollo specificato.

Pertanto, è possibile creare uno schizzo del trasmettitore IR per simulare i segnali di vari telecomandi IR. Di conseguenza, i dispositivi risponderanno al trasmettitore IR come se fosse il proprio telecomando IR.

Descrizione delle principali funzionalità della libreria:

Collegamento alla biblioteca:

#includere // Colleghiamo la libreria per lavorare con il ricevitore IR. iarduino_IR_RX IR(OUT_#[, INVERSO]); // Dichiariamo un oggetto IR, indicando il numero pin a cui è collegato il ricevitore IR. // Il secondo parametro, tipo bool, può indicare che i dati provenienti dal ricevitore sono inversi.

funzione Begin();

  • Scopo: inizializzazione del lavoro con il ricevitore IR
  • Sintassi: inizio();
  • Opzioni: no.
  • Valori restituiti: nessuno.
  • Nota: chiamato 1 volta nel codice di configurazione.
  • Esempio:
IR.inizio(); // Avvia il lavoro con il ricevitore IR

verifica() funzione;

  • Scopo: Verificare la disponibilità dei dati ricevuti dal telecomando.
  • Sintassi: controllo([ ATTESA ]);
  • Opzioni:
    • HOLD - parametro facoltativo, tipo bool - che indica che è necessario reagire tenendo premuti i pulsanti del telecomando.
  • Valori di ritorno: bool - ricevuti o meno, dati dalla console.
  • Nota: se la funzione viene chiamata senza parametro o è uguale a false, la funzione risponderà solo ai segnali provenienti dal telecomando quando vengono premuti i pulsanti e, se impostata su true, la funzione risponderà sia alla pressione che tenendo premuti i pulsanti del telecomando.
  • Esempio:
if(IR.check())( ... ;) // Se i dati vengono ricevuti dal telecomando, quando viene premuto il relativo pulsante if(IR.check(true))( ... ;) // Se i dati vengono ricevuto dal telecomando, tenendo premuto il pulsante

protocollo();

  • Scopo: ottenere, impostare o reimpostare il protocollo di trasferimento dati.
  • Sintassi: protocollo([PARAMETRO]);
  • Ottenere il protocollo: se la funzione viene chiamata senza parametro, restituirà una stringa di 25 caratteri + il carattere di fine riga. I bit di questa linea portano informazioni sul tipo di protocollo di trasmissione dati del telecomando, i cui dati sono stati ricevuti per ultimi. Questa stringa può essere utilizzata per impostare il protocollo per il trasmettitore IR o il ricevitore IR (vedere di seguito).
  • Impostazione del protocollo: se la funzione viene richiamata con una stringa di 25 caratteri di protocollo + terminatore di riga come parametro, successivamente la funzione chek() risponderà solo alle console corrispondenti al protocollo di trasferimento dati specificato.
  • Reset del protocollo: se la funzione viene chiamata con il parametro IR_CLEAN, la funzione check() risponderà nuovamente ai segnali provenienti da qualsiasi console.
  • Ottenere parametri di protocollo: se la funzione viene chiamata con un parametro int, da 0 a 17, restituirà non una stringa di protocollo, ma un valore int con uno dei parametri del protocollo di trasmissione dati del telecomando, i cui dati sono stati ricevuto l'ultimo:
    • 0 - tipo di codifica:
      • IR_UNDEFINED - il tipo di codifica non è definito;
      • IR_PAUSE_LENGTH - codifica con pausa lunga;
      • IR_PULSE_LENGTH - codifica a impulsi lunghi (larghezza) (PWM);
      • IR_BIPHASIC - codifica bifasica;
      • IR_BIPHASIC_INV - codifica bifasica con bit invertiti;
      • IR_NRC: i pacchetti ripetuti sono identici e il primo e l'ultimo pacchetto sono speciali;
      • IR_RS5 - Codifica PHILIPS con bit di commutazione;
      • IR_RS5X - Codifica PHILIPS con bit di commutazione;
      • IR_RS6 - Codifica PHILIPS con bit di commutazione.
    • 1 - frequenza portante della trasmissione dei dati (in kHz);
    • 2 - il numero dichiarato di bit di informazione in 1 pacchetto;
    • 3 - il numero dichiarato di bit di informazione nel pacchetto ripetuto;
    • 4 - durata della pausa tra i pacchetti (in ms);
    • 5 - durata dell'impulso nel bit di avvio (in μs);
    • 6 - durata della pausa nel bit di avvio (in μs);
    • 7 - durata dell'impulso nel bit di stop (in μs);
    • 8 - durata della pausa nel bit di stop (in μs);
    • 9 - durata dell'impulso nel bit di riavvio o di commutazione (in µs);
    • 10 - durata della pausa nel bit di riavvio o di commutazione (in µs);
    • 11 - riavvio o commutazione della posizione del bit nel pacchetto (numero di bit);
    • 12 - durata massima dell'impulso in bit di informazione (in μs);
    • 13 - durata minima dell'impulso in bit di informazione (in μs);
    • 14 - durata massima della pausa in bit di informazione (in μs);
    • 15 - durata minima della pausa in bit di informazione (in μs);
    • 16 - flag presenza bit di start (vero/falso);
    • 17 - flag presenza bit di stop (vero/falso);
    • 18 - flag per bit di riavvio o toggle (vero/falso);
    • 19 - tipo di pacchetto ripetuto (0-nessuno, 1-con bit invertiti, 2-identico a informativo, 3-unico);
  • Valori restituiti: dipendono dalla presenza e dal tipo del parametro.
  • Nota: se un protocollo è stato precedentemente impostato, il tentativo di ottenere il protocollo o i parametri del protocollo restituirà i valori del protocollo precedentemente impostato e non il protocollo di trasferimento dati del telecomando i cui dati sono stati ricevuti per ultimi.
  • Esempio:
IR.protocollo("AeQQV~zK]Kp^KJp[@@@@@@@Bp"); // Imposta il protocollo. Ora il ricevitore riceverà i dati solo dai telecomandi TV ELENBERG. Protocollo IR(IR_CLEAN); // Reimposta il protocollo precedentemente impostato. Ora il ricevitore risponderà nuovamente a qualsiasi telecomando. if(IR.check())( Serial.println(IR.protocol()); ) // Ottieni il protocollo. Non appena il ricevitore riceve i dati, sul monitor verrà visualizzata una riga di 25 caratteri di protocollo. if(IR.check())( Serial.println(IR.protokol(12)); ) // Ottieni uno dei parametri del protocollo. Non appena il ricevitore riceve i dati, il monitor visualizzerà la durata massima dell'impulso del bit di informazione in microsecondi.

Dati variabili

  • Valore: Restituisce il codice del pulsante ricevuto dal telecomando;
  • Tipo di dati: uint32_t.
if(IR.check())( Serial.println(IR.data); ) // Stampa il codice del pulsante premuto, se viene accettato

Lunghezza variabile

  • Valore: restituisce la dimensione del codice del pulsante, in bit;
  • Tipo di dati: uint8_t.
if(IR.check())( Serial.println(IR.length); ) // Stampa la dimensione del codice del pulsante premuto, se accettato

variabile key_press

  • Valore: restituisce un flag che indica che il pulsante del telecomando viene premuto anziché tenuto premuto;
  • Tipo di dati: bool.
if(IR.check(true))( if(IR.key_press)(Serial.println("PRESS");) // Il testo verrà stampato 1 volta che si preme il pulsante else (Serial.println("HOLD "); ) // Il testo verrà visualizzato continuamente finché si tiene premuto il pulsante )

Applicazione:

  • controllo di robot, modelli in movimento, volanti e fluttuanti, elettrodomestici e apparecchi specializzati.
  • accendere/spegnere l'illuminazione, il riscaldamento, la ventilazione, l'irrigazione, ecc.
  • apertura/chiusura di porte, persiane, lucernari, prese d'aria, ecc.

Il ricevitore IR è un dispositivo standard collegato alla porta COM (RS-232) e utilizzato per il controllo remoto del robot.

Uno dei possibili schemi del ricevitore IR. Per il ricevitore IR, andrà bene qualsiasi ricevitore a infrarossi da 5 volt utilizzato nelle apparecchiature di consumo (TV). Ad esempio: TSOP1836, IS1U60L, GP1U52X, SFH506-36 o il nostro TK1833 domestico. Per alimentare il ricevitore IR con 5 volt è necessario lo stabilizzatore di tensione KREN5A, perché 12 volt vengono forniti dal 7° pin della porta COM. Il resistore può essere selezionato nell'intervallo 3-5 kOhm, il condensatore è 4,7-10 uF. Qualsiasi diodo a bassa potenza.

Nello schema sopra, il segnale di uscita viene applicato a 1 pin della porta COM (DCD). Questo pin non viene utilizzato da un mouse standard per una porta COM, quindi se non si dispone di abbastanza porta COM libera, questo circuito può essere utilizzato in parallelo con un mouse (ma non con un modem)! Il segnale di uscita può essere applicato non solo al DCD, ma anche ad altri pin, come CTS o DSR. Tutti questi parametri possono essere impostati nel programma che funziona con il ricevitore IR. Esistono diverse varianti del programma, il programma più comune è WinLIRC. Posso anche consigliarti di utilizzare il programma Girder.

Pinout e aspetto degli elementi principali del circuito

Da sinistra a destra: due tipi di ricevitori IR da 5 volt e un chip regolatore di tensione KREN5A.

Pinatura della porta COM

Pinout e descrizione dei contatti della porta COM (25 pin).

Il ricevitore IR svolge un ruolo importante nella nostra vita quotidiana. Con l'aiuto di questo microcircuito siamo in grado di controllare i moderni vantaggi di elettrodomestici, TV, impianto stereo, autoradio e condizionatore d'aria. Questo ci permette di fare, il telecomando (RC), diamo uno sguardo più da vicino al suo funzionamento, al circuito, allo scopo e alla verifica. Nell'articolo, come controllare da soli il ricevitore IR.

Cos'è un ricevitore IR e come funziona

Questo è un circuito integrato, il suo compito diretto e principale è ricevere ed elaborare il segnale a infrarossi, che è ciò che emette il telecomando. Con l'aiuto di questo segnale, l'apparecchiatura viene controllata.

Questo microcircuito si basa su un fotodiodo pin, un elemento speciale, con una giunzione p-n e una regione i tra loro, un analogo della base di un transistor, come in un sandwich, qui hai l'abbreviazione pin, a suo modo, un elemento unico.

Si accende nella direzione opposta e non lascia passare corrente elettrica. Il segnale IR entra nell'area i e conduce corrente, convertendola in tensione.


I passi successivi, un filtro integratore, un rilevatore di ampiezza e transistor di uscita li aspettano al traguardo.

Di norma, acquistare un nuovo ricevitore IR in un negozio non ha molto senso, poiché può essere rimosso liberamente da varie schede elettroniche. Se stai assemblando un dispositivo per controllare il telecomando, da materiali improvvisati, senza conoscere l'esatta marcatura del dispositivo, puoi determinare tu stesso la piedinatura.


Avremo bisogno di un multimetro, un alimentatore o più batterie, cavi di collegamento, l'installazione può essere eseguita incernierata.

Ha tre uscite, una è GND, più 5 volt vengono forniti alla seconda e il segnale in uscita esce dalla terza. Colleghiamo l'alimentazione, rispettivamente, alla prima e alla seconda gamba e rimuoviamo la tensione dalla terza.


È in uno stato di attesa di un segnale dal telecomando e sul multimetro vediamo cinque volt. Iniziamo a cambiare canale o premere altri pulsanti puntando il telecomando verso di esso.

Se funziona, la tensione diminuirà di circa 0,5-1 volt. Se tutto avviene come scritto qui, il dispositivo funziona, altrimenti l'elemento non funziona.

Come determinare la piedinatura di un ricevitore a infrarossi

Ad esempio, ho preso un chip a me completamente sconosciuto, che giaceva in una scatola con gli elementi "meno", è stato determinato empiricamente attraverso un resistore dal punto che si trova sul retro dell'elemento "più" . Non ho rischiato nulla, non c’era speranza che lui in origine fosse un operaio.

Per determinare la piedinatura del ricevitore IR, se è saldato alla scheda, guardalo, potrebbe esserci una marcatura dei pin. Se non c'è scritto nulla, ispeziona l'elemento stesso, cerca il suo nome e poi cerca caratteristiche e dati su Internet, tale attività è molto competente. Seguendo le istruzioni, come controllare da soli il ricevitore IR.

schema tratto dalla rivista "Giovane Tecnico".

Una direzione interessante dell'elettronica radio, che ha integrato questa elettronica con i nuovi vantaggi della luce "invisibile" (luce infrarossa). Quindi propongo uno schema di un semplice (ad esempio) ricevitore e trasmettitore basato su raggi infrarossi. Base: amplificatore operazionale k140ud7 (qui ho ud708), che emette e riceve fotodiodi IR, ULF (k548un1a (b, c - indici) - per due canali) (anche se il secondo canale dell'amplificatore "accendersi" dipende da te - il circuito del trasmettitore è progettato per un canale, ovvero mono). Alimentazione del dispositivo: generalmente lo consiglio con una discreta stabilizzazione delle correnti (e l'adattatore "dendy" dà fastidio con lo sfondo della "rete"). Metodo: il segnale modulato in ampiezza del trasmettitore viene amplificato dal ricevitore 1000 volte.

Come funziona il dispositivo. Ti consiglio di guardare un breve video per testare "a orecchio" il telecomando IR. Puoi controllare rapidamente le prestazioni e la potenza del segnale tramite il suono.

Schema del ricevitore IR e del trasmettitore IR

Durante il montaggio, i condensatori C1 e C2 dovrebbero essere il più vicino possibile all'amplificatore! All'uscita è possibile collegare cuffie ad alta impedenza (le cuffie a bassa impedenza richiedono un ULF separato). Fotodiodo FD7 (ho FD5 .. una specie di "tablet" con lente di messa a fuoco - non ricordo il nome esatto); Resistenze da 0,125 W: R1 con R4 imposta il fattore di potenza del segnale su 1000 volte. Il ricevitore è facile da configurare: il fotodiodo viene indirizzato verso una fonte di radiazione infrarossa, ad esempio una lampada 220v-50Hz: il filamento verrà emesso ad una frequenza di 50Hz oppure il telecomando del televisore (video, ecc. La sensibilità del ricevitore è elevata: normalmente riceve segnali riflessi dalle pareti.

LED AL107a sul trasmettitore IR: va bene qualsiasi cosa. R2 2 kOhm, C1 1000mkFx25V, C2 200mkFx25V, anche qualsiasi trasformatore. Sebbene sia del tutto possibile fare a meno di un trasformatore, applica un segnale audio amplificato al condensatore C2.

Schema del dispositivo

Recentemente, per necessità, ho assemblato un ricevitore IR per testare i telecomandi IR (TV e DVD). Dopo aver finalizzato il circuito, ho installato un mono ULF TDA7056. Questo amplificatore ha buone caratteristiche di guadagno di circa 42 dB; funziona nell'intervallo di tensione da 3 V a 18 V, il che ha consentito al ricevitore IR di funzionare anche con una tensione di 3 V; La gamma di guadagno TDA da 20 Hz a 20 kHz (l'UD708 salta fino a 800 kHz) è più che sufficiente per utilizzare il ricevitore come accompagnamento audio; ha protezione contro il cortocircuito su tutte le "gambe"; protezione contro il "surriscaldamento"; coefficiente di autointerferenza debole. In generale, mi è piaciuto questo ULF compatto e affidabile (ce l'abbiamo per 90 rubli).
Ci sono con lui. La Figura 1 mostra un esempio di utilizzo di un amplificatore.


Foto TDA7056



Fig. 1. Circuito amplificatore con TDA7056

Il risultato è un ricevitore IR (Fig. 2), che funziona nell'intervallo di tensione da 3 V a 12 V. Consiglio di utilizzare batterie per alimentare il ricevitore o batterie. Quando si utilizza un alimentatore, è necessaria una sorgente stabilizzata, altrimenti si sentirà un sottofondo di rete a 50 Hz, che amplifica l'UD708. Se il dispositivo si trova vicino a una fonte di tensione di rete o di radiazioni radio, potrebbero verificarsi interferenze. Per ridurre le interferenze nel circuito, è necessario includere il condensatore C5. TDA7056 è progettato per un altoparlante con uscita da 16 ohm, purtroppo non ne ho uno. Ho dovuto utilizzare un altoparlante da 4 ohm 3 watt collegato tramite una resistenza da 1 watt 50 ohm. Una resistenza della bobina dell'altoparlante troppo bassa provoca un eccesso di potenza e surriscalda l'amplificatore. In generale, grazie alla resistenza aggiuntiva, l'ULF non si riscalda, ma fornisce un guadagno abbastanza accettabile.



Fig.2. Schema di un ricevitore IR con ULF



Foto del ricevitore IR

In questa lezione considereremo il collegamento di un ricevitore IR ad Arduino. Ti diremo quale libreria dovrebbe essere utilizzata per il ricevitore IR, dimostreremo uno schizzo per testare il funzionamento del ricevitore a infrarossi da un telecomando e analizzeremo i comandi in linguaggio C ++ per ricevere un segnale di controllo.

Dispositivo ricevitore IR. Principio di funzionamento

I ricevitori a infrarossi sono ampiamente utilizzati nella tecnologia elettronica grazie al loro prezzo accessibile, semplicità e facilità d'uso. Questi dispositivi consentono di controllare i dispositivi utilizzando un telecomando e possono essere trovati in quasi tutti i tipi di tecnologia.

Come funziona un ricevitore IR. Elaborazione del segnale del telecomando

Il ricevitore IR dell'Arduino è in grado di ricevere ed elaborare un segnale infrarosso sotto forma di impulsi di una determinata durata e frequenza. Tipicamente, un ricevitore IR ha tre gambe ed è costituito dai seguenti elementi: un fotodiodo PIN, un amplificatore, un filtro passa banda, un rilevatore di ampiezza, un filtro integratore e un transistor di uscita.

Sotto l'azione della radiazione infrarossa nel fotodiodo, che ha tra P E N regioni hanno creato una regione aggiuntiva dal semiconduttore ( io-area), la corrente inizia a fluire. Il segnale viene inviato ad un amplificatore e quindi ad un filtro passa banda che protegge il ricevitore dalle interferenze. Eventuali interferenze possono creare elettrodomestici.

Il filtro passa banda è impostato su una frequenza fissa: 30; 33; 36; 38; 40 e 56 kilohertz. Affinché il segnale del telecomando possa essere ricevuto dal ricevitore IR Arduino, il telecomando deve avere la stessa frequenza su cui è impostato il filtro nel ricevitore IR. Dopo il filtro, il segnale va al rilevatore di ampiezza, al filtro integratore e al transistor di uscita.

Come collegare un ricevitore IR ad Arduino

Gli alloggiamenti dei ricevitori a infrarossi contengono un filtro ottico per proteggere il dispositivo dai campi elettromagnetici esterni, sono realizzati in una forma speciale per focalizzare la radiazione ricevuta sul fotodiodo. Per collegare il ricevitore IR ad Arduino UNO vengono utilizzati tre piedini collegati alle porte: GND, 5V e A0.

Per la lezione abbiamo bisogno dei seguenti dettagli:

  • Scheda ArduinoUno;
  • Tagliere per il pane;
  • Cavo USB;
  • Ricevitore IR;
  • Telecomando;
  • 1 LED;
  • 1 resistenza da 220 Ohm;
  • Fili "cartella-cartella" e "cartella-madre".

Schema di collegamento del ricevitore IR alla porta analogica di Arduino

Collega il ricevitore IR secondo lo schema e i LED ai pin 12 e 13 e carica lo schizzo.

#includere // collega la libreria per il ricevitore IR IRrecv irricv(A0); // specifica il pin a cui è collegato il ricevitore IR decodifica_risultati; void setup() // procedura setup( irrecv.enableIRIn(); // inizia a ricevere il segnale a infrarossi pinModalità(13, USCITA); // il pin 13 sarà l'output pinModalità(12, USCITA); // il pin 12 sarà l'output modalità pin(A0, INPUT); // il pin A0 sarà un input (inglese "intput") Serial.begin(9600); // collega il monitor della porta) void loop () // procedura loop ( if (irrecv.decode (&risultati)) // se i dati sono arrivati, esegui i comandi( Seriale .println(risultati.valore); // invia i dati ricevuti alla porta // accende e spegne i LED, a seconda del segnale ricevuto if (valore.risultati == 16754775) ( digitalWrite (13, ALTO); ) if (valore.risultati == 16769055) ( digitalWrite (13, BASSO); ) if (valore.risultati == 16718055) ( digitalWrite (12, ALTA); ) if (risultati.valore == 16724175) ( digitalWrite(12, LOW); ) irrecv.resume(); // riceve il segnale successivo sul ricevitore IR } }

Spiegazioni per il codice:

  1. La libreria IRremote.h contiene una serie di comandi e permette di semplificare lo sketch;
  2. L'istruzione decode_results assegna i segnali ricevuti dal telecomando al nome della variabile results.

Cosa cercare:

  1. Per poter controllare l'accensione del LED è necessario accendere il monitor della porta e scoprire quale segnale viene inviato da questo o quel pulsante del telecomando;
  2. I dati ricevuti dovrebbero essere inseriti nello schizzo. Cambia il codice di otto caratteri nello schizzo dopo il doppio segno uguale if (results.value == 16769055) con il tuo.

Dispositivo ricevitore IR, funzionamento e verifica

Nella televisione, nelle apparecchiature domestiche, nelle apparecchiature mediche e in altre apparecchiature, i ricevitori IR di radiazioni infrarosse sono ampiamente utilizzati. Possono essere visti in quasi tutti i tipi di apparecchiature elettroniche e sono controllati tramite un telecomando.


funzionamento e schema a blocchi del ricevitore IR

In genere, un microgruppo di ricevitore IR ha tre pin. Uno è comune ed è collegato al polo negativo GND, l'altro in più Contro e il terzo è l'uscita del segnale ricevuto Fuori.

A differenza di un fotodiodo IR standard, un ricevitore IR è in grado non solo di ricevere, ma anche di elaborare un segnale infrarosso sotto forma di impulsi con una frequenza fissa e una determinata durata. Ciò protegge il dispositivo da falsi allarmi, radiazioni di fondo e interferenze di altri elettrodomestici che emettono nella gamma IR. Le lampade fluorescenti a risparmio energetico con circuito di zavorra elettronico possono creare interferenze sufficientemente forti per il ricevitore.

Un microassemblaggio di un tipico ricevitore di radiazioni IR comprende: fotodiodo PIN, amplificatore regolabile, filtro passa banda, rilevatore di ampiezza, filtro integratore, dispositivo di soglia, transistor di uscita

Un fotodiodo PIN della famiglia dei fotodiodi, in cui tra le regioni n e p viene creata un'altra regione dal proprio semiconduttore (regione i) - si tratta essenzialmente di uno strato di semiconduttore puro senza impurità. È questo che conferisce al diodo PIN le sue proprietà speciali. Nello stato normale, attraverso il fotodiodo PIN non scorre corrente poiché è collegato al circuito nella direzione opposta. Quando le coppie elettrone-lacuna vengono generate nella regione i sotto l'azione della radiazione IR esterna, una corrente inizia a fluire attraverso il diodo. Che poi va ad un amplificatore regolabile.

Quindi il segnale dall'amplificatore passa a un filtro passa banda che protegge dalle interferenze nella gamma IR. Il filtro passa banda è sintonizzato su una frequenza rigorosamente fissa. In genere vengono applicati filtri sintonizzati su una frequenza di 30; 33; 36; 36,7; 38; 40; 56 e 455 kilohertz. Affinché il segnale emesso dal telecomando possa essere ricevuto dal ricevitore IR, è necessario che sia modulato con la stessa frequenza su cui è impostato il filtro.

Dopo il filtro, il segnale va al rilevatore di ampiezza e al filtro integratore. Quest'ultimo è necessario per bloccare brevi segnali singoli che possono verificarsi a causa di interferenze. Inoltre, il segnale va al dispositivo di soglia e al transistor di uscita. Per un funzionamento stabile, il guadagno dell'amplificatore viene regolato dal sistema di controllo automatico del guadagno (AGC).

Gli alloggiamenti dei moduli IR sono realizzati con una forma speciale che aiuta a focalizzare la radiazione ricevuta sulla superficie sensibile della fotocellula. Il materiale del corpo trasmette radiazioni con una lunghezza d'onda rigorosamente definita da 830 a 1100 nm. Pertanto, il dispositivo utilizza un filtro ottico. Per proteggere gli elementi interni dagli effetti della posta elettronica esterna. campi, viene utilizzato uno schermo elettrostatico.

Controllo del ricevitore IR

Poiché il ricevitore del segnale IR è un microassemblaggio specializzato, per assicurarsi che funzioni, è necessario applicare una tensione di alimentazione al microcircuito, solitamente 5 volt. Il consumo di corrente in questo caso sarà di circa 0,4 - 1,5 mA.

Se il ricevitore non riceve un segnale, nelle pause tra le raffiche di impulsi, la tensione alla sua uscita corrisponde praticamente alla tensione di alimentazione. È tra GND e il pin di uscita del segnale può essere misurato con qualsiasi multimetro digitale. Si consiglia inoltre di misurare la corrente consumata dal microcircuito. Se supera quello standard (vedere il libro di consultazione), molto probabilmente il microcircuito è difettoso.

Quindi, prima di iniziare il test del modulo, dobbiamo determinare la piedinatura delle sue uscite. Queste informazioni sono solitamente facili da trovare nella nostra mega guida alle schede tecniche dell'elettronica. Potete scaricarlo cliccando sull'immagine a destra.

Controlliamo il chip TSOP31236, la sua piedinatura corrisponde alla figura sopra. Colleghiamo l'uscita positiva dell'alimentatore autocostruito all'uscita positiva del modulo IR (Vs) e l'uscita negativa all'uscita GND. E colleghiamo la terza uscita OUT alla sonda positiva del multimetro. Colleghiamo la sonda negativa al filo comune GND. Passiamo il multimetro alla modalità tensione CC a 20 V.

Non appena i pacchetti di impulsi infrarossi iniziano ad arrivare al fotodiodo del microgruppo IR, la tensione alla sua uscita diminuirà di diverse centinaia di millivolt. In questo caso sarà chiaramente visibile come il valore sullo schermo del multimetro diminuisca da 5,03 volt a 4,57. Se rilasciamo il pulsante del telecomando, lo schermo visualizzerà nuovamente 5 volt.

Come puoi vedere, il ricevitore IR risponde correttamente al segnale del telecomando. Quindi il modulo è corretto. Allo stesso modo, puoi controllare qualsiasi modulo nella progettazione integrata.

Un telecomando a infrarossi è uno dei modi più semplici per interagire con i dispositivi elettronici. Quindi, in quasi tutte le case ci sono diversi dispositivi di questo tipo: TV, impianto stereo, lettore video, condizionatore d'aria. Ma l'applicazione più interessante del telecomando a infrarossi è il controllo remoto del robot. In realtà, in questa lezione proveremo a implementare tale metodo di controllo utilizzando il famoso controller Arduino Uno.

1. Telecomando IR

Cosa è necessario per insegnare al robot ad obbedire al telecomando a infrarossi (IR)? Innanzitutto, abbiamo bisogno del telecomando stesso. È possibile utilizzare un normale telecomando TV oppure acquistare un telecomando per autoradio in miniatura. Sono questi telecomandi che vengono spesso utilizzati per controllare i robot. Questo telecomando dispone di 10 pulsanti digitali e 11 pulsanti per la manipolazione della musica: volume, riavvolgimento, riproduzione, arresto, ecc. Più che sufficiente per i nostri scopi.

2. Sensore IR

In secondo luogo, per ricevere un segnale dal telecomando, abbiamo bisogno di uno speciale sensore IR. In generale, possiamo rilevare la radiazione infrarossa con un fotodiodo/fototransistor convenzionale, ma a differenza di esso, il nostro sensore IR rileva solo il segnale infrarosso con una frequenza di 38 kHz (a volte 40 kHz). È questa proprietà che consente al sensore di ignorare molti rumori luminosi estranei provenienti dalle lampade di illuminazione e dal sole. Per questo tutorial utilizzeremo il popolare sensore IR. VS1838B, che ha le seguenti caratteristiche:
  • frequenza portante: 38 kHz;
  • tensione di alimentazione: 2,7 - 5,5 V;
  • consumo corrente: 50 uA.
È possibile utilizzare altri sensori, ad esempio: TSOP4838, TSOP1736, SFH506.

3. Connessione

Il sensore ha tre uscite (tre gambe). Se si guarda il sensore dal lato del ricevitore del segnale IR, come mostrato in figura,
  • poi a sinistra ci sarà - output al controller,
  • al centro - contatto di potenza negativo (terra),
  • e a destra - un contatto di alimentazione positivo (2,7 - 5,5 V).
Schema di collegamento principale Aspetto del layout

4. Programma

Collegando il sensore IR, scriveremo un programma per Arduino Uno. Per fare ciò, utilizziamo la libreria standard IRremoto, progettato proprio per semplificare il lavoro con la ricezione e la trasmissione dei segnali IR. Con l'aiuto di questa libreria, accetteremo i comandi dal telecomando e, per cominciare, li invieremo semplicemente alla finestra del monitor della porta seriale. Questo programma ci è utile per capire quale codice dà ciascun pulsante. #include "IRremote.h" IRrecv irrecv(2); // specifica l'output a cui è collegato il ricevitore decode_results results; void setup() ( Serial.begin(9600); // imposta la velocità della porta COM irrecv.enableIRIn(); // inizia a ricevere ) void loop() ( if (irrecv.decode(&results)) ( // se i dati provengono da Serial .println(results.value, HEX); // stampa i dati irrecv.resume(); // accetta il seguente comando ) ) Carica il programma Arduino. Successivamente, proviamo a ricevere comandi dalla console. Apri il monitor della porta seriale (Ctrl+Shift+M), prendi il telecomando e puntalo verso il sensore. Premendo diversi pulsanti, osserviamo nella finestra del monitor i codici corrispondenti a questi pulsanti. Problema di download del programma In alcuni casi, quando si tenta di scaricare un programma sul controller, potrebbe apparire un errore: TDK2 non è stato dichiarato nel suo ambito Per risolverlo, basta eliminare due file dalla cartella della libreria. Andiamo dal conduttore. Vai alla cartella in cui è installata l'applicazione IDE Arduino (molto probabilmente è "C:\Program Files (x86)\Arduino"). Quindi nella cartella della libreria: …\Arduino\librerie\RobotIRremote ed eliminare i file: IRremoteTools.cpp E IRremoteTools.h. Quindi riavviamo l'IDE di Arduino e proviamo nuovamente a caricare il programma sul controller.

5. Controlla il LED con un telecomando IR

Ora che sappiamo quali codici corrispondono ai pulsanti del telecomando, proviamo a programmare il controller in modo che accenda e spenga il LED quando vengono premuti i pulsanti del volume. Per fare ciò, abbiamo bisogno dei codici (potrebbero differire, a seconda del telecomando):
  • FFA857 - aumenta il volume;
  • FFE01F - volume giù.
Come LED, utilizziamo il LED integrato sul pin n. 13, quindi lo schema elettrico rimarrà lo stesso. Quindi il programma: #include "IRremote.h" IRrecv irrecv(2); // specifica l'output a cui è collegato il ricevitore decode_results results; void setup() ( irrecv.enableIRIn(); // inizia a ricevere ) void loop() ( if (irrecv. decode(&results)) ( // se i dati sono arrivati ​​in switch (results. value) ( ​​case 0xFFA857: digitalWrite (13, HIGH); break; case 0xFFE01F: digitalWrite(13, LOW); break; ) irrecv.resume(); // accetta il seguente comando ) ) Carica su Arduino e testa. Clic vol+- Il LED si accende. Clic vol-- esce. Ora, sapendo come funziona, invece del LED, puoi controllare i motori del robot o altri dispositivi microelettronici fatti in casa!