Sommario:

Utilizzo del sensore a infrarossi con Arduino: 8 passaggi (con immagini)
Utilizzo del sensore a infrarossi con Arduino: 8 passaggi (con immagini)

Video: Utilizzo del sensore a infrarossi con Arduino: 8 passaggi (con immagini)

Video: Utilizzo del sensore a infrarossi con Arduino: 8 passaggi (con immagini)
Video: Ricevitore ad infrarossi (Sensori con Arduino) 2024, Novembre
Anonim
Utilizzo del sensore a infrarossi con Arduino
Utilizzo del sensore a infrarossi con Arduino

Che cos'è un sensore a infrarossi (noto anche come IR)?

Un sensore IR è uno strumento elettronico che scansiona i segnali IR in specifici intervalli di frequenza definiti dagli standard e li converte in segnali elettrici sul suo pin di uscita (tipicamente chiamato pin di segnale). I segnali IR sono principalmente utilizzati per trasmettere comandi via etere su brevi distanze (tipicamente pochi metri) come quello con cui hai già lavorato su telecomandi TV o altri dispositivi elettronici simili.

Protocollo di comunicazione IR

Ogni segnale rappresenta un codice specifico. I segnali elettrici possono essere riconvertiti nei dati/codici effettivi inviati dal mittente. Quando si preme un pulsante sul telecomando del televisore, questo genera un segnale corrispondente al codice del pulsante (ad es. On/Off, Volume su, ecc.) e lo invia a un ricevitore (in questo caso il televisore). Sia il mittente che il destinatario hanno concordato una serie di codici in modo che il destinatario sappia cosa fare in base a ciascun codice. Il modo in cui un codice dovrebbe essere modulato (modellato) come segnale è definito in standard diversi e ogni produttore di sensori normalmente cerca di produrre un prodotto compatibile con loro in modo che possa essere utilizzato in dispositivi diversi. Uno dei protocolli standard più conosciuti è di NEC. Puoi trovare una breve storia dei protocolli IR su Wikipedia sotto il titolo Consumer IR.

Passaggio 1: come si presenta un sensore IR?

Che aspetto ha un sensore IR?
Che aspetto ha un sensore IR?
Che aspetto ha un sensore IR?
Che aspetto ha un sensore IR?
Che aspetto ha un sensore IR?
Che aspetto ha un sensore IR?

I sensori IR sono disponibili in diverse confezioni. Qui puoi vedere alcune confezioni tipiche per un ricevitore IR.

Passaggio 2: scheda/modulo di breakout del sensore IR

Scheda/modulo di breakout del sensore IR
Scheda/modulo di breakout del sensore IR
Scheda/modulo di breakout del sensore IR
Scheda/modulo di breakout del sensore IR
Scheda/modulo di breakout del sensore IR
Scheda/modulo di breakout del sensore IR
Scheda/modulo di breakout del sensore IR
Scheda/modulo di breakout del sensore IR

Puoi anche acquistarli come modulo IR/breakout board su eBay, Aliexpress o Amazon. Tali moduli normalmente incorporano uno dei sensori sopra menzionati con un bel pacchetto adatto alla breadboard insieme a un LED che lampeggia quando il sensore rileva un segnale. In questo modo noteresti se dei dati vengono trasferiti. Consiglio vivamente di iniziare con uno di questi moduli.

Nota: se hai un sensore IR grezzo non cambierebbe nulla, se non che dovresti controllare la scheda tecnica del sensore per assicurarti di averlo cablato correttamente perché altrimenti potresti avere un bel fumo blu con un odore che durerebbe per un ora. Sai cosa voglio dire;)

Passaggio 3: parti e componenti richiesti

Parti e componenti richiesti
Parti e componenti richiesti

Qui puoi trovare l'elenco dei componenti necessari per completare questo tutorial:

Link eBay:

  • 1 x Arduino Uno:
  • 1 x modulo sensore IR con telecomando:
  • Resistori 4 x 220 ohm:
  • 4 x LED:
  • 8 x cavo Dupont:
  • 1 x breadboard senza saldatura:
  • 1 x Mini breadboard (opzionale):

Link Amazon.com:

  • 1 x Arduino Uno:
  • 1 x modulo sensore IR con telecomando:
  • 1 x breadboard senza saldatura:
  • Resistori 4 x 220 ohm:
  • 4 x LED:
  • 8 x cavo Dupont:
  • 1 x Mini breadboard (opzionale):

Passaggio 4: collegamento del sensore IR ad Arduino

Collegamento del sensore IR ad Arduino
Collegamento del sensore IR ad Arduino
Collegamento del sensore IR ad Arduino
Collegamento del sensore IR ad Arduino
Collegamento del sensore IR ad Arduino
Collegamento del sensore IR ad Arduino

Configurare la connessione del sensore IR ad Arduino è molto semplice. Oltre al pin VCC e GND, il sensore ha un solo pin di uscita che deve essere collegato a uno dei pin digitali dell'Arduino. In questo caso è collegato al pin 13.

Ho provato a dimostrare sia il modulo del sensore IR che la configurazione del sensore IR grezzo. Come si può vedere dalle immagini, la posizione dei pin VCC e GND sul modulo sensore è l'opposto del sensore grezzo. Tuttavia, potrebbe non essere il caso del tuo sensore, quindi come menzionato nel passaggio precedente, in caso di utilizzo del sensore raw, controlla prima la scheda tecnica.

Passaggio 5: trova il codice corrispondente a ciascun tasto sul telecomando

Trova il codice corrispondente a ciascuna chiave sul telecomando
Trova il codice corrispondente a ciascuna chiave sul telecomando
Trova il codice corrispondente a ciascuna chiave sul telecomando
Trova il codice corrispondente a ciascuna chiave sul telecomando
Trova il codice corrispondente a ciascuna chiave sul telecomando
Trova il codice corrispondente a ciascuna chiave sul telecomando

Per programmare Arduino per fare qualcosa quando premi un tasto sul telecomando, dovresti prima avere il codice corrispondente a quel tasto. Il codice chiave è un numero normalmente presentato come esadecimale. Ciascun telecomando ha il proprio set di codici chiave, mentre è possibile che due controller condividano lo stesso codice per scopi diversi. La presenza di codici chiave diversi e l'utilizzo di intervalli di frequenza diversi garantisce che due telecomandi di dispositivi diversi non abbiano interferenze. Ecco perché quando cambi canale TV, il tuo lettore DVD non reagisce affatto.

Per rilevare i codici per il tuo telecomando IR, devi prima eseguire un semplice schizzo che cerca di leggere il codice dal sensore quando premi un tasto e lo invia tramite la porta seriale al tuo computer dove puoi accedervi utilizzando gli strumenti di Serial Monitor di Arduino IDE. Questo è ciò che fa lo schizzo allegato a questa sezione. Sarebbe meglio premere ogni pulsante per vedere il codice e annotare l'elenco dei codici da qualche parte in modo che non sia necessario eseguire nuovamente questo codice in futuro. L'elenco dei codici chiave che vedi come tabella nell'immagine sono in realtà codici che ho ricevuto premendo i pulsanti sul mio telecomando IR economico.

Puoi anche accedere al codice sorgente effettivo condiviso sul mio editor web Arduino su ir-key-code-logger.

Nota: non preoccuparti se vedi un codice come FFFFFF da qualche parte nel mezzo. Significa che hai premuto e tenuto premuto un pulsante per un po'. Ci ritorneremo più avanti. Per ora ignorali e concentrati su altri codici.

Passaggio 6: controllare un set di LED utilizzando il telecomando IR

Controlla un set di LED utilizzando il telecomando IR
Controlla un set di LED utilizzando il telecomando IR
Controlla un set di LED utilizzando il telecomando IR
Controlla un set di LED utilizzando il telecomando IR
Controlla un set di LED utilizzando il telecomando IR
Controlla un set di LED utilizzando il telecomando IR

Ora che abbiamo un codice per ogni pulsante, è il momento di concentrarci sul modo in cui possiamo usarli. Normalmente usi il telecomando IR per inviare comandi ad Arduino per fare qualcosa come accendere o spegnere una lampada, spostare un robot in una direzione specifica, visualizzare qualcosa su uno schermo LCD/OLED, ecc. Qui proviamo a dimostrare il processo usando un semplice circuito composto da 4 led di colore diverso. Vogliamo accenderli o spegnerli ciascuno tramite un pulsante dedicato del telecomando IR. Come puoi vedere dallo schema, devi collegare Arduino nel seguente modo a LED e sensore:

Arduino GND -> GND sensore IR.

Arduino VCC -> Sensore IR VCC.

Arduino 13 -> Uscita segnale sensore IR.

Arduino 2 -> Anodo del LED blu (pin più corto del LED blu)

Arduino 3 -> Anodo del LED verde (pin più corto del LED verde)

Arduino 4 -> Anodo del LED giallo (pin più corto del LED giallo)

Arduino 5 -> Anodo del LED rosso (pin più corto del LED rosso)

Arduino GND -> Catodo di tutti i LED tramite una resistenza da 220 ohm (pin più lungo dei LED)

Puoi trovare il codice corrispondente a questo circuito nel file allegato o sul mio editor web Arduino su ir-led-control.

Passaggio 7: risoluzione dei problemi

Durante la configurazione del progetto e seguendo i passaggi potresti incontrare molte situazioni strane. Ecco l'elenco di alcuni errori comuni che potresti riscontrare quando lavori con il sensore IR.

Ottenere FFFFFF quando si preme un tasto

Premendo un pulsante potresti notare che il più delle volte riporta un codice come FFFFFF. Questo accade quando si preme un pulsante e lo si tiene premuto per un po', anche per un breve periodo di tempo. Lo scenario è che quando si preme inizialmente il pulsante, il telecomando IR invia il codice del pulsante e finché si tiene premuto il pulsante, ripete l'invio di FFFFFF, il che significa che l'utente sta ancora premendo il pulsante segnalato di recente. Andrebbe bene. Puoi semplicemente ometterli. Il codice effettivo è quello che hai ricevuto subito prima di FFFFFF sul monitor seriale.

Il sensore IR non reagisce affatto e sembra che si stia riscaldando

Taglia la corrente!!! Se sei sicuro che lo schizzo del registratore di codici chiave sia corretto, il problema potrebbe essere dovuto alla configurazione errata dei cavi. Lo scenario che mi è successo è stato che per il mio modulo IR (quello collegato alla scheda) avevo collegato VCC e GND in modo opposto (a causa del non utilizzo di colori adeguati per i miei cavi di collegamento). Così facendo il componente del sensore si è bruciato e si è alzato un bel fumo blu. Ho comprato un pacchetto di sensori IR grezzi e ho provato a sostituirlo e ora funziona come un incantesimo:). Sfortunatamente ho fatto lo stesso errore quando stavo testando con il sensore IR grezzo e questa volta non è successo nulla tranne che il sensore si è riscaldato. Quindi controlla sempre il circuito prima di accendere l'alimentazione!

A volte il sensore rileva un codice che non ho mai visto prima

Questo è uno dei problemi più comuni. È molto probabilmente dovuto a uno dei seguenti motivi:

Non stai puntando il telecomando IR direttamente verso il sensore

Questo porterà ad avere dei nuovi codici (per lo più codici più lunghi) che non hai mai ricevuto prima e che normalmente non corrispondono alla lunghezza dei codici che già possiedi. Quindi ricorda di puntare sempre il telecomando verso il sensore.

Stai usando un telecomando IR economico (come quello che ho usato in questo tutorial)

Invece di utilizzare telecomandi economici e imprevedibili, puoi provare lo stesso scenario utilizzando il telecomando della TV o del lettore DVD o un telecomando IR di qualsiasi dispositivo che possiedi. Normalmente hanno una buona qualità del segnale/hardware (e ovviamente sono più costosi) e in base alla mia esperienza, normalmente funzionano bene anche se non punti il telecomando direttamente verso il sensore.

Come faccio a sapere se un codice registrato non è spazzatura?

I codici sono normalmente presentati in formato esadecimale. Se li converti nel valore binario corrispondente, noterai che la rappresentazione binaria dell'ultimo byte è la negazione del byte precedente. Se lo sai, puoi fare questo controllo nel tuo codice per assicurarti che il codice che hai ricevuto sia effettivamente valido o meno. Ad esempio, se hai FF7A85 la sua rappresentazione binaria sarebbe la seguente:

1111 1111 0111 1010 1000 0101

Da sinistra a destra, ogni batch di 4 cifre è la rappresentazione di un carattere nel numero esadecimale originale. Come puoi vedere, il lotto corrispondente a 7 è 0111 e il lotto corrispondente a 8 è 1000 che ne è l'esatta negazione. Per negazione intendo che tutti gli 0 sarebbero 1 e tutti gli 1 sarebbero sostituiti da 0. Lo stesso vale per il successivo che è A (1010) e 5 (0101).

Passaggio 8: cosa fare dopo?

Ora è il tuo turno. Sta alla tua immaginazione vedere cosa puoi fare con questo piccolo e semplice sensore in mano. Ecco alcune idee per cominciare:

  • Usa il telecomando IR di uno dei dispositivi che hai in casa (TV, Stereo, ecc.) e prova ad usarlo nel tuo progetto Arduino
  • Prova ad accendere tutti i LED contemporaneamente premendo un tasto e poi spegnili usando un altro tasto
  • Usa il pulsante Su/Giù del telecomando per accendere/spegnere i LED uno per uno fino a quando non si accendono/spengono tutti
  • Crea un semaforo usando i LED e controllalo usando il tuo telecomando
  • Se hai un piccolo motore CC a portata di mano, prova ad avviare/arrestare o cambiarne la direzione di rotazione tramite telecomando IR
  • Puoi usare il telecomando della tua TV per controllare il tuo robot o abilitare/disabilitare alcuni sensori/attuatori su di esso

Fammi sapere sui commenti, cosa faresti (o hai già fatto) usando il telecomando IR.

Consigliato: