Taula de continguts:

Ús del sensor d'infrarojos amb Arduino: 8 passos (amb imatges)
Ús del sensor d'infrarojos amb Arduino: 8 passos (amb imatges)

Vídeo: Ús del sensor d'infrarojos amb Arduino: 8 passos (amb imatges)

Vídeo: Ús del sensor d'infrarojos amb Arduino: 8 passos (amb imatges)
Vídeo: Leap Motion SDK 2024, Desembre
Anonim
Ús d’un sensor d’infrarojos amb Arduino
Ús d’un sensor d’infrarojos amb Arduino

Què és un sensor d'infrarojos (també conegut com a IR)?

Un sensor IR és un instrument electrònic que analitza els senyals IR en rangs de freqüència específics definits per les normes i els converteix en senyals elèctrics en el seu pin de sortida (normalment anomenat pin de senyal). Els senyals IR s’utilitzen principalment per transmetre ordres per aire a distàncies curtes (normalment pocs metres), com ara amb el que ja heu treballat als comandaments a distància del televisor o en altres dispositius electrònics similars.

Protocol de comunicació IR

Cada senyal representa un codi específic. Els senyals elèctrics es poden convertir de nou a les dades / codi reals que ha enviat el remitent. En prémer un botó del comandament a distància del televisor, genera un senyal corresponent al codi del botó (per exemple, Activat / Desactivat, Augment de volum, etc.) i l’envia per a un receptor (en aquest cas el vostre televisor). Tant el remitent com el receptor van acordar un conjunt de codis perquè el receptor sàpiga què fer en funció de cada codi. La manera com s’ha de modular (modelar) un codi a mesura que es defineix un senyal en un estàndard diferent i cada fabricant de sensors normalment intenta produir un producte compatible amb ells perquè es pugui utilitzar en diferents dispositius. Un dels protocols estàndard més coneguts és de NEC. Podeu trobar un breu historial de protocols IR a la Viquipèdia al títol IR Consumer.

Pas 1: Com és un sensor IR?

Com és un sensor IR?
Com és un sensor IR?
Com és un sensor IR?
Com és un sensor IR?
Com és un sensor IR?
Com és un sensor IR?

Els sensors IR estan disponibles en diferents paquets. Aquí podeu veure alguns embalatges típics d’un receptor d’IR.

Pas 2: Tauler / mòdul de separació del sensor IR

Taula / mòdul de ruptura del sensor IR
Taula / mòdul de ruptura del sensor IR
Taula / mòdul de ruptura del sensor IR
Taula / mòdul de ruptura del sensor IR
Taula / mòdul de ruptura del sensor IR
Taula / mòdul de ruptura del sensor IR
Taula / mòdul de ruptura del sensor IR
Taula / mòdul de ruptura del sensor IR

També els podeu comprar com a mòdul IR / tauler informatiu a eBay, Aliexpress o Amazon. Aquests mòduls normalment incorporen un dels sensors esmentats anteriorment amb un bon paquet de taulers integrats juntament amb un LED que parpelleja quan el sensor detecta un senyal. En fer-ho, notareu si s’estan transferint dades. Us recomano començar amb un d'aquests mòduls.

Nota: si teniu un sensor IR cru, no canviaria res, tret que haureu de comprovar la fitxa tècnica del sensor per assegurar-vos que el cablegeu correctament, ja que en cas contrari podríeu tenir un bonic fum blau amb una olor que duraria hores. Ja saps a què em refereixo;)

Pas 3: components i components necessaris

Peces i components necessaris
Peces i components necessaris

Aquí podeu trobar la llista de components que necessitareu per completar aquest tutorial:

Enllaços d'eBay:

  • 1 x Arduino Uno:
  • 1 x mòdul de sensor IR amb control remot:
  • Resistències de 4 x 220 ohm:
  • 4 x LED:
  • 8 x cable Dupont:
  • 1 x tauler de soldadura sense soldadura:
  • 1 x Mini tauler de suport (opcional):

Enllaços Amazon.com:

  • 1 x Arduino Uno:
  • 1 x mòdul de sensor IR amb control remot:
  • 1 x tauler de soldadura sense soldadura:
  • Resistències de 4 x 220 ohm:
  • 4 x LED:
  • 8 x cable Dupont:
  • 1 x Mini tauler de suport (opcional):

Pas 4: Connexió del sensor IR a Arduino

Connexió del sensor IR a Arduino
Connexió del sensor IR a Arduino
Connexió del sensor IR a Arduino
Connexió del sensor IR a Arduino
Connexió del sensor IR a Arduino
Connexió del sensor IR a Arduino

Configurar la connexió del sensor IR a Arduino és molt senzill. A més dels pins VCC i GND, el sensor només té un pin de sortida que s’hauria de connectar a un dels pins digitals de l’Arduino. En aquest cas, està connectat al pin 13.

Vaig intentar demostrar tant el mòdul del sensor d’IR com la configuració del sensor d’IR. Com es pot veure a les imatges, la posició dels pins VCC i GND al mòdul del sensor és la contrària al sensor en brut. Tanmateix, pot ser que no sigui el cas del vostre sensor, de manera que, tal com es va esmentar al pas anterior, en cas d’utilitzar el sensor en brut, consulteu primer el full de dades.

Pas 5: cerqueu el codi corresponent a cada clau del comandament a distància

Cerqueu el codi corresponent a cada clau del comandament a distància
Cerqueu el codi corresponent a cada clau del comandament a distància
Cerqueu el codi corresponent a cada clau del comandament a distància
Cerqueu el codi corresponent a cada clau del comandament a distància
Cerqueu el codi corresponent a cada clau del comandament a distància
Cerqueu el codi corresponent a cada clau del comandament a distància

Per tal de programar Arduino per fer alguna cosa quan premeu una tecla del comandament, primer haureu de tenir el codi corresponent a aquesta tecla. El codi clau és un número que normalment es presenta com a hexadecimal. Cada control remot té el seu propi conjunt de codis clau, tot i que és possible que dos controladors comparteixin el mateix codi per a propòsits diferents. Disposar de codis clau diferents juntament amb l’ús de diferents rangs de freqüència, garanteix que dos controladors remots de dispositius diferents no tinguin interferències. Per això, quan canvieu de canal de televisió, el reproductor de DVD no reacciona en absolut.

Per detectar els codis del comandament a distància IR, primer heu d’executar un esbós senzill que intenta llegir el codi des del sensor quan premeu una tecla i l’envia mitjançant el port sèrie al vostre ordinador, on podeu accedir-hi mitjançant les eines de IDE Arduino. Això és el que fa l'esbós adjunt a aquesta secció. Seria millor prémer tots els botons per veure el codi i escriure la llista de codis en algun lloc, de manera que no hagueu de tornar a executar aquest codi en el futur. La llista de codis clau que veieu com a taula a la imatge són codis que he rebut en prémer els botons del meu comandament a distància barat.

També podeu accedir al codi font real compartit al meu editor web Arduino a ir-key-code-logger.

Nota: No tingueu por si veieu un codi com FFFFFF en algun lloc intermedi. Vol dir que heu mantingut premut un botó durant un temps. Hi tornarem a entrar més endavant. De moment, només cal ignorar-los i centrar-se en altres codis.

Pas 6: Controleu un conjunt de LEDs mitjançant el control remot IR

Controleu un conjunt de LEDs mitjançant el control remot IR
Controleu un conjunt de LEDs mitjançant el control remot IR
Controleu un conjunt de LEDs mitjançant el control remot IR
Controleu un conjunt de LEDs mitjançant el control remot IR
Controleu un conjunt de LEDs mitjançant el control remot IR
Controleu un conjunt de LEDs mitjançant el control remot IR

Ara que tenim un codi per a cada botó, és hora de centrar-nos en la manera d’utilitzar-los. Normalment utilitzeu el comandament a distància IR per enviar ordres a Arduino per fer alguna cosa com encendre o apagar un llum, moure un robot en una direcció específica, mostrar alguna cosa en una pantalla LCD / OLED, etc. Aquí intentem demostrar el procés mitjançant circuit format per 4 LEDs de diferents colors. Volem activar o desactivar cadascun d'ells mitjançant un botó dedicat del comandament a distància IR. Com podeu veure a l'esquema, heu de connectar l'Arduino de la següent manera als LED i al sensor:

Arduino GND -> Sensor IR GND.

Arduino VCC -> Sensor IR VCC.

Arduino 13 -> Sortida de senyal del sensor IR.

Arduino 2 -> Ànode del LED blau (pin més curt del LED blau)

Arduino 3 -> Ànode del LED verd (pin més curt del LED verd)

Arduino 4 -> Ànode del LED groc (pin més curt del LED groc)

Arduino 5 -> Ànode del LED vermell (pin més curt del LED vermell)

Arduino GND -> Càtode de tots els LED mitjançant una resistència de 220 ohm (pin més llarg dels LED)

Podeu trobar el codi corresponent a aquest circuit al fitxer adjunt o al meu editor web Arduino a ir-led-control.

Pas 7: resolució de problemes

Mentre configureu el vostre projecte i seguiu els passos, us podeu trobar amb moltes situacions estranyes. A continuació, es mostra la llista d’alguns errors comuns que es poden produir quan es treballa amb un sensor IR.

Obtenir FFFFFF en prémer una tecla

En prémer un botó, podeu notar que la majoria de les vegades informa d'un codi com FFFFFF. Això passa quan premeu un botó i manteniu-lo premut durant un temps, fins i tot durant un breu període de temps. L’escenari és que quan premeu el botó inicialment, el comandament a distància IR envia el codi del botó i, sempre que mantingueu premut el botó, es repeteix l’enviament de FFFFFF, cosa que significa que l’usuari continua pressionant el botó informat recentment. Estaria bé. Només els podeu ometre. El codi real és el que teniu just abans de FFFFFF al monitor sèrie.

El sensor IR no reacciona en absolut i sembla que s’escalfa

Tallar el poder !!! Si esteu segur que l'esbós de registre de codi de claus és correcte, potser el problema es deu a la configuració incorrecta dels vostres cables. L’escenari que em va passar va ser que per al meu mòdul IR (el connectat a la placa) havia connectat el VCC i el GND de la manera contrària (a causa de no utilitzar colors adequats per als meus cables de connexió). En fer-ho, es va cremar el component del sensor i es va aixecar un bon fum blau. Vaig comprar un paquet de sensors IR sense processar i vaig intentar substituir-lo i ara funciona com un encant:). Per desgràcia, vaig cometre el mateix error quan estava provant amb el sensor d’IR cru i aquesta vegada no va passar res, excepte que el sensor es va escalfar. Així que sempre comproveu el circuit abans d’engegar l’alimentació.

De vegades, el sensor detecta un codi que mai no havia vist

Aquest és un dels problemes més habituals. Probablement és degut a un dels motius següents:

No apuntareu el comandament a distància IR directament cap al sensor

Això farà que hi hagi codis nous (sobretot codis més llargs) que mai no heu rebut i que normalment no coincideixen amb la longitud dels codis que ja teniu. Recordeu, doncs, d’orientar sempre el comandament a distància cap al sensor.

Esteu fent servir un comandament a distància IR barat (com el que he fet servir en aquest tutorial)

En lloc d’utilitzar comandaments a distància econòmics i impredictibles, podeu provar el mateix escenari amb el control remot del vostre reproductor de DVD o de DVD o un comandament a distància IR de qualsevol dispositiu que tingueu. Normalment tenen una bona qualitat de senyal / maquinari (i, per descomptat, són més cars) i, segons la meva experiència, normalment funcionen bé fins i tot si no orienteu el comandament a distància directament cap al sensor.

Com puc saber si un codi registrat no és una deixalla?

Els codis es presenten normalment en format hexadecimal. Si els convertiu al valor binari corresponent, notareu que la representació binària de l'últim byte és la negació del byte abans que això. Si ho sabeu, podeu fer aquesta comprovació al codi per assegurar-vos que el codi que heu rebut és realment vàlid o no. Com a exemple, si obteniu FF7A85, la seva representació binària seria la següent:

1111 1111 0111 1010 1000 0101

D'esquerra a dreta, cada lot de 4 dígits és la representació d'un caràcter en el número hexadecimal original. Com podeu veure, el lot corresponent a 7 és 0111 i el lot corresponent a 8 és 1000, que és la negació exacta del mateix. Per negació, vull dir que tots els 0 serien 1 i tots els 1 serien substituïts per 0. El mateix passa amb el següent que és A (1010) i 5 (0101).

Pas 8: què heu de fer a continuació?

Ara és el teu torn. Tot depèn de la vostra imaginació veure què podeu fer amb aquest senzill senzill a la mà. Aquí teniu algunes idees per començar:

  • Utilitzeu el comandament a distància IR d’un dels dispositius que teniu a casa (TV, equip de música, etc.) i proveu d’utilitzar-lo al vostre projecte Arduino
  • Proveu d’encendre tots els LED alhora alhora prement una tecla i després apagueu-los amb una altra tecla
  • Feu servir el botó amunt / avall del comandament a distància per encendre / apagar els LED un a un fins que s’encenguin / apaguin tots
  • Creeu un semàfor amb LEDs i controleu-lo amb el comandament a distància
  • Si teniu a mà un petit motor de corrent continu, proveu d’engegar / aturar o canviar el seu sentit de gir mitjançant el comandament a distància IR
  • Podeu utilitzar el comandament a distància del televisor per controlar el robot o activar / desactivar alguns sensors / actuadors que hi ha

Aviseu-me sobre els comentaris, què faríeu (o que ja heu fet) amb el comandament a distància IR.

Recomanat: