Sadržaj:

Korištenje infracrvenog senzora s Arduinom: 8 koraka (sa slikama)
Korištenje infracrvenog senzora s Arduinom: 8 koraka (sa slikama)

Video: Korištenje infracrvenog senzora s Arduinom: 8 koraka (sa slikama)

Video: Korištenje infracrvenog senzora s Arduinom: 8 koraka (sa slikama)
Video: Leap Motion SDK 2024, Lipanj
Anonim
Korištenje infracrvenog senzora s Arduinom
Korištenje infracrvenog senzora s Arduinom

Što je infracrveni (tzv. IR) senzor?

IR senzor je elektronički instrument koji skenira IC signale u određenim frekvencijskim rasponima definiranim standardima i pretvara ih u električne signale na svom izlaznom pinu (obično se naziva signalni pin). IC signali uglavnom se koriste za odašiljanje naredbi putem zraka na kratkim udaljenostima (obično nekoliko metara), poput onoga s čime ste već radili na daljinskim upravljačima televizora ili drugim sličnim elektroničkim uređajima.

IC komunikacijski protokol

Svaki signal predstavlja određeni kod. Električni signali mogu se pretvoriti natrag u stvarne podatke/kôd koje je pošiljatelj poslao. Kada pritisnete gumb na daljinskom upravljaču televizora, on generira signal koji odgovara kodu gumba (npr. Uključeno/Isključeno, Pojačavanje zvuka itd.) I šalje ga na prijemnik (u ovom slučaju vaš televizor). I pošiljatelj i primatelj dogovorili su se o skupu kodova tako da primatelj zna što treba učiniti na temelju svakog koda. Način na koji se kôd treba modulirati (modelirati) kao signal definiran je u različitim standardima i svaki proizvođač senzora obično pokušava proizvesti proizvod kompatibilan s njima kako bi se mogao koristiti u različitim uređajima. Jedan od najpoznatijih standardnih protokola je iz NEC -a. Kratku povijest IR protokola možete pronaći na Wikipediji pod naslovom Consumer IR.

Korak 1: Kako izgleda IC senzor?

Kako izgleda IC senzor?
Kako izgleda IC senzor?
Kako izgleda IC senzor?
Kako izgleda IC senzor?
Kako izgleda IC senzor?
Kako izgleda IC senzor?

IR senzori dostupni su u različitim paketima. Ovdje možete vidjeti tipično pakiranje za IC prijemnik.

Korak 2: Ploča/modul za probijanje IC senzora

Ploča/modul za probijanje IC senzora
Ploča/modul za probijanje IC senzora
Ploča/modul za probijanje IC senzora
Ploča/modul za probijanje IC senzora
Ploča/modul za probijanje IC senzora
Ploča/modul za probijanje IC senzora
Ploča/modul za probijanje IC senzora
Ploča/modul za probijanje IC senzora

Također ih možete kupiti kao IC modul/ploču za izbijanje na eBayu, Aliexpressu ili Amazonu. Takvi moduli obično sadrže jedan od gore spomenutih senzora s lijepim pakiranjem prilagođenim osiguranju, zajedno sa LED diodom koja će bljeskati kada senzor detektira signal. Na taj ćete način primijetiti prenosi li se bilo koji podatak. Predlažem da počnete s jednim od ovih modula.

Napomena: ako imate sirovi IC senzor, ništa se ne bi promijenilo, osim što biste trebali provjeriti podatkovnu tablicu senzora kako biste bili sigurni da ste ga ispravno ožičili jer bi u protivnom mogli imati prekrasan plavi dim s mirisom koji bi potrajao sat. Znaš što mislim;)

Korak 3: Potrebni dijelovi i komponente

Potrebni dijelovi i komponente
Potrebni dijelovi i komponente

Ovdje možete pronaći popis komponenti koje su vam potrebne za dovršetak ovog vodiča:

eBay veze:

  • 1 x Arduino Uno:
  • 1 x IC senzorski modul s daljinskim upravljačem:
  • Otpornici 4 x 220 ohma:
  • 4 x LED:
  • 8 x Dupont kabel:
  • 1 x Mašina za lemljenje:
  • 1 x mini ploča (izborno):

Veze na Amazon.com:

  • 1 x Arduino Uno:
  • 1 x IC senzorski modul s daljinskim upravljačem:
  • 1 x Mašina za lemljenje:
  • 4 x 220 ohmski otpornici:
  • 4 x LED:
  • 8 x Dupont kabel:
  • 1 x mini ploča (izborno):

Korak 4: Spajanje IC senzora na Arduino

Spajanje IC senzora na Arduino
Spajanje IC senzora na Arduino
Spajanje IC senzora na Arduino
Spajanje IC senzora na Arduino
Spajanje IC senzora na Arduino
Spajanje IC senzora na Arduino

Postavljanje veze IR senzora s Arduinom vrlo je jednostavno. Osim VCC i GND pina, senzor ima samo jedan izlazni pin koji bi trebao biti spojen na jedan od digitalnih pinova Arduina. U ovom slučaju spojen je na pin 13.

Pokušao sam pokazati i modul IR senzora i sirovo postavljanje IR senzora. Kao što se može vidjeti na slikama, položaj pinova VCC i GND na senzorskom modulu je suprotan od sirovog senzora. Međutim, možda to nije slučaj s vašim senzorom, pa kao što je spomenuto u prethodnom koraku, u slučaju korištenja sirovog senzora, prvo provjerite podatkovnu tablicu.

Korak 5: Pronađite kôd koji odgovara svakom ključu na daljinskom upravljaču

Pronađite kôd koji odgovara svakom ključu na daljinskom upravljaču
Pronađite kôd koji odgovara svakom ključu na daljinskom upravljaču
Pronađite kôd koji odgovara svakom ključu na daljinskom upravljaču
Pronađite kôd koji odgovara svakom ključu na daljinskom upravljaču
Pronađite kôd koji odgovara svakom ključu na daljinskom upravljaču
Pronađite kôd koji odgovara svakom ključu na daljinskom upravljaču

Da biste programirali Arduino da učini nešto kada pritisnete tipku na daljinskom upravljaču, najprije morate imati kôd koji odgovara toj tipki. Kôd ključa je broj koji se obično prikazuje kao heksadecimalni. Svaki daljinski upravljač ima svoj skup ključeva, dok je moguće da dva upravljača dijele isti kod za različite namjene. Imajući različite kodove ključeva uz korištenje različitih frekvencijskih raspona, osigurava da dva daljinska upravljača različitih uređaja ne bi imala smetnje. Zato kada promijenite TV kanal, vaš DVD uređaj uopće ne reagira.

Da biste otkrili kodove za svoj daljinski upravljač, najprije morate pokrenuti jednostavnu skicu koja pokušava pročitati kôd sa senzora kada pritisnete tipku i pošalje to putem serijskog porta na vaše računalo gdje mu možete pristupiti pomoću alata Serial Monitor Arduino IDE. Ovo čini skica priložena ovom odjeljku. Bilo bi bolje pritisnuti svaki gumb kako biste vidjeli kôd i negdje zapisali popis kodova kako ne biste morali ubuduće ponovno pokretati ovaj kôd. Popis kodova ključeva koje vidite kao tablicu na slici zapravo su kodovi koje sam primio pritiskom na gumbe na svom jeftinom daljinskom upravljaču.

Također možete pristupiti stvarnom izvornom kodu podijeljenom u mojem Arduino web uređivaču na ir-key-code-loggeru.

Napomena: Nemojte se bojati ako negdje između vidite kod poput FFFFFF. To znači da ste pritisnuli i držali gumb neko vrijeme. Vratit ćemo se kasnije na to. Za sada ih jednostavno ignorirajte i usredotočite se na druge kodove.

Korak 6: Upravljajte nizom LED dioda pomoću IC daljinskog upravljača

Upravljajte nizom LED dioda pomoću daljinskog upravljača
Upravljajte nizom LED dioda pomoću daljinskog upravljača
Upravljajte nizom LED dioda pomoću daljinskog upravljača
Upravljajte nizom LED dioda pomoću daljinskog upravljača
Upravljajte nizom LED dioda pomoću daljinskog upravljača
Upravljajte nizom LED dioda pomoću daljinskog upravljača

Sada kada imamo kôd za svaki gumb, vrijeme je da se usredotočimo na način na koji ih možemo koristiti. Obično koristite IC daljinski upravljač za slanje naredbi Arduinu da učini nešto poput uključivanja ili isključivanja svjetiljke, pomicanje robota u određenom smjeru, prikaz nečega na LCD/OLED zaslonu itd. Ovdje pokušavamo demonstrirati proces pomoću jednostavnog sklop koji se sastoji od 4 LED diode u različitim bojama. Svaku od njih želimo uključiti ili isključiti namjenskim gumbom na daljinskom upravljaču. Kao što možete vidjeti na shemi, morate povezati Arduino na sljedeći način sa LED diodama i senzorom:

Arduino GND -> IR senzor GND.

Arduino VCC -> IR senzor VCC.

Arduino 13 -> Izlaz signala IC senzora.

Arduino 2 -> Anoda plave LED diode (kraći pin plave LED diode)

Arduino 3 -> Anoda zelene LED diode (kraći pin zelene LED diode)

Arduino 4 -> Anoda žute LED (kraći pin žute LED)

Arduino 5 -> Anoda crvene LED (kraći pin crvene LED)

Arduino GND -> Katoda svih LED dioda kroz otpornik od 220 ohma (duži pin LED)

Kôd koji odgovara ovom krugu možete pronaći u priloženoj datoteci ili u mom Arduino web uređivaču na ir-led-control.

Korak 7: Rješavanje problema

Prilikom postavljanja projekta i slijeđenja koraka možete naići na mnoge čudne situacije. Ovdje je popis nekih uobičajenih grešaka koje možete dobiti pri radu s IC senzorom.

Dobivanje FFFFFF pri pritisku tipke

Kada pritisnete gumb, možda ćete primijetiti da većinu vremena izvještava o kodu poput FFFFFF. To se događa kada pritisnete gumb i držite ga neko vrijeme, čak i kratko vrijeme. Scenarij je da kada prvi put pritisnete gumb, daljinski upravljač šalje kôd gumba i sve dok ga držite, ponavlja slanje FFFFFF, što znači da korisnik još uvijek pritisne gumb o kojem je nedavno izvješteno. To bi bilo u redu. Možete ih samo izostaviti. Stvarni kod je onaj koji ste dobili neposredno prije FFFFFF -a na serijskom monitoru.

IR senzor uopće ne reagira i čini se da se zagrijava

Prekinite napajanje !!! Ako ste sigurni da je skica zapisnika ključa ključa točna, problem je možda u krivom postavljanju vaših žica. Scenarij koji mi se dogodio bio je da sam za svoj IR modul (onaj koji je pričvršćen na ploču) spojio VCC i GND na suprotan način (zbog toga što nisam koristio odgovarajuće boje za svoje spojne žice). Time je izgorjela komponenta senzora i podigao se lijepi plavi dim. Kupio sam paket sirovih IR senzora i pokušao ga zamijeniti i sada radi kao šarm:). Nažalost, napravio sam istu grešku kada sam testirao sa sirovim IR senzorom i ovaj put se ništa nije dogodilo osim da se senzor zagrijao. Zato uvijek provjerite krug prije uključivanja napajanja!

Ponekad senzor detektira kôd koji nikad prije nisam vidio

Ovo je jedan od najčešćih problema. Najvjerojatnije je to zbog jednog od sljedećih razloga:

Ne usmjeravate IR daljinski upravljač izravno prema senzoru

To će dovesti do novih kodova (uglavnom dužih kodova) koje nikada prije niste primili i obično se ne podudaraju s duljinom kodova koje već imate. Zato zapamtite da daljinski upravljač uvijek usmjerite prema senzoru.

Koristite jeftini IC daljinski upravljač (poput onog koji sam koristio u ovom vodiču)

Umjesto jeftinih nepredvidivih daljinskih upravljača, možete isprobati isti scenarij pomoću daljinskog upravljača za TV ili DVD player ili daljinskog upravljača bilo kojeg uređaja koji imate. Obično imaju dobru kvalitetu signala/hardvera (i naravno skuplji) i na temelju mog iskustva, normalno rade dobro čak i ako daljinski upravljač ne usmjerite izravno prema senzoru.

Kako mogu znati da li zapisivani kod nije smeće

Kodovi se obično prikazuju u heksadecimalnom formatu. Ako ih pretvorite u odgovarajuću binarnu vrijednost, primijetit ćete da je binarni prikaz posljednjeg bajta negacija bajta koji dolazi prije toga. Ako to znate, možete to provjeriti u svom kodu kako biste bili sigurni da je kôd koji ste primili zapravo ispravan ili ne. Na primjer, ako imate FF7A85, njegov binarni prikaz bio bi sljedeći:

1111 1111 0111 1010 1000 0101

Slijeva nadesno, svaka serija od 4 znamenke prikaz je karaktera u izvornom heksadecimalnom broju. Kao što vidite, serija koja odgovara 7 je 0111, a serija koja odgovara 8 je 1000, što je njegova negacija. Pod negacijom mislim da bi sve 0 bile 1s i sve 1s bi bile zamijenjene 0s. Isto vrijedi i za sljedeću koja je A (1010) i 5 (0101).

Korak 8: Što učiniti sljedeće?

Sad je tvoj red. Sve je na vašoj mašti da vidite što možete učiniti s ovim malim jednostavnim senzorom u ruci. Evo nekoliko ideja za početak:

  • Koristite IC daljinski upravljač za jedan od uređaja koji imate kod kuće (TV, stereo itd.) I pokušajte ga koristiti u svom Arduino projektu
  • Pokušajte uključiti sve LED diode odjednom pritiskom na tipku, a zatim ih isključiti pomoću druge tipke
  • Pomoću gumba Gore/Dolje na daljinskom upravljaču uključite/isključite LED diode jednu po jednu dok se sve ne uključe/isključe
  • Napravite semafor pomoću LED dioda i upravljajte njime pomoću daljinskog upravljača
  • Ako imate mali DC motor pri ruci, pokušajte pokrenuti/zaustaviti ili promijeniti smjer rotacije putem IC daljinskog upravljača
  • Pomoću daljinskog upravljača za televizor možete upravljati svojim robotom ili omogućiti/onemogućiti neke senzore/aktuatore na njemu

Obavijestite me o komentarima, što biste učinili (ili ste već učinili) koristeći daljinski upravljač.

Preporučeni: