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, Jun
Anonim
Korištenje infracrvenog senzora s Arduinom
Korištenje infracrvenog senzora s Arduinom

Šta je infracrveni (poznat i kao IR) senzor?

IC 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 se uglavnom 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 dugme na daljinskom upravljaču televizora, on generira signal koji odgovara kodu dugmeta (npr. Uključeno/Isključeno, Pojačavanje zvuka itd.) I šalje ga na prijemnik (u ovom slučaju vaš TV). I pošiljalac i primalac složili su se oko skupa kodova tako da primalac zna šta treba da uradi na osnovu svakog koda. Način na koji bi kôd trebao biti moduliran (modeliran) kao signal definiran je 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 istoriju 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?

IC senzori su dostupni u različitim paketima. Ovdje možete vidjeti tipično pakovanje 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

Možete ih kupiti i kao IC modul/ploču za razbijanje na eBayu, Aliexpressu ili Amazonu. Takvi moduli obično uključuju jedan od gore navedenih senzora s lijepim pakiranjem prilagođenim osiguranju, zajedno sa LED diodom koja će bljeskati kada senzor detektira signal. Time ćete primijetiti da li se neki podaci prenose. Toplo predlažem da počnete s jednim od ovih modula.

Napomena: ako imate neobrađeni IC senzor, ništa se ne bi promijenilo, osim što biste trebali provjeriti tehnički list senzora kako biste bili sigurni da ste ga pravilno ožičili jer bi u protivnom mogli imati prekrasan plavi dim s mirisom koji će trajati sat. Znaš šta mislim;)

Korak 3: Potrebni dijelovi i komponente

Potrebni delovi i komponente
Potrebni delovi i komponente

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

eBay linkovi:

  • 1 x Arduino Uno:
  • 1 x IC senzorski modul sa 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 (opcionalno):

Veze na Amazon.com:

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

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 na Arduino 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 podešavanje 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, prvo biste trebali imati kôd koji odgovara tom ključu. 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 kontrolera 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će imati smetnje. Zato kada promijenite TV kanal, vaš DVD uređaj uopće ne reagira.

Da biste otkrili kodove za vaš daljinski upravljač, morate prvo 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 svako dugme kako biste vidjeli kôd i negdje zapisali popis kodova kako ne biste morali ponovo pokretati ovaj kôd u budućnosti. Spisak kodova ključeva koje vidite kao tabelu na slici su zapravo kodovi koje sam dobio pritiskom na dugmad na svom jeftinom daljinskom upravljaču.

Takođe možete pristupiti stvarnom izvornom kodu koji se dijeli na mom Arduino web uredniku 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 dugme neko vrijeme. Vratićemo se kasnije na to. Za sada ih jednostavno ignorirajte i fokusirajte se na druge kodove.

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

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

Sada kada imamo kôd za svako dugme, 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 lampe, pomicanje robota u određenom smjeru, prikaz nečega na LCD/OLED ekranu 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 diode (kraći pin crvene LED diode)

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

Kod 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 pritiskom na tipku

Kada pritisnete dugme, možete primijetiti da većinu vremena izvještava o kodu poput FFFFFF. To se događa kada pritisnete dugme i držite ga neko vrijeme, čak i na kratko. 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 nedavno prijavljeno dugme. 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

Isključite struju !!! Ako ste sigurni da je skica zapisnika koda ključa ispravna, problem je možda u krivom postavljanju vaših žica. Scenarij koji mi se dogodio 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, ja sam napravio 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 otkrije kôd koji nikada 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č direktno prema senzoru

To će dovesti do stvaranja novih kodova (uglavnom dužih kodova) koje nikada prije niste primili i obično se ne podudaraju s dužinom 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 televizora ili DVD playera ili daljinskog upravljača bilo kojeg uređaja koji imate. Obično imaju dobar kvalitet signala/hardvera (i naravno skuplji) i na osnovu mog iskustva, normalno rade dobro čak i ako daljinski upravljač ne usmjerite direktno 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 binarna reprezentacija zadnjeg bajta negacija bajta koji dolazi prije toga. Ako to znate, možete ovo provjeriti u svom kodu kako biste se uvjerili da je kôd koji ste primili zaista 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 predstavljaju znak u izvornom heksadecimalnom broju. Kao što vidite, serija koja odgovara 7 je 0111, a serija koja odgovara 8 je 1000, što je tačna negacija iste. Negacijom mislim na sve 0 bi bile 1s i sve 1s bi bile zamijenjene 0s. Isto vrijedi i za sljedeću koja je A (1010) i 5 (0101).

Korak 8: Šta dalje učiniti?

Sada ste vi na redu. 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čite pomoću druge tipke
  • Pomoću gumba za 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čuje se: