Innholdsfortegnelse:

Bruke infrarød sensor med Arduino: 8 trinn (med bilder)
Bruke infrarød sensor med Arduino: 8 trinn (med bilder)

Video: Bruke infrarød sensor med Arduino: 8 trinn (med bilder)

Video: Bruke infrarød sensor med Arduino: 8 trinn (med bilder)
Video: Infrared Obstacle Avoidance module for Arduino with code 2024, November
Anonim
Bruke infrarød sensor med Arduino
Bruke infrarød sensor med Arduino

Hva er en infrarød (aka IR) sensor?

En IR -sensor er et elektronisk instrument som skanner IR -signaler i bestemte frekvensområder definert av standarder og konverterer dem til elektriske signaler på utgangspinnen (vanligvis kalt signalpinne). IR -signalene brukes hovedsakelig til å overføre kommandoer over luften på korte avstander (vanligvis få meter) som det du allerede har jobbet med på TV -fjernkontroller eller andre lignende elektroniske enheter.

IR kommunikasjonsprotokoll

Hvert signal representerer en bestemt kode. Elektriske signaler kan konverteres tilbake til de faktiske dataene/koden som avsenderen har sendt. Når du trykker på en knapp på TV -fjernkontrollen, genererer den et signal som tilsvarer knappekoden (f.eks. På/Av, Volum opp, etc.) og sender den til en mottaker (i dette tilfellet din TV). Både sender og mottaker ble enige om et sett med koder slik at mottakeren vet hva han skal gjøre basert på hver kode. Måten en kode skal moduleres (modelleres) på som et signal er definert i forskjellige standarder, og hver sensorprodusent prøver vanligvis å produsere et produkt som er kompatibelt med dem, slik at det kan brukes i forskjellige enheter. En av de mest kjente standardprotokollene er fra NEC. Du kan finne en kort historie med IR -protokoller på Wikipedia under Consumer IR -tittel.

Trinn 1: Hvordan ser en IR -sensor ut?

Hvordan ser en IR -sensor ut?
Hvordan ser en IR -sensor ut?
Hvordan ser en IR -sensor ut?
Hvordan ser en IR -sensor ut?
Hvordan ser en IR -sensor ut?
Hvordan ser en IR -sensor ut?

IR -sensorer er tilgjengelig på forskjellige pakker. Her kan du se en typisk emballasje for en IR -mottaker.

Trinn 2: IR Sensor Breakout Board/modul

IR Sensor Breakout Board/modul
IR Sensor Breakout Board/modul
IR Sensor Breakout Board/modul
IR Sensor Breakout Board/modul
IR Sensor Breakout Board/modul
IR Sensor Breakout Board/modul
IR Sensor Breakout Board/modul
IR Sensor Breakout Board/modul

Du kan også kjøpe dem som en IR -modul/utbruddstavle på eBay, Aliexpress eller Amazon. Slike moduler inneholder normalt en av sensorene nevnt ovenfor med en fin brødbrettvennlig pakke sammen med en LED som blinker når sensoren oppdager et signal. Ved å gjøre dette vil du legge merke til om noen data blir overført. Jeg anbefaler på det sterkeste å starte med en av disse modulene.

Merk: Hvis du har en rå IR -sensor, ville ingenting endret seg, bortsett fra at du bør sjekke databladet til sensoren for å være sikker på at du kobler den riktig, for ellers kan du ha en vakker blå røyk med en lukt som varer i en time. Du vet hva jeg mener;)

Trinn 3: Nødvendige deler og komponenter

Nødvendige deler og komponenter
Nødvendige deler og komponenter

Her finner du listen over komponenter du trenger for å fullføre denne opplæringen:

eBay lenker:

  • 1 x Arduino Uno:
  • 1 x IR -sensormodul med fjernkontroll:
  • 4 x 220 ohm motstander:
  • 4 x LED:
  • 8 x Dupont -kabel:
  • 1 x loddfritt brødbrett:
  • 1 x Mini -brødbrett (valgfritt):

Amazon.com lenker:

  • 1 x Arduino Uno:
  • 1 x IR -sensormodul med fjernkontroll:
  • 1 x loddefritt brødbrett:
  • 4 x 220 ohm motstander:
  • 4 x LED:
  • 8 x Dupont -kabel:
  • 1 x Mini -brødbrett (valgfritt):

Trinn 4: Koble IR -sensor til Arduino

Koble IR -sensor til Arduino
Koble IR -sensor til Arduino
Koble IR -sensor til Arduino
Koble IR -sensor til Arduino
Koble IR -sensor til Arduino
Koble IR -sensor til Arduino

Å sette opp IR -sensortilkobling til Arduino er veldig enkelt. Ved siden av VCC- og GND -pinnen har sensoren bare en utgangspinne som skal kobles til en av de digitale pinnene på Arduino. I dette tilfellet er den koblet til pin 13.

Jeg prøvde å demonstrere både IR -sensormodul og rå IR -sensoroppsett. Som det kan sees på bilder, er posisjonen til VCC- og GND -pinnene på sensormodulen det motsatte av råsensoren. Imidlertid er det kanskje ikke tilfelle for sensoren din, så som nevnt i forrige trinn, sjekk databladet først hvis du bruker råsensoren.

Trinn 5: Finn koden som tilsvarer hver nøkkel på fjernkontrollen

Finn koden som tilsvarer hver nøkkel på fjernkontrollen
Finn koden som tilsvarer hver nøkkel på fjernkontrollen
Finn koden som tilsvarer hver nøkkel på fjernkontrollen
Finn koden som tilsvarer hver nøkkel på fjernkontrollen
Finn koden som tilsvarer hver nøkkel på fjernkontrollen
Finn koden som tilsvarer hver nøkkel på fjernkontrollen

For å programmere Arduino til å gjøre noe når du trykker på en tast på fjernkontrollen, bør du først ha koden som tilsvarer den tasten. Nøkkelen er et tall som vanligvis presenteres som heksadesimalt. Hver fjernkontroll har sitt eget sett med nøkkelkoder, mens det er mulig at to kontrollere deler den samme koden for forskjellige formål. Å ha forskjellige nøkkelkoder sammen med bruk av forskjellige frekvensområder, sikrer at to fjernkontroller på forskjellige enheter ikke ville ha forstyrrelser. Derfor reagerer DVD -spilleren din ikke i det hele tatt når du bytter TV -kanal.

For å oppdage kodene for IR -fjernkontrollen, må du først kjøre en enkel skisse som prøver å lese koden fra sensoren når du trykker på en tast og sender den via serieporten til datamaskinen din, hvor du kan få tilgang til den ved hjelp av Serial Monitor -verktøy for Arduino IDE. Dette er hva skissen vedlagt denne delen gjør. Det ville være bedre å trykke på hver knapp for å se koden og skrive ned listen med koder et sted, slik at du ikke trenger å kjøre denne koden igjen i fremtiden. Listen over nøkkelkoder du ser som en tabell på bildet, er faktisk koder jeg mottok da jeg trykte på knappene på min billige IR -fjernkontroll.

Du kan også få tilgang til den faktiske kildekoden som er delt på min Arduino webredaktør på ir-key-code-logger.

Merk: Ikke bli redd hvis du ser en kode som FFFFFF et sted i mellom. Det betyr at du har trykket og holdt inne en knapp en stund. Vi kommer tilbake til det senere. For nå er det bare å ignorere dem og fokusere på andre koder.

Trinn 6: Kontroller et sett med lysdioder ved hjelp av IR -fjernkontroll

Kontroller et sett med lysdioder ved hjelp av IR -fjernkontroll
Kontroller et sett med lysdioder ved hjelp av IR -fjernkontroll
Kontroller et sett med lysdioder ved hjelp av IR -fjernkontroll
Kontroller et sett med lysdioder ved hjelp av IR -fjernkontroll
Kontroller et sett med lysdioder ved hjelp av IR -fjernkontroll
Kontroller et sett med lysdioder ved hjelp av IR -fjernkontroll

Nå som vi har en kode for hver knapp, er det på tide å fokusere på måten vi kan bruke dem. Normalt bruker du IR -fjernkontrollen til å sende kommandoer til Arduino for å gjøre noe som å slå på eller av en lampe, flytte en robot i en bestemt retning, vise noe på en LCD/OLED -skjerm, etc. Her prøver vi å demonstrere prosessen ved hjelp av en enkel krets bestående av 4 lysdioder i forskjellige farger. Vi ønsker å slå hver av dem på eller av med en dedikert knapp på IR -fjernkontrollen. Som du kan se på skjematikken, må du koble Arduino på følgende måte til lysdioder og sensor:

Arduino GND -> IR -sensor GND.

Arduino VCC -> IR sensor VCC.

Arduino 13 -> IR sensor signalutgang.

Arduino 2 -> Anode til den blå LED -en (kortere pin på den blå LED -en)

Arduino 3 -> Anode på den grønne LED -en (kortere pin på den grønne LED -en)

Arduino 4 -> Anode på den gule LED -en (kortere pinne på den gule LED -en)

Arduino 5 -> Anode til den røde LED -en (kortere pin på den røde LED -en)

Arduino GND -> Katode av alle lysdioder via en 220 ohm motstand (lengre pin på lysdiodene)

Du finner koden som tilsvarer denne kretsen i den vedlagte filen eller på min Arduino webredaktør på ir-led-control.

Trinn 7: Feilsøking

Når du konfigurerer prosjektet og følger trinnene, kan du støte på mange rare situasjoner. Her er listen over noen vanlige feil du kan få når du arbeider med IR -sensor.

Få FFFFFF når du trykker på en tast

Når du trykker på en knapp, kan du legge merke til at den for det meste rapporterer en kode som FFFFFF. Dette skjer når du trykker på en knapp og holder den inne en stund, selv for en kort periode. Scenariet er at når du trykker på knappen først, sender IR -fjernkontrollen knappekoden, og så lenge du holder knappen, gjentas sending av FFFFFF, noe som betyr at brukeren fortsatt trykker på knappen som ble rapportert nylig. Det ville være OK. Du kan bare utelate dem. Den faktiske koden er den du fikk rett før FFFFFF på Serial Monitor.

IR -sensor reagerer ikke i det hele tatt og ser ut til å bli varm

Kutt strømmen !!! Hvis du er sikker på at nøkkelkodeloggerskissen er riktig, kan problemet skyldes feil oppsett av ledningene dine. Scenariet som skjedde med meg var at for min IR -modul (den som er festet til brettet) hadde jeg koblet VCC og GND på motsatt måte (på grunn av at jeg ikke brukte riktige farger for tilkoblingstrådene mine). Ved å gjøre det brente sensorkomponenten og en fin blå røyk hevet. Jeg kjøpte en pakke med rå IR -sensorer og prøvde å bytte den, og nå fungerer den som en sjarm:). Dessverre gjorde jeg den samme feilen da jeg testet med den rå IR -sensoren, og denne gangen skjedde ingenting bortsett fra at sensoren ble varm. Så sjekk alltid kretsen før du slår på strømmen!

Noen ganger oppdager sensoren en kode som jeg aldri har sett før

Dette er en av de vanligste problemene. Det er mest sannsynlig på grunn av en av følgende årsaker:

Du peker ikke IR -fjernkontrollen direkte mot sensoren

Dette vil føre til at du har noen nye koder (for det meste lengre koder) som du aldri har mottatt før og som vanligvis ikke samsvarer med lengden på kodene du allerede har. Så husk å alltid rette fjernkontrollen mot sensoren din.

Du bruker en billig IR -fjernkontroll (som den jeg brukte i denne opplæringen)

I stedet for å bruke billige, uforutsigbare fjernkontroller, kan du prøve det samme scenariet ved å bruke TV -en eller DVD -spillerens fjernkontroll eller en IR -fjernkontroll for alle enheter du har. De har normalt en god signal-/maskinvarekvalitet (og er selvfølgelig dyrere) og basert på min erfaring fungerer de normalt bra selv om du ikke peker fjernkontrollen direkte mot sensoren.

Hvordan vet jeg om en kode som er logget ikke er søppel

Kodene presenteres normalt i heksadesimalt format. Hvis du konverterer dem til den tilsvarende binære verdien, vil du legge merke til at den binære representasjonen av den siste byten er negasjonen av byten kommer før det. Hvis du vet dette, kan du gjøre dette ved å sjekke koden for å sikre at koden du mottok faktisk er gyldig eller ikke. Som et eksempel, hvis du fikk FF7A85, ville den binære representasjonen være som nedenfor:

1111 1111 0111 1010 1000 0101

Fra venstre til høyre representerer hver batch på 4 sifre et tegn i det opprinnelige heksadesimale tallet. Som du kan se er batchen som tilsvarer 7 0111 og batchen som tilsvarer 8 er 1000 som er den eksakte negasjonen av den. Med negasjon mener jeg at alle 0 -er ville være 1 -er og alle 1 -er ville blitt erstattet av 0 -er. Det samme gjelder for den neste som er A (1010) og 5 (0101).

Trinn 8: Hva skal jeg gjøre videre?

Nå er det din tur. Det er helt opp til fantasien din å se hva du kan gjøre med denne lille enkle sensoren i hånden. Her er noen ideer til å begynne med:

  • Bruk IR -fjernkontrollen til en av enhetene du har hjemme (TV, stereo, etc.) og prøv å bruke den i Arduino -prosjektet
  • Prøv å slå på alle lysdiodene samtidig ved å trykke på en tast og deretter slå dem av med en annen tast
  • Bruk Opp/Ned -knappen på fjernkontrollen for å slå LEDene på/av en etter en til alle slås av/på
  • Lag et trafikklys ved hjelp av lysdioder og kontroller det med fjernkontrollen
  • Hvis du har en liten DC -motor for hånden, kan du prøve å starte/stoppe eller endre rotasjonsretningen via IR -fjernkontrollen
  • Du kan bruke TV -fjernkontrollen til å kontrollere roboten eller aktivere/deaktivere noen sensorer/aktuatorer på den

Gi meg beskjed om kommentarer, hva ville du gjort (eller du har allerede gjort) ved hjelp av IR -fjernkontroll.

Anbefalt: