Kazalo:

Uporaba infrardečega senzorja z Arduinom: 8 korakov (s slikami)
Uporaba infrardečega senzorja z Arduinom: 8 korakov (s slikami)

Video: Uporaba infrardečega senzorja z Arduinom: 8 korakov (s slikami)

Video: Uporaba infrardečega senzorja z Arduinom: 8 korakov (s slikami)
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Junij
Anonim
Uporaba infrardečega senzorja z Arduinom
Uporaba infrardečega senzorja z Arduinom

Kaj je infrardeči senzor (znan tudi kot IR)?

IR senzor je elektronski instrument, ki skenira IR signale v določenih frekvenčnih območjih, opredeljenih s standardi, in jih pretvori v električne signale na svojem izhodnem zatiču (običajno imenovanem signalni zatič). IR signali se večinoma uporabljajo za prenos ukazov po zraku na kratke razdalje (običajno nekaj metrov), na primer s tistimi, s katerimi ste že delali na daljinskih upravljalnikih televizorja ali drugih podobnih elektronskih napravah.

IR komunikacijski protokol

Vsak signal predstavlja določeno kodo. Električne signale je mogoče pretvoriti nazaj v dejanske podatke/kodo, ki jih je poslal pošiljatelj. Ko pritisnete gumb na daljinskem upravljalniku televizorja, ta ustvari signal, ki ustreza kodi gumba (npr. Vklop/Izklop, Povečanje glasnosti itd.) In ga pošlje v sprejemnik (v tem primeru televizor). Pošiljatelj in prejemnik sta se dogovorila o nizu kod, tako da prejemnik ve, kaj mora narediti na podlagi vsake kode. Način, kako je treba kodo modulirati (modelirati) kot signal, je opredeljen v različnih standardih in vsak proizvajalec senzorjev običajno poskuša izdelati izdelek, ki je z njimi združljiv, da bi ga lahko uporabili v različnih napravah. Eden najbolj znanih standardnih protokolov je NEC. Kratko zgodovino protokolov IR najdete na Wikipediji pod naslovom Consumer IR.

1. korak: Kako izgleda IR senzor?

Kako izgleda IR senzor?
Kako izgleda IR senzor?
Kako izgleda IR senzor?
Kako izgleda IR senzor?
Kako izgleda IR senzor?
Kako izgleda IR senzor?

IR senzorji so na voljo v različnih paketih. Tukaj si lahko ogledate nekaj tipične embalaže za IR sprejemnik.

2. korak: Odklopna plošča/modul senzorja IR

Odklopna plošča/modul senzorja IR
Odklopna plošča/modul senzorja IR
Odklopna plošča/modul senzorja IR
Odklopna plošča/modul senzorja IR
Odklopna plošča/modul senzorja IR
Odklopna plošča/modul senzorja IR
Odklopna plošča/modul senzorja IR
Odklopna plošča/modul senzorja IR

Lahko jih kupite tudi kot IR modul/odklopno ploščo na eBayu, Aliexpressu ali Amazonu. Takšni moduli običajno vključujejo enega od zgoraj omenjenih senzorjev z lepim paketom, prijaznim do plošč, skupaj z LED, ki utripa, ko senzor zazna signal. S tem boste opazili, ali se kateri koli podatki prenašajo. Predlagam, da začnete z enim od teh modulov.

Opomba: če imate surov IR senzor, se ne bo nič spremenilo, razen tega, da preverite podatkovni list senzorja, da se prepričate, da ga pravilno ožičite, ker bi sicer lahko imeli čudovit modri dim z vonjem, ki bi trajal uro. Veš kaj mislim;)

3. korak: potrebni deli in komponente

Potrebni deli in komponente
Potrebni deli in komponente

Tu najdete seznam komponent, ki bi jih potrebovali za dokončanje te vadnice:

povezave do eBaya:

  • 1 x Arduino Uno:
  • 1 x IR senzorski modul z daljinskim upravljalnikom:
  • 4 x 220 ohmski upori:
  • 4 x LED:
  • 8 x kabel Dupont:
  • 1 x plošča brez spajkanja:
  • 1 x mini plošča (neobvezno):

Povezave na Amazon.com:

  • 1 x Arduino Uno:
  • 1 x IR senzorski modul z daljinskim upravljalnikom:
  • 1 x plošča brez spajkanja:
  • 4 x 220 ohmski upori:
  • 4 x LED:
  • 8 x kabel Dupont:
  • 1 x mini plošča (neobvezno):

4. korak: Priključitev IR senzorja na Arduino

Priključitev IR senzorja na Arduino
Priključitev IR senzorja na Arduino
Priključitev IR senzorja na Arduino
Priključitev IR senzorja na Arduino
Priključitev IR senzorja na Arduino
Priključitev IR senzorja na Arduino

Nastavitev povezave IR senzorja z Arduinom je zelo preprosta. Poleg vtiča VCC in GND ima senzor samo en izhodni pin, ki ga je treba priključiti na enega od digitalnih nožic Arduina. V tem primeru je priključen na pin 13.

Poskušal sem prikazati modul IR senzorja in surovo nastavitev IR senzorja. Kot je razvidno iz slik, je položaj zatičev VCC in GND na senzorskem modulu v nasprotju s surovim senzorjem. Vendar pa morda ne velja za vaš senzor, zato, kot je navedeno v prejšnjem koraku, v primeru uporabe surovega senzorja najprej preverite podatkovni list.

5. korak: Poiščite kodo, ki ustreza vsakemu ključu na daljinskem upravljalniku

Poiščite kodo, ki ustreza vsakemu ključu na daljinskem upravljalniku
Poiščite kodo, ki ustreza vsakemu ključu na daljinskem upravljalniku
Poiščite kodo, ki ustreza vsakemu ključu na daljinskem upravljalniku
Poiščite kodo, ki ustreza vsakemu ključu na daljinskem upravljalniku
Poiščite kodo, ki ustreza vsakemu ključu na daljinskem upravljalniku
Poiščite kodo, ki ustreza vsakemu ključu na daljinskem upravljalniku

Če želite programirati Arduino, da nekaj stori, ko pritisnete tipko na daljinskem upravljalniku, morate najprej imeti kodo, ki ustreza tej tipki. Koda ključa je številka, ki je običajno predstavljena kot šestnajstiška. Vsak daljinski upravljalnik ima svoj niz kod ključev, medtem ko je možno, da imata dva krmilnika isto kodo za različne namene. Različne kode ključev in uporaba različnih frekvenčnih območij zagotavljajo, da dva daljinska upravljalnika različnih naprav ne bi imela motenj. Zato, ko spremenite svoj televizijski kanal, vaš DVD predvajalnik sploh ne reagira.

Če želite zaznati kode za daljinski upravljalnik IR, morate najprej zagnati preprosto skico, ki poskuša prebrati kodo s senzorja, ko pritisnete tipko, in jo preko serijskih vrat pošlje v računalnik, kjer lahko do nje dostopate z orodji Serial Monitor Arduino IDE. To počne skica, priložena temu razdelku. Bolje bi bilo pritisniti vsak gumb, da si ogledate kodo in si nekje zapišete seznam kod, da vam te kode v prihodnje ne bo treba znova zagnati. Seznam kod, ki jih vidite kot tabelo na sliki, so pravzaprav kode, ki sem jih prejel ob pritisku gumbov na mojem poceni daljinskem upravljalniku.

Dostopate lahko tudi do dejanske izvorne kode, ki je v skupni rabi v mojem spletnem urejevalniku Arduino, na spletnem mestu ir-key-code-logger.

Opomba: Ne bojte se, če nekje vmes vidite kodo, kot je FFFFFF. To pomeni, da ste pritisnili in nekaj časa držali gumb. K temu se bomo vrnili kasneje. Zaenkrat jih preprosto prezrite in se osredotočite na druge kode.

Korak 6: Upravljanje niza LED z daljinskim upravljalnikom IR

Upravljajte niz LED z daljinskim upravljalnikom IR
Upravljajte niz LED z daljinskim upravljalnikom IR
Upravljajte niz LED z daljinskim upravljalnikom IR
Upravljajte niz LED z daljinskim upravljalnikom IR
Upravljajte niz LED z daljinskim upravljalnikom IR
Upravljajte niz LED z daljinskim upravljalnikom IR

Zdaj, ko imamo kodo za vsak gumb, je čas, da se osredotočimo na način, kako jih lahko uporabljamo. Običajno z daljinskim upravljalnikom IR pošiljate ukaze Arduinu, da naredite nekaj, na primer vklopite ali izklopite svetilko, premaknete robota v določeno smer, prikažete nekaj na LCD/OLED zaslonu itd. Tukaj poskušamo prikazati postopek z enostavnim vezje, sestavljeno iz 4 LED v različnih barvah. Vsakega izmed njih želimo vklopiti ali izklopiti s posebnim gumbom na daljinskem upravljalniku IR. Kot lahko vidite na shemi, morate Arduino priključiti na naslednji način na LED in senzor:

Arduino GND -> IR senzor GND.

Arduino VCC -> IR senzor VCC.

Arduino 13 -> Izhod signala IR senzorja.

Arduino 2 -> Anoda modre LED (krajši zatič modre LED)

Arduino 3 -> Anoda zelene LED (krajši zatič zelene LED)

Arduino 4 -> Anoda rumene LED (krajši zatič rumene LED)

Arduino 5 -> Anoda rdeče LED (krajši zatič rdeče LED)

Arduino GND -> Katoda vseh LED preko 220 ohmskega upora (daljši zatič LED)

Kodo, ki ustreza temu vezju, najdete v priloženi datoteki ali v mojem spletnem urejevalniku Arduino na naslovu ir-led-control.

7. korak: Odpravljanje težav

Med nastavljanjem projekta in sledenjem korakom se lahko srečate s številnimi čudnimi situacijami. Tu je seznam nekaterih pogostih napak, do katerih lahko pride pri delu z IR senzorjem.

Pridobivanje FFFFFF ob pritisku na tipko

Ko pritisnete gumb, boste morda opazili, da večino časa poroča o kodi, kot je FFFFFF. To se zgodi, ko pritisnete gumb in ga držite nekaj časa, tudi za kratek čas. Scenarij je tak, da ob prvem pritisku gumba IR daljinski upravljalnik pošlje kodo gumba in dokler držite gumb, ponavlja pošiljanje FFFFFF, kar pomeni, da uporabnik še vedno pritisne gumb, o katerem so poročali nedavno. To bi bilo v redu. Lahko jih preprosto izpustite. Dejanska koda je tista, ki ste jo dobili tik pred FFFFFF na serijskem monitorju.

IR senzor sploh ne reagira in zdi se, da se segreva

Prekinite moč !!! Če ste prepričani, da je skica zapisovalnika kod pravilna, je težava morda posledica napačne nastavitve žic. Scenarij, ki se mi je zgodil, je bil, da sem za svoj IR modul (tistega, pritrjenega na ploščo) VCC in GND povezal na nasproten način (ker nisem uporabil ustreznih barv za svoje priključne žice). S tem je senzorska komponenta pogorela in se je dvignil lep modri dim. Kupil sem paket surovih IR senzorjev in ga poskušal zamenjati in zdaj deluje kot čar:). Na žalost sem naredil isto napako, ko sem testiral s surovim IR senzorjem in tokrat se ni zgodilo nič, razen da se je senzor segrel. Zato pred vklopom vedno preverite vezje!

Včasih senzor zazna kodo, ki je še nisem videl

To je eno najpogostejših vprašanj. Najverjetneje je to posledica enega od naslednjih razlogov:

IR daljinca ne usmerjate neposredno proti senzorju

To bo privedlo do novih kod (večinoma daljših), ki jih še niste prejeli in se običajno ne ujemajo z dolžino kod, ki jih že imate. Zato ne pozabite vedno usmeriti daljinskega upravljalnika proti senzorju.

Uporabljate poceni IR daljinski upravljalnik (podoben tistemu, ki sem ga uporabil v tej vadnici)

Namesto poceni nepredvidljivih daljinskih upravljalnikov lahko poskusite isti scenarij z daljinskim upravljalnikom televizorja ali DVD predvajalnika ali daljinskim upravljalnikom katere koli naprave, ki jo imate. Običajno imajo dobro kakovost signala/strojne opreme (in seveda dražje) in glede na moje izkušnje običajno dobro delujejo, tudi če daljinskega upravljalnika ne usmerite neposredno proti senzorju.

Kako vem, če prijavljena koda ni smeti

Kode so običajno predstavljene v šestnajstiški obliki. Če jih pretvorite v ustrezno binarno vrednost, boste opazili, da je binarna predstavitev zadnjega bajta negacija bajta pred tem. Če to veste, lahko to preverite v svoji kodi in se prepričate, da je prejeta koda dejansko veljavna ali ne. Če imate na primer FF7A85, bi bila njegova binarna predstavitev naslednja:

1111 1111 0111 1010 1000 0101

Od leve proti desni je vsaka serija 4 števk predstavitev znaka v izvirnem šestnajstiškem številu. Kot lahko vidite, je serija, ki ustreza 7, 0111, serija, ki ustreza 8, pa 1000, kar je njena negacija. Z negacijo mislim, da bi bile vse 0 enake 1 in vse 1 bi bile zamenjane z 0. Enako velja za naslednjo, ki je A (1010) in 5 (0101).

8. korak: Kaj storiti naprej?

Zdaj si ti na vrsti. Vse je odvisno od vaše domišljije, da vidite, kaj lahko storite s tem majhnim preprostim senzorjem v roki. Tu je nekaj idej za začetek:

  • Uporabite IR daljinski upravljalnik ene od naprav, ki jih imate doma (TV, stereo itd.) In ga poskusite uporabiti v svojem projektu Arduino
  • Poskusite vklopiti vse LED naenkrat s pritiskom na tipko, nato pa jih izklopite z drugo tipko
  • Z gumboma gor/dol na daljinskem upravljalniku vklopite/izklopite LED eno za drugo, dokler se vse ne vklopijo/izklopijo
  • Ustvarite semafor z LED diodami in ga upravljajte z daljinskim upravljalnikom
  • Če imate pri roki majhen enosmerni motor, poskusite zagnati/ustaviti ali spremeniti smer vrtenja prek daljinskega upravljalnika IR
  • Z daljinskim upravljalnikom televizorja lahko upravljate svojega robota ali omogočite/onemogočite nekatere senzorje/aktuatorje na njem

Sporočite mi o komentarjih, kaj bi naredili (ali ste že naredili) z daljinskim upravljalnikom IR.

Priporočena: