Sommario:
- Passaggio 1: come si presenta un sensore IR?
- Passaggio 2: scheda/modulo di breakout del sensore IR
- Passaggio 3: parti e componenti richiesti
- Passaggio 4: collegamento del sensore IR ad Arduino
- Passaggio 5: trova il codice corrispondente a ciascun tasto sul telecomando
- Passaggio 6: controllare un set di LED utilizzando il telecomando IR
- Passaggio 7: risoluzione dei problemi
- Passaggio 8: cosa fare dopo?
Video: Utilizzo del sensore a infrarossi con Arduino: 8 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
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?
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
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
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
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
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
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:
Sensore del respiro fai-da-te con Arduino (sensore elastico conduttivo a maglia): 7 passaggi (con immagini)
Sensore del respiro fai-da-te con Arduino (sensore elastico a maglia conduttiva): questo sensore fai-da-te assumerà la forma di un sensore elastico a maglia conduttiva. Si avvolgerà attorno al tuo torace/stomaco e quando il tuo torace/stomaco si espande e si contrae, anche il sensore e, di conseguenza, i dati di input che vengono inviati ad Arduino. Così
Termometro a infrarossi senza contatto basato su Arduino - Termometro a infrarossi con Arduino: 4 passaggi
Termometro a infrarossi senza contatto basato su Arduino | Termometro a infrarossi con Arduino: Ciao ragazzi in questo tutorial faremo un termometro senza contatto usando arduino. Poiché a volte la temperatura del liquido/solido è troppo alta o troppo bassa e quindi è difficile entrare in contatto con esso e leggerlo temperatura poi in quella scena
Utilizzo del sensore di distanza a ultrasuoni e dell'uscita del monitor seriale: 6 passaggi
Utilizzo del sensore di distanza a ultrasuoni e dell'uscita del monitor seriale.: Ehi ragazzi! Vuoi imparare a usare un'uscita monitor seriale. Bene, ecco il tutorial perfetto su come farlo! In questo tutorial, ti guiderò attraverso i semplici passaggi necessari per rilevare la distanza utilizzando il sensore a ultrasuoni e riferire i
Utilizzo del sensore di impronte digitali per l'orario di presenza in combinazione con la soluzione XAMP: 6 passaggi (con immagini)
Utilizzo del sensore di impronte digitali per l'orario di presenza in combinazione con la soluzione XAMP: per un progetto scolastico, stavamo cercando una soluzione su come monitorare la frequenza degli studenti. Molti dei nostri studenti arrivano in ritardo. È un lavoro noioso controllare la loro presenza. D'altra parte, c'è molta discussione perché gli studenti spesso diranno
Controllo autonomo del regime del motore utilizzando il sistema di feedback da un tachimetro a infrarossi: 5 passaggi (con immagini)
Controllo autonomo del numero di giri del motore utilizzando il sistema di feedback da un tachimetro basato su IR: c'è sempre la necessità di automatizzare un processo, sia esso semplice/mostruoso. Ho avuto l'idea di realizzare questo progetto da una semplice sfida che ho affrontato mentre trovavo metodi per irrigare/irrigare il nostro piccolo pezzo di terra. Il problema della mancanza di una linea di alimentazione corrente