INHOUDSOPGAWE:

Die gebruik van infrarooi sensor met Arduino: 8 stappe (met foto's)
Die gebruik van infrarooi sensor met Arduino: 8 stappe (met foto's)

Video: Die gebruik van infrarooi sensor met Arduino: 8 stappe (met foto's)

Video: Die gebruik van infrarooi sensor met Arduino: 8 stappe (met foto's)
Video: Infrared Obstacle Avoidance module for Arduino with code 2024, Junie
Anonim
Gebruik infrarooi sensor met Arduino
Gebruik infrarooi sensor met Arduino

Wat is 'n infrarooi sensor (ook bekend as IR)?

'N IR -sensor is 'n elektroniese instrument wat IR -seine in spesifieke frekwensiebepalings wat deur standaarde gedefinieer word, skandeer en dit omskakel in elektriese seine op die uitsetpen (tipies seinpen). Die IR -seine word hoofsaaklik gebruik om opdragte oor kort afstande (gewoonlik 'n paar meter) oor die lug te stuur, soos waarmee u al gewerk het op TV -afstandsbedienings of ander soortgelyke elektroniese toestelle.

IR kommunikasie protokol

Elke sein verteenwoordig 'n spesifieke kode. Elektriese seine kan teruggeskakel word na die werklike data/kode wat die sender gestuur het. As u op 'n knoppie op u TV -afstandsbediening druk, genereer dit 'n sein wat ooreenstem met die knoppiekode (bv. Aan/af, volume hoër, ens.) En stuur dit vir 'n ontvanger (in hierdie geval u TV). Beide sender en ontvanger het ooreengekom oor 'n stel kodes, sodat die ontvanger op grond van elke kode weet wat om te doen. Die manier waarop 'n kode as 'n sein gemoduleer (gemodelleer) moet word, word in verskillende standaard gedefinieer en elke sensorvervaardiger probeer gewoonlik 'n produk wat daarmee verenigbaar is, produseer, sodat dit op verskillende toestelle gebruik kan word. Een van die bekendste standaardprotokolle is van NEC. U kan 'n kort geskiedenis van IR -protokolle vind op Wikipedia onder Consumer IR -titel.

Stap 1: Hoe lyk 'n IR -sensor?

Hoe lyk 'n IR -sensor?
Hoe lyk 'n IR -sensor?
Hoe lyk 'n IR -sensor?
Hoe lyk 'n IR -sensor?
Hoe lyk 'n IR -sensor?
Hoe lyk 'n IR -sensor?

IR -sensors is beskikbaar op verskillende pakkette. Hier kan u 'n paar tipiese verpakkings vir 'n IR -ontvanger sien.

Stap 2: IR Sensor Breakout Board/module

IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module

U kan dit ook koop as 'n IR -module/uitbreekbord op eBay, Aliexpress of Amazon. Sulke modules bevat gewoonlik een van die bogenoemde sensors, met 'n lekker broodbordvriendelike pakket saam met 'n LED wat sal flits as die sensor 'n sein opspoor. Deur dit te doen, sal u agterkom of enige data oorgedra word. Ek raai u aan om met een van hierdie modules te begin.

Let wel: as u 'n rou IR -sensor het, verander niks nie, behalwe dat u die datablad van die sensor moet nagaan om seker te maak dat u dit korrek bedrieg, want anders kan u 'n pragtige blou rook hê met 'n reuk wat uur. Jy weet wat ek bedoel;)

Stap 3: Vereiste onderdele en komponente

Vereiste onderdele en komponente
Vereiste onderdele en komponente

Hier vind u die lys van komponente wat u benodig om hierdie tutoriaal te voltooi:

eBay -skakels:

  • 1 x Arduino Uno:
  • 1 x IR -sensormodule met afstandsbediening:
  • 4 x 220 ohm weerstande:
  • 4 x LED:
  • 8 x Dupont -kabel:
  • 1 x soldeerlose broodbord:
  • 1 x Mini -broodbord (opsioneel):

Amazon.com -skakels:

  • 1 x Arduino Uno:
  • 1 x IR -sensormodule met afstandsbediening:
  • 1 x soldeerlose broodbord:
  • 4 x 220 ohm weerstande:
  • 4 x LED:
  • 8 x Dupont -kabel:
  • 1 x Mini -broodbord (opsioneel):

Stap 4: Koppel IR -sensor aan Arduino

Koppel IR -sensor aan Arduino
Koppel IR -sensor aan Arduino
Koppel IR -sensor aan Arduino
Koppel IR -sensor aan Arduino
Koppel IR -sensor aan Arduino
Koppel IR -sensor aan Arduino

Die opstel van 'n IR -sensorverbinding met Arduino is baie eenvoudig. Benewens die VCC- en GND -pen, het die sensor slegs een uitvoerpen wat aan een van die digitale penne van die Arduino gekoppel moet word. In hierdie geval is dit gekoppel aan pen 13.

Ek het probeer om beide die IR -sensormodule en die opstelling van die rou IR -sensor aan te toon. Soos op foto's gesien kan word, is die posisie van die VCC- en GND -penne op die sensormodule die teenoorgestelde van die ruwe sensor. Dit is egter moontlik nie die geval met u sensor nie, dus, soos in die vorige stap genoem, moet u eers die datablad nagaan as u die rou sensor gebruik.

Stap 5: Soek die kode wat ooreenstem met elke sleutel op die afstandsbediening

Vind die kode wat ooreenstem met elke sleutel op die afstandsbediening
Vind die kode wat ooreenstem met elke sleutel op die afstandsbediening
Vind die kode wat ooreenstem met elke sleutel op die afstandsbediening
Vind die kode wat ooreenstem met elke sleutel op die afstandsbediening
Vind die kode wat ooreenstem met elke sleutel op die afstandsbediening
Vind die kode wat ooreenstem met elke sleutel op die afstandsbediening

Om Arduino te programmeer om iets te doen as u op 'n sleutel op die afstandsbediening druk, moet u eers die kode hê wat ooreenstem met die sleutel. Die sleutelkode is 'n getal wat normaalweg as heksadesimaal voorgestel word. Elke afstandbeheer het sy eie stel sleutelkodes, terwyl dit moontlik is dat twee beheerders dieselfde kode vir verskillende doeleindes deel. Deur verskillende sleutelkodes saam met die gebruik van verskillende frekwensie -reekse te verseker, kan twee afstandbeheerders van verskillende toestelle geen steuring hê nie. Daarom reageer u DVD -speler glad nie as u u TV -kanaal verander nie.

Om die kodes vir u IR -afstandsbediening op te spoor, moet u eers 'n eenvoudige skets uitvoer wat die kode van die sensor probeer lees as u op 'n sleutel druk en dit via die seriële poort na u rekenaar stuur, waar u dit kan gebruik met Serial Monitor -gereedskap van Arduino IDE. Dit is wat die skets aan hierdie afdeling doen. Dit is beter om op elke knoppie te druk om die kode te sien en die kodeslys iewers neer te skryf, sodat u dit nie in die toekoms weer hoef te gebruik nie. Die lys met sleutelkodes wat u as 'n tabel op die foto sien, is eintlik kodes wat ek ontvang het toe ek op die knoppies op my goedkoop IR -afstandsbediening gedruk het.

U kan ook toegang kry tot die werklike bronkode wat op my Arduino-webredakteur gedeel word by ir-key-code-logger.

Let wel: Moenie bang wees as u iewers tussenin 'n kode soos FFFFFF sien nie. Dit beteken dat u 'n rukkie lank 'n knoppie ingedruk het. Ons kom later weer daarop terug. Ignoreer hulle nou en fokus op ander kodes.

Stap 6: Beheer 'n stel LED's met behulp van IR -afstandsbediening

Beheer 'n stel LED's met behulp van IR -afstandsbediening
Beheer 'n stel LED's met behulp van IR -afstandsbediening
Beheer 'n stel LED's met behulp van IR -afstandsbediening
Beheer 'n stel LED's met behulp van IR -afstandsbediening
Beheer 'n stel LED's met behulp van IR -afstandsbediening
Beheer 'n stel LED's met behulp van IR -afstandsbediening

Noudat ons 'n kode vir elke knoppie het, is dit tyd om te fokus op die manier waarop ons dit kan gebruik. Normaalweg gebruik u die IR -afstandsbediening om opdragte na Arduino te stuur om iets te doen soos om 'n lamp aan of uit te skakel, 'n robot in 'n spesifieke rigting te beweeg, iets op 'n LCD/OLED -skerm te vertoon, ens. Hier probeer ons die proses demonstreer met behulp van 'n eenvoudige stroombaan bestaande uit 4 LED's in verskillende kleure. Ons wil elkeen van hulle aan- of uitskakel met 'n spesiale knoppie van die IR -afstandsbediening. Soos u op die skema kan sien, moet u die Arduino op die volgende manier aan LED's en sensor koppel:

Arduino GND -> IR sensor GND.

Arduino VCC -> IR sensor VCC.

Arduino 13 -> IR sensor seine uitset.

Arduino 2 -> Anode van die blou LED (korter pen van die blou LED)

Arduino 3 -> Anode van die groen LED (korter pen van die groen LED)

Arduino 4 -> Anode van die geel LED (korter pen van die geel LED)

Arduino 5 -> Anode van die rooi LED (korter pen van die rooi LED)

Arduino GND -> Katode van alle LED's via 'n weerstand van 220 ohm (langer pen van die LED's)

U vind die kode wat ooreenstem met hierdie kring in die aangehegte lêer of op my Arduino webredakteur by ir-led-control.

Stap 7: Probleemoplossing

As u u projek opstel en die stappe volg, kan u baie vreemde situasies ondervind. Hier is 'n lys met 'n paar algemene foute wat u kan kry as u met IR -sensor werk.

Kry FFFFFF as u op 'n sleutel druk

As u op 'n knoppie druk, kan u opmerk dat dit meestal 'n kode soos FFFFFF rapporteer. Dit gebeur as u op 'n knoppie druk en dit 'n rukkie lank hou, selfs vir 'n kort tydjie. Die scenario is dat as u eers op die knoppie druk, die IR -afstandsbediening die knoppiekode stuur, en solank u die knoppie ingedruk hou, herhaal dit die stuur van FFFFFF, wat beteken dat die gebruiker nog steeds op die knoppie druk wat onlangs gerapporteer is. Dit sal OK wees. U kan hulle net weglaat. Die werklike kode is die kode wat u reg voor FFFFFF op die seriële monitor gekry het.

IR -sensor reageer glad nie en dit lyk asof dit warm word

Sny die krag af !!! As u seker is dat die skets van die sleutelkode -logger korrek is, kan die probleem wees as gevolg van die verkeerde opstelling van u drade. Die scenario wat met my gebeur het, was dat ek vir my IR -module (die een wat aan die bord geheg is) die VCC en GND op die teenoorgestelde manier verbind het (omdat ek nie die regte kleure vir my aansluitdrade gebruik het nie). Deur dit te doen, het die sensor -komponent gebrand en 'n mooi blou rook opgewek. Ek het 'n pakkie rou IR -sensors gekoop en probeer om dit te vervang en nou werk dit soos 'n sjarme:). Ongelukkig het ek dieselfde fout gemaak toe ek met die rou IR -sensor getoets het, en hierdie keer het niks gebeur nie, behalwe dat die sensor warm geword het. Kontroleer dus altyd die kring voordat u die krag aanskakel!

Soms bespeur die sensor 'n kode wat ek nog nooit gesien het nie

Dit is een van die mees algemene kwessies. Dit is waarskynlik as gevolg van een van die volgende redes:

U wys u IR -afstandsbediening nie direk na die sensor nie

Dit sal lei tot 'n paar nuwe kodes (meestal langer kodes) wat u nog nooit ontvang het nie en gewoonlik nie ooreenstem met die lengte van die kodes wat u reeds het nie. Onthou dus om altyd die afstandsbediening na u sensor te wys.

U gebruik 'n goedkoop IR -afstandsbediening (soos ek in hierdie handleiding gebruik het)

In plaas daarvan om 'n goedkoop onvoorspelbare afstandsbediening te gebruik, kan u dieselfde scenario probeer met u TV- of DVD -speler -afstandsbediening of 'n IR -afstandsbediening van alle toestelle wat u het. Hulle het gewoonlik 'n goeie sein-/hardeware -kwaliteit (en natuurlik duurder) en op grond van my ervaring werk dit normaalweg goed, selfs as u nie u afstandsbediening direk na die sensor wys nie.

Hoe weet ek of 'n geregistreerde kode nie 'n vullis is nie?

Die kodes word gewoonlik in heksadesimale formaat aangebied. As u dit omskakel na die ooreenstemmende binêre waarde, sal u sien dat die binêre voorstelling van die laaste byte die negasie van die byte is. As u dit weet, kan u hierdie kode in u kode kontroleer om seker te maak dat die kode wat u ontvang het, eintlik 'n geldige kode is. As 'n voorbeeld, as u FF7A85 kry, sou die binêre voorstelling soos volg wees:

1111 1111 0111 1010 1000 0101

Van links na regs verteenwoordig elke groep van 4 syfers 'n karakter in die oorspronklike heksadesimale getal. Soos u kan sien, is die groep wat ooreenstem met 7 0111 en die groep wat ooreenstem met 8 is 1000, wat die presiese ontkenning daarvan is. Met ontkenning bedoel ek dat alle 0'e 1'e sou wees en alle 1'e deur 0'e vervang sou word. Dieselfde geld vir die volgende een, A (1010) en 5 (0101).

Stap 8: Wat om verder te doen?

Nou is dit jou beurt. Dit hang alles van u verbeelding af om te sien wat u met hierdie klein sensor in u hand kan doen. Hier is 'n paar idees om mee te begin:

  • Gebruik die IR -afstandsbediening van een van die toestelle wat u tuis het (TV, stereo, ens.) En probeer dit in u Arduino -projek gebruik
  • Probeer om alle LED's tegelyk aan te skakel deur op 'n sleutel te druk en dan met 'n ander sleutel uit te skakel
  • Gebruik die op/af -knoppie van die afstandsbediening om LED's een vir een aan/uit te skakel totdat hulle almal aan/uit is
  • Skep 'n verkeerslig met behulp van LED's en beheer dit met u afstandsbediening
  • As u 'n klein GS -motor byderhand het, probeer om te begin/stop of verander die rotasie rigting via IR -afstandsbediening
  • U kan u TV -afstandsbediening gebruik om u robot te beheer of sommige sensors/aktuators daarop in/uit te skakel

Laat my weet oor kommentaar, wat sou u doen (of u het al gedoen) met behulp van IR -afstandsbediening.

Aanbeveel: