Mikä on IR-vastaanotin? Asennamme ylimääräisen IR-vastaanottimen satelliittivastaanottimeen. IR-vastaanottimen kytkentäkaavio

kaavio "Young Technician" -lehdestä.

Mielenkiintoinen suunta radioelektroniikassa, joka on täydentänyt tätä elektroniikkaa uusilla "näkymättömän" valon (infrapunavalon) eduilla. Joten ehdotan yksinkertaisen (esimerkiksi) vastaanottimen ja lähettimen piiriä, joka perustuu infrapunasäteisiin. Perus: operaatiovahvistin k140ud7 (minulla on ud708 täällä), lähettävät ja vastaanottavat IR-valodiodit, ULF (k548un1a (b,c - indeksit) - kahdelle kanavalle) (vaikka vahvistimen toinen kanava "käynnistetään" enintään sinä päätät - lähetinpiiri on suunniteltu yhdelle kanavalle, eli mono). Laitteen virtalähde: Suosittelen yleensä kunnollisella virranvakauksella (muuten "dandy"-adapteri ärsyttää "verkon" taustaa). Menetelmä: vastaanotin vahvistaa lähettimen amplitudimoduloitua signaalia 1000 kertaa.

Kuinka laite toimii. Suosittelen katsomaan lyhyen videon, jossa testataan IR-kaukosäädintä "korvalla". Voit nopeasti tarkistaa toiminnan ja signaalin voimakkuuden äänen avulla.

IR-vastaanotin ja IR-lähetinpiiri

Kondensaattorien C1 ja C2 tulee olla kokoamisen yhteydessä mahdollisimman lähellä vahvistinta! Voit liittää ulostuloon korkeaimpedanssiset kuulokkeet (matalan impedanssin kuulokkeet vaativat erillisen ULF:n). Photodiode FD7 (minulla on FD263: "tabletti" tarkennuslinssillä); 0,125 W vastukset: R1 ja R4 asettavat signaalin vahvistuskertoimen 1000 kertaa. Vastaanotin asetetaan yksinkertaisesti: valodiodi suunnataan IR-säteilyn lähteeseen, esimerkiksi 220V-50Hz lamppuun: hehkulangasta tulee taajuus 50Hz tai kaukosäätimellä televisiosta (video jne.) Vastaanottimen herkkyys on korkea: se vastaanottaa normaalisti seinistä heijastuvia signaaleja.

Lähettimessä on AL107a IR-LEDit: mikä tahansa käy. R2 2 kOhm, C1 1000μFx25V, C2 200μFx25V, myös mikä tahansa muuntaja. Vaikka on täysin mahdollista tehdä ilman muuntajaa - syötä vahvistettu äänisignaali kondensaattoriin C2.

Laitekaavio

IR-vastaanotinpiiri ULF:lla

Äskettäin kokosin pakosta IR-vastaanottimen IR-kaukosäätimien (televisioiden ja DVD-levyjen) testaamista varten. Piirin viimeistelyn jälkeen asensin mono-ULF TDA7056:n. Tällä vahvistimella on hyvät vahvistusominaisuudet noin 42 dB; toimii jännitealueella 3V - 18V, mikä mahdollisti IR-vastaanottimen toiminnan jopa 3V jännitteellä; TDA-vahvistusalue 20 Hz - 20 kHz (UD708 läpäisee jopa 800 kHz) on täysin riittävä käytettäväksi vastaanottimen äänisäesteenä; on oikosulkusuojaus kaikissa "jaloissa"; suoja "ylikuumenemista" vastaan; heikko itsehäiriökerroin. Kaiken kaikkiaan pidin tästä kompaktista ja luotettavasta ULF:stä (hintamme on 90 ruplaa).
Siitä on yksityiskohtainen kuvaus. Kuvassa 1 on esimerkki vahvistimen käytöstä.


Valokuva TDA7056


Kuva 1. Vahvistinpiiri TDA7056:lla

Tuloksena oli IR-vastaanotin, kuva 2, joka toimii jännitealueella 3V - 12V. Suosittelen akkujen tai ladattavien paristojen käyttöä vastaanottimen virransyöttöön. Virtalähdettä käytettäessä tarvitaan stabiloitu lähde, muuten kuuluu 50Hz verkon tausta, joka vahvistaa UD708:aa. Jos laite sijaitsee lähellä verkkojännitelähdettä tai radiosäteilyä, saattaa esiintyä häiriöitä. Häiriöiden vähentämiseksi piiriin on sisällytettävä kondensaattori C5. TDA7056 on suunniteltu 16 ohmin lähtökaiuttimelle, valitettavasti minulla ei ole sellaista. Jouduin käyttämään 4 ohmin 3 watin kaiutinta, joka oli kytketty yhden watin 50 ohmin vastuksen kautta. Liian alhainen kaiutinkelan vastus aiheuttaa ylimääräistä tehoa ja ylikuumenee vahvistimen. Yleisesti ottaen lisävastuksen vuoksi ULF ei kuumene, mutta tarjoaa melko hyväksyttävän vahvistuksen.

IR-kaukosäätimen komentovastaanotin kodinkoneiden ohjaamiseen voidaan tehdä helposti käyttämällä CD4017 desimaalilaskuria, NE555 ajastinta ja TSOP1738 infrapunavastaanotinta.

Tämän IR-vastaanotinpiirin avulla voit helposti ohjata kodinkoneitasi television kaukosäätimellä, DVD-soittimella tai artikkelin lopussa kuvatulla kaukosäädinpiirillä.

IR-vastaanotinpiiri kaukosäätimelle

TSOP1738 IR-vastaanottimen nastoja 1 ja 2 käytetään sen virtalähteenä. Vastus R1 ja kondensaattori C1 on suunniteltu vakaaseen toimintaan ja erilaisten kohinoiden vaimentamiseen virtalähdepiirissä.

Kun IR-säteet taajuudella 38 kHz putoavat TSOP1738 IR-vastaanottimeen, sen lähdössä 3 näkyy matala jännitetaso, ja kun infrapunasäteet katoavat, korkea taso ilmaantuu jälleen. Tätä negatiivista pulssia vahvistaa transistori Q1, joka välittää vahvistetun taajuuden signaalin desimaalilaskurin CD4017 sisäänmenoon. Vastanastat 16 ja 8 on tarkoitettu syöttämään sitä. Nasta 13 on kytketty maahan, mikä mahdollistaa sen toiminnan.

Q2:n lähtö (nasta 4) on kytketty nollausnastaan ​​(nasta 15), jotta CD4017 toimii bistabiilissa multivibraattoritilassa. Ensimmäisen pulssin aikana Q0:ssa näkyy log1, toinen kellosignaali saa log1:n näkymään Q1:ssä (Q0 menee matalaksi) ja kolmannella signaalilla se lähettää taas log1:n Q0:lle (Q2 on kytketty MR:ään, joten kolmas kellosignaali nollautuu tiski).

Oletetaan, että laskuri on nollattu (Q0 on korkea ja loput matalat). Kun painat kaukosäätimen painiketta, kellosignaali vaikuttaa laskuriin, mikä johtaa korkeaan tasoon Q1:ssä. Siten LED D1 syttyy, transistori Q2 kytkeytyy päälle ja rele aktivoituu.

Kun kaukosäätimen painiketta painetaan uudelleen, nastassa Q0 näkyy log 1, rele sammuu ja LED D2 syttyy. LED D1 ilmaisee, kun laite on päällä, ja LED D2 ilmaisee, kun laite on pois päältä.

Voit käyttää television kaukosäädintä ohjaukseen tai koota erillisen kaukosäätimen alla olevan kaavion mukaisesti.

  • Tulojännite: 2,7 ... 5,5 V
  • Virrankulutus: 0,65 ... 1,05 mA (Vcc = 5 V) nimellisesti 0,9 mA
  • Kantoaaltotaajuus: 38 kHz
  • Valon aallonpituus: 850 ... 1050 nm (suodattimen läpäisee yli 80 %)
  • Herkkyys: 0,17… 30000 mW/m2 (valovirtatehoon)
  • Vastaanottoetäisyys: jopa 45 m
  • Käyttölämpötila: -25 … 85 °C
  • Suuntakulma: ±45°

Kaikki "Trema" -linjan moduulit on valmistettu samassa muodossa

Yhteys:

Moduuli liitetään mihin tahansa arduinon digitaaliseen nastaan. Sarja sisältää kaapelin nopeaa ja helppoa liittämistä varten Trema Shieldiin.

Moduuli on kätevä liittää kolmella tavalla tilanteesta riippuen:

Menetelmä - 1: Käyttämällä langallista kaapelia ja Piranha UNO:ta


Kirjasto käyttää toista laitteistoajastinta,

ÄLÄ TULO PWM-SIGNAALIT 3 TAI 11 LÄHTÖÖN!

Lue lisää kirjaston asentamisesta...

Lisätietoja moduulin kanssa työskentelystä:

Paketit: Lähes kaikki kaukosäätimet eivät lähetä vain tietopakettia (joka kertoo laitteen tyypin ja painetun painikkeen koodin), vaan myös toistaa paketteja, jotka ilmoittavat laitteelle, että painiketta pidetään painettuna. Siten vastaanottava laite voi reagoida painikkeen painallukseen kerran tai koko sen pidennyksen ajan.

Esimerkiksi: pitämällä painettuna painiketta, jossa on TV-kanavanumero, televisio vaihtaa kyseiselle kanavalle vain kerran. Kun pidät äänenvoimakkuuden lisäyspainiketta painettuna, televisio lisää sitä koko sen ajan, kun pidät painiketta painettuna.

Tietopakettien määrä Useimmissa kaukosäätimissä on yksi, mutta jotkin laitteet, kuten ilmastointilaitteet, käyttävät 2, 3 tai useampia tietopaketteja.

Paketinsisältö: Tietopaketti sisältää tiedot valmistajan koodista, laitetyypistä, painetun painikkeen koodista jne. Toistopaketit voivat olla osittain tai kokonaan yhteneväiset informaatiopaketin kanssa, kopioida sen bittejä käänteisesti tai olla kuljettamatta mitään informaatiota, edustaen useiden identtisten bittien sarjaa jokaiselle toistuvalle paketille.

Taukojen kesto pakettien välillä: ei yleensä ylitä 200 ms.

Tiedonsiirtoprotokollat: määrittää seuraavat perusparametrit:

  • kantoaallon taajuus;
  • tiedon koodausmenetelmä, lähetettyjen bittien pulssien ja taukojen kesto;
  • tietopakettien määrä:
  • tietopaketin ja toistopakettien koostumus;
  • pakettien välisten taukojen kesto;
  • Käynnistys-, Stop- ja Toggle-signaalien läsnäolo ja muoto;

Kantoaallon taajuus: Useimmissa kaukosäätimissä se on 38 kHz; tälle taajuudelle Trema IR -vastaanotin on viritetty.

Tietojen koodaus: Tämä on databittien lähettämisen periaate. Korostetaan kolme päätyyppiä koodausta, joissa jokainen bitti lähetetään yhden pulssin ja yhden tauon järjestyksessä:

  • pulssin pituuskoodaus - ensin lähetetään pulssi, jonka pituus riippuu lähetettävän bitin arvosta, sitten seuraa tauko, jonka pituus ei riipu bitin arvosta. Esimerkiksi: SIRC-protokollassa (Sony) pulssin pituus bitille “1” = 1200 µs ja bitille “0” = 600 µs, taukojen pituus on aina 600 µs. Tällä tavalla voit erottaa "1" ja "0" pulssin pituuden perusteella.
  • pitkien taukojen koodaus - ensin lähetetään pulssi, jonka pituus ei riipu lähetettävän bitin arvosta, sitten seuraa tauko, jonka pituus riippuu bitin arvosta. Esimerkiksi: NEC-protokollassa tauon pituus bitille “1” = 1687,5 µs ja bitille “0” = 562,5 µs, pulssin pituus on aina 562,5 µs. Voit siis erottaa "1":n "0":sta tauon pituuden perusteella.
  • kaksivaiheinen koodaus - pulssin pituus on yhtä suuri kuin tauon pituus, ja niiden järjestys määrittää lähetettävän bitin tyypin. Esimerkiksi: RS5-protokollassa (Philips) bitille "1" pulssi seuraa taukoa ja bitille "0" tauko seuraa pulssia. NRC-protokollalla (Nokia) päinvastoin bitille ”1” tauko seuraa pulssia ja bitille ”0” pulssi seuraa taukoa.

Käynnistys-, pysäytys- ja vaihtosignaalit: Nimensä mukaan ne sijaitsevat pakkauksen alussa, lopussa tai keskellä.

Lopettaa: Pitkää taukoa koodattaessa on mahdotonta määrittää paketin viimeisen bitin arvoa, koska pakettia seuraa pitkä tauko ja viimeinen bitti määritellään aina "1", joten Stop-signaali lisätään paketille, joka on pulssi, joka ei kuljeta mitään tietoa.

Alkaa: Kaksivaiheisessa koodauksessa tarvitaan Start-signaali, koska paketin lähettäminen tauosta on mahdotonta.

Vaihda: Tämä on vähän, joka muuttaa arvoaan jokaisen uuden painikkeen painalluksen yhteydessä, käytetty RS5, RS5X, RS6 (Philips) protokollissa, joissa toistetut paketit toistavat täysin tietopaketin tiedot. Tällä tavalla vastaanottava laite voi erottaa painikkeen painamisen ja uudelleen painamisen välillä.

Esimerkkejä:

IR-kaukosäätimestä vastaanotettujen tietojen saatavuus tarkistetaan check()-toiminnolla. Tämä toiminto reagoi infrapunakaukosäätimen painikkeiden painamiseen, mutta jos sitä kutsutaan todellisella parametrilla, se reagoi myös painikkeiden painamiseen.

Kun luemme tietoja mistä tahansa kaukosäätimestä, reagoimme vain painikkeen painalluksiin:

#sisältää // Liitä kirjasto toimimaan IR-vastaanottimen kanssa iarduino_IR_RX IR(7); // Ilmoita IR-objekti, joka ilmaisee nastan, johon infrapunavastaanotin on kytketty void setup())( Serial.begin(9600); // Aloita tiedonsiirto sarjaportin monitoriin nopeudella 9600 bps IR.begin (); / / Aloita työskentely IR-vastaanottimen kanssa .data, HEX); / / Anna painetun painikkeen koodi Serial.println(IR.length); // Anna koodin bittien määrä ) )

Tässä luonnoksessa check()-funktiota kutsutaan ilman argumentteja, mikä tarkoittaa, että se vastaa vain infrapunakaukosäätimen painikkeiden painalluksiin.

Lukeessamme tietoja mistä tahansa kaukosäätimestä vastaamme painikkeiden painamiseen:

#sisältää // Liitä kirjasto toimimaan IR-vastaanottimen kanssa iarduino_IR_RX IR(6); // Ilmoita IR-objekti, joka ilmaisee nastan, johon infrapunavastaanotin on kytketty void setup())( Serial.begin(9600); // Aloita tiedonsiirto sarjaportin monitoriin nopeudella 9600 bps IR.begin (); / / Aloita työskentely IR-vastaanottimen kanssa (IR.data, HEX); / / Anna painetun painikkeen koodi Serial.println(IR.length); // Anna koodin bittien määrä ) )

Tässä luonnoksessa check()-funktiota kutsutaan true-parametrilla, mikä tarkoittaa, että se reagoi sekä infrapunakaukosäätimen painikkeiden painamiseen ja pitämiseen.

Tietojen lukeminen mistä tahansa kaukosäätimestä ja ilmoittaa kuinka reagoida mihin painikkeisiin.

#sisältää // Liitä kirjasto toimimaan IR-vastaanottimen kanssa iarduino_IR_RX IR(6); // Ilmoita IR-objekti, joka ilmaisee nastan, johon infrapunavastaanotin on kytketty // bool flgKey1 = false; uint32_t codKey1 = 0xFF30CF; // Määritä napsautuslippu ja painikkeen 1 koodi bool flgKey2 = false; uint32_t codKey2 = 0xFF18E7; // Määritä napsautuslippu ja painikkeen koodi 2 bool flgKey3 = false; uint32_t codKey3 = 0xFF7A85; // Määritä napsautuslippu ja painikkeen koodi 3 bool flgKey = false; uint32_t tmrKey = 0; // Määritä lippu, joka sallii tietojen lähettämisen näyttöön, ja viimeisimmän painikkeen painalluksen aika. // void setup())( // Serial.begin(9600); // Aloita tiedonsiirto sarjaportin monitoriin nopeudella 9600 bps IR.begin(); // Aloita työskentely IR-vastaanottimen kanssa) / / / / void loop())( // if(IR.check(true))( // Jos puskuri sisältää kaukosäätimestä saatua dataa (painiketta pidetään painettuna), niin... if(millis() -200 > tmrKey)( / / Jos viimeisestä vastaanotetusta komennosta on kulunut yli 200 ms, niin flgKey1=false; // Katsomme, että painiketta 1 ei pidetä painettuna flgKey2=false; // Katsomme, että painiketta 2 ei paineta flgKey3=false; // Katsomme, että painiketta 3 ei pidetä painettuna) tmrKey = millis(); flgKey=true; // Tallenna kaukosäätimen viimeisen reaktion aika ja salli tietojen ulostulo if(IR.data==codKey1 )( if(flgKey1)(flgKey=false;) flgKey1=true; )else(flgKey1= false;) // Kiellemme painikkeen 1 tietojen tulostamisen, kun sitä pidetään painettuna if(IR.data==codKey2)( if (flgKey2)(flgKey=false;) flgKey2=true; )else(flgKey2=false;) // Kiellemme datapainikkeen 2 ulostulon pitämällä sitä painettuna if(IR.data==codKey3)( if(flgKey3)(flgKey =false;) flgKey3=tosi; )else(flgKey3=false;) // Estää painikkeen 3 datan ulostulon, kun sitä pidetään painettuna if(flgKey)( // Jos tiedonanto on sallittu, niin... Serial.println(IR.data, HEX); // Tulosta painettujen painikepainikkeiden koodi Serial.println(IR.length); // Anna koodin bittien määrä ) // ) // ) //

Tässä luonnoksessa check()-funktiota kutsutaan true-parametrilla, mikä tarkoittaa, että se reagoi sekä infrapunakaukosäätimen painikkeiden painamiseen että pitämiseen. Mutta tiedot lähetetään sarjaportin monitoriin vain, kun flgKey-lippu on asetettu, mikä nollataan, kun painikkeita, joiden koodit ovat 0xFF30CF, 0xFF18E7 ja 0xFF7A85, pidetään alhaalla. Osoittautuu, että luonnos reagoi 3 painikkeeseen vain, kun sitä painetaan, ja muihin painikkeisiin sekä painettuna että painettuna.

Tietojen lukeminen vain niiltä kaukosäätimiltä, ​​jotka toimivat määritellyn protokollan mukaisesti:

#sisältää // Liitä kirjasto toimimaan IR-vastaanottimen kanssa iarduino_IR_RX IR(5); // Ilmoita IR-objekti, joka ilmaisee nastan, johon infrapunavastaanotin on kytketty void setup())( Serial.begin(9600); // Aloita tiedonsiirto sarjaportin monitoriin nopeudella 9600 bps IR.begin (); / / Aloita työskentely IR-vastaanottimen kanssa IR.protocol("Ae`` `|LJ` @@@@BPBp"); // Määritä tiedonsiirtoprotokolla, johon vastataan ) void loop())( jos (IR.check( true))( // Jos puskuri sisältää kaukosäätimestä saatua dataa (painiketta pidetään painettuna) Serial.println(IR.data, HEX); // Tulosta painetun painikkeen koodi Serial. println(IR.length); // Anna koodin bittien määrä) )

Tässä luonnoksessa setup()-koodissa on ilmoitettu tiedonsiirtoprotokolla, joka harvoin osuu yhteen eri valmistajien infrapunakaukosäätimien välillä. Tämä tarkoittaa, että loop()-koodin check()-funktio vastaa vain niille infrapunakaukosäätimille, jotka tukevat määritettyä protokollaa.

Tiedonsiirtoprotokollan ja koodaustyypin hankkiminen:

#sisältää // Liitä kirjasto toimimaan IR-vastaanottimen kanssa iarduino_IR_RX IR(4); // Ilmoita IR-objekti, joka ilmaisee nastan, johon infrapunavastaanotin on kytketty void setup())( Serial.begin(9600); // Aloita tiedonsiirto sarjaportin monitoriin nopeudella 9600 bps IR.begin (); / / Aloita työskentely IR-vastaanottimen kanssa .protocol()); / / Tulosta tiedonsiirtoprotokollan merkkijono ) )

Tässä esimerkissä kuvataan tiedonsiirtoprotokollan hankkiminen infrapunakaukosäätimiä varten. Artikkelissa kuvataan, kuinka painikekoodit lähetetään määritettyä protokollaa käyttäen.

Tällä tavalla voit luoda infrapunalähettimen luonnoksen simuloimaan eri IR-kaukosäätimien signaaleja. Tämän seurauksena laitteet reagoivat infrapunalähettimeen ikään kuin ne vastaisivat omaan infrapunakaukosäätimeensä.

Kuvaus kirjaston päätehtävistä:

Kirjaston yhdistäminen:

#sisältää // Yhdistä kirjasto toimimaan infrapunavastaanottimen kanssa. iarduino_IR_RX IR(PIN_NO[, INVERT]); // Ilmoita IR-objekti, joka ilmoittaa pin-numeron, johon infrapunavastaanotin on kytketty. // Toinen bool-tyyppinen parametri voi osoittaa, että vastaanottimen data on käänteinen.

Funktio begin();

  • Tarkoitus: työn alustaminen IR-vastaanottimen kanssa
  • Syntaksi: begin();
  • Vaihtoehdot: Ei.
  • Palautusarvot: Ei mitään.
  • Huomautus: Kutsutaan kerran asetuskoodissa.
  • Esimerkki:
IR.begin(); // Aloita työskentely IR-vastaanottimen kanssa

Function check();

  • Tarkoitus: Tarkistaa kaukosäätimestä vastaanotettujen tietojen saatavuuden.
  • Syntaksi: check([ HOLD ]);
  • Vaihtoehdot:
    • HOLD - valinnainen parametri, tyyppi bool - osoittaa, että on tarpeen reagoida kaukosäätimen painikkeiden painamiseen.
  • Palautusarvot: bool - hyväksyttiinkö kaukosäätimen tiedot vai ei.
  • Huomautus: Jos toimintoa kutsutaan ilman parametria tai se on epätosi, toiminto reagoi vain kaukosäätimen signaaleihin, kun sen painikkeita painetaan, ja jos määrität tosi, toiminto reagoi sekä painamiseen että pitämällä sitä alhaalla. kaukosäätimen painikkeita.
  • Esimerkki:
if(IR.check())( ... ;) // Jos tietoja vastaanotetaan kaukosäätimestä, kun painat sen painiketta if(IR.check(true))( ... ;) // Jos data on vastaanotettu kaukosäätimestä, kun painiketta painetaan

Funktioprotokolla();

  • Tarkoitus: Tiedonsiirtoprotokollan vastaanotto, asetus tai nollaus.
  • Syntaksi: protokolla([ PARAMETRI ]);
  • Protokollan saaminen: Jos funktiota kutsutaan ilman parametria, se palauttaa 25 merkin pituisen merkkijonon + rivin loppumerkin. Tämän rivin bitit sisältävät tietoa sen kaukosäätimen tiedonsiirtoprotokollan tyypistä, jonka tiedot viimeksi vastaanotettiin. Tätä riviä voidaan käyttää IR-lähettimen tai IR-vastaanottimen protokollan asettamiseen (katso alla).
  • Protokollan asettaminen: Jos funktiota kutsutaan parametrilla, joka on 25 protokollamerkin merkkijono + rivin loppumerkki, tämän jälkeen chek()-funktio vastaa vain niille kaukosäätimille, jotka noudattavat määritettyjä tietoja. siirtoprotokolla.
  • Protokollan nollaus: Jos toimintoa kutsutaan IR_CLEAN-parametrilla, chek()-funktio vastaa jälleen minkä tahansa kaukosäätimen signaaleihin.
  • Protokollaparametrien vastaanotto: Jos funktiota kutsutaan int-parametrilla 0-17, se ei palauta protokollamerkkijonoa, vaan int-arvon jollakin sen konsolin tiedonsiirtoprotokollan parametreista, jonka tiedot viimeksi vastaanotettiin. :
    • 0 - koodaustyyppi:
      • IR_UNDEFINED - koodaustyyppi on määrittelemätön;
      • IR_PAUSE_LENGTH - pitkä taukokoodaus;
      • IR_PULSE_LENGTH - koodaus pitkällä (leveys) pulssilla (PWM);
      • IR_BIPHASIC - kaksivaiheinen koodaus;
      • IR_BIPHASIC_INV - kaksivaiheinen koodaus käänteisillä biteillä;
      • IR_NRC - toistuvat paketit ovat identtisiä, mutta ensimmäinen ja viimeinen paketti ovat erityisiä;
      • IR_RS5 - PHILIPS-koodaus vaihtobitillä;
      • IR_RS5X - PHILIPS-koodaus vaihtobitillä;
      • IR_RS6 - PHILIPS-koodaus vaihtobitillä.
    • 1 - tiedonsiirron kantoaaltotaajuus (kHz);
    • 2 - ilmoitettu informaatiobittien lukumäärä 1 paketissa;
    • 3 - ilmoitettu informaatiobittien lukumäärä toistopaketissa;
    • 4 - tauon kesto pakettien välillä (ms);
    • 5 - pulssin kesto aloitusbitissä (μs);
    • 6 - tauon kesto aloitusbitissä (μs);
    • 7 - pulssin kesto pysäytysbitteinä (μs);
    • 8 - tauon kesto pysäytysbitissä (μs);
    • 9 - pulssin kesto uudelleenkäynnistys- tai vaihtobitissä (μs);
    • 10 - tauon kesto uudelleenkäynnistys- tai vaihtobitissä (μs);
    • 11 - uudelleenkäynnistys- tai vaihtobitin sijainti paketissa (bitin nro);
    • 12 - pulssin maksimikesto informaatiobitteinä (μs);
    • 13 - pulssin minimikesto informaatiobitteinä (μs);
    • 14 - tauon enimmäiskesto informaatiobitteinä (μs);
    • 15 - tauon vähimmäiskesto informaatiobitteinä (μs);
    • 16 - alkubitin läsnäololippu (tosi/epätosi);
    • 17 - stop bitin läsnäololippu (tosi/epätosi);
    • 18 - lippu uudelleenkäynnistys- tai vaihtobitin olemassaololle (tosi/false);
    • 19 - toista pakettityyppi (0-ei mitään, 1-käänteisbitteillä, 2-identtinen informaation kanssa, 3-ainutlaatuinen);
  • Palautusarvot: Riippuu parametrin olemassaolosta ja tyypistä.
  • Huomautus: Jos protokolla on asetettu aiemmin, protokollan tai protokollaparametrien noutaminen palauttaa aiemmin asetetun protokollan arvot, ei sen konsolin tiedonsiirtoprotokollaa, jonka tiedot viimeksi vastaanotettiin.
  • Esimerkki:
IR.protocol("AeQQV~zK]Kp^KJp[@@@@@@@Bp"); // Aseta protokolla. Nyt vastaanotin vastaanottaa tietoja vain ELENBERG TV:n kaukosäätimistä. IR.protocol(IR_CLEAN); // Palauta aiemmin asennettu protokolla. Nyt vastaanotin reagoi jälleen mihin tahansa kaukosäätimeen. if(IR.check())( Serial.println(IR.protocol()); ) // Hanki protokolla. Heti kun vastaanotin vastaanottaa tiedot, näytössä näkyy 25 protokollamerkkijono. if(IR.check())( Serial.println(IR.protokol(12)); ) // Hanki yksi protokollaparametreista. Heti kun vastaanotin vastaanottaa tiedot, monitori näyttää informaatiobitin enimmäispulssin keston mikrosekunteina.

Datamuuttuja

  • Arvo: Palauttaa kaukosäätimestä vastaanotetun painikekoodin;
  • Tietotyyppi: uint32_t.
if(IR.check())( Serial.println(IR.data); ) // Tulosta painetun painikkeen koodi, jos se hyväksytään

pituus muuttuja

  • Arvo: Palauttaa painikekoodin koon bitteinä;
  • Tietotyyppi: uint8_t.
if(IR.check())( Serial.println(IR.length); ) // Tulosta painetun painikkeen koodin koko, jos hyväksytään

key_press-muuttuja

  • Merkitys: Palauttaa lipun, joka osoittaa, että kaukosäätimen painiketta painetaan sen sijaan, että sitä pidetään painettuna;
  • Tietotyyppi: bool.
if(IR.check(true))( if(IR.key_press)(Serial.println("PRESS");) // Teksti tulostetaan 1 kerran, kun painiketta painetaan else (Serial.println("HOLD " );) // Teksti näkyy jatkuvasti, kun painiketta pidetään painettuna)

Sovellus:

  • robottien ohjaus, liikkuvat, lentävät ja kelluvat mallit, kotitalous- ja erikoislaitteet.
  • valaistuksen, lämmityksen, ilmanvaihdon, kastelun jne. päälle/pois.
  • ovien avaaminen/sulkeminen, kaihtimet, kattoikkunat, tuuletusaukot jne.

IR-vastaanotin on vakiolaite, joka liitetään COM (RS-232) -porttiin ja jota käytetään robotin etäohjaukseen.

Yksi mahdollisista IR-vastaanotinpiireistä. Infrapunavastaanottimeksi sopii mikä tahansa kodin laitteissa (televisioissa) käytettävä 5 voltin infrapunavastaanotin. Esimerkiksi: TSOP1836, IS1U60L, GP1U52X, SFH506-36 tai kotimainen TK1833. Jännitteenvakain KREN5A on välttämätön IR-vastaanottimen syöttämiseksi 5 V jännitteellä, koska 12 volttia syötetään COM-portin 7. nastasta. Vastus voidaan valita alueelta 3-5 kOhm, kondensaattori 4,7-10 μF. Mikä tahansa pienitehoinen diodi.

Yllä olevassa kaaviossa lähtösignaali syötetään COM-portin (DCD) yhdelle nastalle. Tätä kosketinta ei tavallinen hiiri käytä COM-porttiin, joten jos sinulla ei ole tarpeeksi vapaata COM-porttia, tätä piiriä voidaan käyttää rinnakkain hiiren (mutta ei modeemin) kanssa! Lähtösignaali voidaan lähettää DCD:n lisäksi myös muihin nastoihin, kuten CTS tai DSR. Kaikki nämä parametrit voidaan asettaa ohjelmassa, joka toimii IR-vastaanottimessa. Ohjelmavaihtoehtoja on useita, yleisin on WinLIRC. Voin myös suositella Girder-ohjelman käyttöä.

Piirin pääelementtien pinout ja ulkonäkö

Vasemmalta oikealle - kahden tyyppisiä 5 voltin IR-vastaanottimia ja KREN5A jännitteen stabilointipiiri.

COM-portin liitäntä

Pinout ja kuvaus COM-portin koskettimista (25 pin).

IR-vastaanottimella on tärkeä rooli jokapäiväisessä elämässämme. Tämän mikropiirin avulla pystymme ohjaamaan nykyaikaisia ​​kodinkoneita, televisiota, stereojärjestelmää, autoradiota ja ilmastointilaitetta. Tämän avulla voimme tehdä tämän, kauko-ohjain (RC), katsotaanpa tarkemmin sen toimintaa, piiriä, tarkoitusta ja testausta. Artikkelissa kuinka tarkistaa IR-vastaanotin itse.

Mikä on IR-vastaanotin ja miten se toimii?

Tämä on integroitu piiri, sen suora ja päätehtävä on vastaanottaa ja käsitellä infrapunasignaalia, jota kaukosäädin lähettää. Tätä signaalia käytetään laitteen ohjaamiseen.

Tämä mikropiiri perustuu pin-valodiodiin, erikoiselementtiin, jossa on p-n-liitos ja niiden välissä i-alue, transistorin kannan analogi, kuten sandwichissä, joten tässä on lyhenne pin, joka on ainutlaatuinen elementti omalla tavalla.

Se on kytketty päälle päinvastoin eikä päästä sähkövirtaa läpi. IR-signaali tulee i-alueelle ja johtaa virtaa muuttamalla sen jännitteeksi.


Seuraavat vaiheet ovat integroiva suodatin, amplituditunnistin ja maaliviivalla lähtötransistorit odottavat niitä.

Uutta IR-vastaanotinta ei yleensä kannata ostaa kaupasta, koska se voidaan helposti irrottaa erilaisilta elektroniikkalevyiltä. Jos kokoat laitetta kaukosäätimen tarkistamiseen romumateriaalista tietämättä laitteen tarkkaa merkintää, voit määrittää pinoutin itse.


Tarvitsemme yleismittarin, virtalähteen tai useita akkuja, liitäntäjohdot, asennus voidaan tehdä ripustamalla.

Siinä on kolme lähtöä, yksi on GND, plus 5 volttia syötetään toiseen ja ulostulosignaali tulee ulos kolmannesta. Kytkemme virran ensimmäiseen ja toiseen jalkaan ja poistamme jännitteen kolmannesta.


Se odottaa signaalia kaukosäätimestä, ja yleismittarissa näkyy viisi volttia. Alamme vaihtaa kanavaa tai painaa muita painikkeita osoittamalla kaukosäätimellä häntä.

Jos se toimii, jännite laskee noin 0,5-1 volttia. Jos kaikki tapahtuu kuten tässä on kirjoitettu, laite toimii, muuten elementti on viallinen.

Kuinka määrittää infrapunavastaanottimen pinout

Esimerkiksi otin minulle täysin tuntemattoman mikropiirin, joka makasi laatikossa elementeillä, "miinus" määritettiin elementin takana olevalla pisteellä, "plus" määritettiin kokeellisesti vastuksen kautta. En riskeerannut mitään, koska hän oli alun perin työntekijä, joten toivoa ei ollut.

Jos haluat määrittää IR-vastaanottimen pinoutin, jos se on juotettu levyyn, katso sitä, siinä voi olla nastamerkintöjä. Jos siellä ei ole kirjoitettu mitään, tarkista itse elementti, etsi sen nimi ja etsi sitten ominaisuuksia ja tietoja Internetistä, tämä on erittäin pätevä tapa tehdä asioita. Ohjeiden mukaisesti voit tarkistaa infrapunavastaanottimen itse.

kaavio "Young Technician" -lehdestä.

Mielenkiintoinen suunta radioelektroniikassa, joka on täydentänyt tätä elektroniikkaa uusilla "näkymättömän" valon (infrapunavalon) eduilla. Joten ehdotan yksinkertaisen (esimerkiksi) vastaanottimen ja lähettimen piiriä, joka perustuu infrapunasäteisiin. Perus: operaatiovahvistin k140ud7 (minulla on ud708 täällä), lähettävät ja vastaanottavat IR-valodiodit, ULF (k548un1a (b,c - indeksit) - kahdelle kanavalle) (vaikka vahvistimen toinen kanava "käynnistetään" enintään sinä päätät - lähetinpiiri on suunniteltu yhdelle kanavalle, eli mono). Laitteen virtalähde: Suosittelen yleensä kunnollisella virranvakauksella (muuten "dandy"-adapteri ärsyttää "verkon" taustaa). Menetelmä: vastaanotin vahvistaa lähettimen amplitudimoduloitua signaalia 1000 kertaa.

Kuinka laite toimii. Suosittelen katsomaan lyhyen videon, jossa testataan IR-kaukosäädintä "korvalla". Voit nopeasti tarkistaa toiminnan ja signaalin voimakkuuden äänen avulla.

IR-vastaanotin ja IR-lähetinpiiri

Kondensaattorien C1 ja C2 tulee olla kokoamisen yhteydessä mahdollisimman lähellä vahvistinta! Voit liittää ulostuloon korkeaimpedanssiset kuulokkeet (matalan impedanssin kuulokkeet vaativat erillisen ULF:n). Photodiode FD7 (minulla on FD5.. jonkinlainen "tabletti" tarkennuslinssillä - en muista tarkkaa nimeä); 0,125 W vastukset: R1 ja R4 asettavat signaalin vahvistuskertoimen 1000 kertaa. Vastaanotin asetetaan yksinkertaisesti: valodiodi suunnataan IR-säteilyn lähteeseen, esimerkiksi 220V-50Hz lamppuun: hehkulangasta tulee taajuus 50Hz tai kaukosäätimellä televisiosta (video jne.) Vastaanottimen herkkyys on korkea: se vastaanottaa normaalisti seinistä heijastuvia signaaleja.

Lähettimessä on AL107a IR-LEDit: mikä tahansa käy. R2 2 kOhm, C1 1000μFx25V, C2 200μFx25V, myös mikä tahansa muuntaja. Vaikka on täysin mahdollista tehdä ilman muuntajaa - syötä vahvistettu äänisignaali kondensaattoriin C2.

Laitekaavio

Äskettäin kokosin pakosta IR-vastaanottimen IR-kaukosäätimien (televisioiden ja DVD-levyjen) testaamista varten. Piirin viimeistelyn jälkeen asensin mono-ULF TDA7056:n. Tällä vahvistimella on hyvät vahvistusominaisuudet noin 42 dB; toimii jännitealueella 3V - 18V, mikä mahdollisti IR-vastaanottimen toiminnan jopa 3V jännitteellä; TDA-vahvistusalue 20 Hz - 20 kHz (UD708 läpäisee jopa 800 kHz) on täysin riittävä käytettäväksi vastaanottimen äänisäesteenä; on oikosulkusuojaus kaikissa "jaloissa"; suoja "ylikuumenemista" vastaan; heikko itsehäiriökerroin. Kaiken kaikkiaan pidin tästä kompaktista ja luotettavasta ULF:stä (hintamme on 90 ruplaa).
Siellä on hänen kanssaan. Kuvassa 1 on esimerkki vahvistimen käytöstä.


Valokuva TDA7056



Kuva 1. Vahvistinpiiri TDA7056:lla

Tuloksena oli IR-vastaanotin, kuva 2, joka toimii jännitealueella 3V - 12V. Suosittelen akkujen tai ladattavien paristojen käyttöä vastaanottimen virransyöttöön. Virtalähdettä käytettäessä tarvitaan stabiloitu lähde, muuten kuuluu 50Hz verkon tausta, joka vahvistaa UD708:aa. Jos laite sijaitsee lähellä verkkojännitelähdettä tai radiosäteilyä, saattaa esiintyä häiriöitä. Häiriöiden vähentämiseksi piiriin on sisällytettävä kondensaattori C5. TDA7056 on suunniteltu 16 ohmin lähtökaiuttimelle, valitettavasti minulla ei ole sellaista. Jouduin käyttämään 4 ohmin 3 watin kaiutinta, joka oli kytketty yhden watin 50 ohmin vastuksen kautta. Liian alhainen kaiutinkelan vastus aiheuttaa ylimääräistä tehoa ja ylikuumenee vahvistimen. Yleisesti ottaen lisävastuksen vuoksi ULF ei kuumene, mutta tarjoaa melko hyväksyttävän vahvistuksen.



Kuva 2. IR-vastaanotinpiiri ULF:lla



Kuva IR-vastaanottimesta

Tällä oppitunnilla tarkastelemme IR-vastaanottimen yhdistämistä Arduinoon. Kerromme, mitä kirjastoa tulisi käyttää IR-vastaanottimelle, esittelemme luonnoksen infrapunavastaanottimen toiminnan testaamiseksi kaukosäätimestä ja analysoimme komentoja C++-kielellä ohjaussignaalin vastaanottamiseksi.

IR-vastaanotinlaite. Toimintaperiaate

Infrapunasäteilyvastaanottimia käytetään laajalti elektroniikkatekniikassa edullisen hinnan, yksinkertaisuuden ja helppokäyttöisyyden vuoksi. Näiden laitteiden avulla voit ohjata laitteita kaukosäätimellä, ja ne löytyvät lähes kaikista laitteista.

IR-vastaanottimen toimintaperiaate. Käsittelee kaukosäätimen signaalia

Arduinon IR-vastaanotin pystyy vastaanottamaan ja käsittelemään infrapunasignaalia tietyn keston ja taajuuden pulssien muodossa. Tyypillisesti IR-vastaanottimessa on kolme jalkaa ja se koostuu seuraavista elementeistä: PIN-valodiodi, vahvistin, kaistanpäästösuodatin, amplitudiilmaisin, integroiva suodatin ja lähtötransistori.

Infrapunasäteilyn vaikutuksen alaisena valodiodissa, joka on välillä s Ja n alueet loivat ylimääräisen puolijohdealueen ( i-alue), virta alkaa virrata. Signaali menee vahvistimeen ja sitten kaistanpäästösuodattimeen, joka suojaa vastaanotinta häiriöiltä. Häiriöt voivat aiheuttaa mikä tahansa kodinkone.

Kaistanpäästösuodatin on asetettu kiinteälle taajuudelle: 30; 33; 36; 38; 40 ja 56 kilohertsiä. Jotta Arduino IR -vastaanotin vastaanottaisi kaukosäätimen signaalin, kaukosäätimen on oltava samalla taajuudella kuin IR-vastaanottimen suodatin on asetettu. Suodattimen jälkeen signaali menee amplituditunnistimeen, joka integroi suodattimen ja lähtötransistorin.

Kuinka yhdistää infrapunavastaanotin Arduinoon

Infrapunavastaanottimien koteloissa on optinen suodatin, joka suojaa laitetta ulkoisilta sähkömagneettisilta kentiltä, ​​ja ne on valmistettu erityisestä muodosta kohdentamaan vastaanotetun säteilyn valodiodille. IR-vastaanottimen kytkemiseksi Arduino UNO:han käytetään kolmea jalkaa, jotka on kytketty portteihin - GND, 5V ja A0.

Tätä oppituntia varten tarvitsemme seuraavat tiedot:

  • Arduino Uno aluksella;
  • Leipä aluksella;
  • USB kaapeli;
  • IR-vastaanotin;
  • Kaukosäädin;
  • 1 LED;
  • 1 vastus 220 ohmia;
  • Johdot "kansio-kansio" ja "kansio-naaras".

IR-vastaanottimen kytkentäkaavio Arduinon analogiseen porttiin

Liitä infrapunavastaanotin kaavion mukaisesti ja LED-valot nastoihin 12 ja 13 ja lataa luonnos.

#sisältää // yhdistä IR-vastaanottimen kirjasto IRrecv irrecv(A0); // osoittavat nastan, johon infrapunavastaanotin on kytketty decode_results tulokset; void setup () // menettelyn asetukset ( irrecv.enableIRIn (); // alkaa vastaanottaa infrapunasignaalia pinMode(13, OUTPUT); // nasta 13 on lähtö pinMode(12, OUTPUT); // nasta 12 on lähtö pinMode(A0,TULO); // pin A0 on syöte (eng. "intput") Serial.begin(9600); // liitä porttimonitori) void loop () // proseduurisilmukka ( if (irrecv.decode (&tulokset)) // jos tiedot ovat saapuneet, suorita komennot(Serial .println(tulokset.arvo); // lähettää vastaanotetut tiedot porttiin // sytyttää ja sammuttaa LEDit vastaanotetun signaalin mukaan if (tulokset.arvo == 16754775) ( digitalWrite (13, HIGH); ) if (tulokset.arvo == 16769055) ( digitalWrite (13, LOW); ) if (tulokset.arvo == 16718055) ( digitalWrite (12) KORKEA); ) if (tulokset.arvo == 16724175) ( digitalWrite (12, LOW); ) irrecv.resume (); // vastaanottaa seuraavan signaalin IR-vastaanottimella } }

Selitykset koodille:

  1. IRremote.h-kirjasto sisältää joukon komentoja, ja sen avulla voit yksinkertaistaa luonnosta;
  2. Decode_results-käsky määrittää muuttujan nimen tulokset kaukosäätimestä vastaanotetuille signaaleille.

Mihin kiinnittää huomiota:

  1. Jotta voit hallita LED-valon sisällyttämistä, sinun on kytkettävä porttimonitori päälle ja selvitettävä, mitä signaalia tämä tai tuo kaukosäätimen painike lähettää;
  2. Saadut tiedot tulee syöttää luonnokseen. Vaihda luonnoksessa oleva kahdeksanumeroinen koodi kaksoisyhtäisyysmerkin jälkeen if (tulokset.arvo == 16769055) omaksi.

IR-vastaanotinlaite, toiminta ja testaus

Infrapunasäteilyn IR-vastaanottimet ovat yleistyneet televisiossa, kotitalouksissa, lääketieteellisissä laitteissa ja muissa laitteissa. Ne näkyvät lähes kaikissa elektronisissa laitteissa, niitä ohjataan kaukosäätimellä.


IR-vastaanottimen toiminta ja lohkokaavio

Tyypillisesti IR-vastaanottimen mikrokokoonpanossa on kolme tai useampia nastaa. Yksi on yleinen ja on kytketty virtalähteeseen miinus GND, toinen plussaa V s, ja kolmas on vastaanotetun signaalin lähtö Ulos.

Toisin kuin tavallinen IR-valodiodi, IR-vastaanotin pystyy paitsi vastaanottamaan, myös käsittelemään infrapunasignaalia kiinteän taajuuden ja tietyn keston pulssien muodossa. Tämä suojaa laitetta vääriltä hälytyksiltä, ​​taustasäteilyltä ja muiden kodinkoneiden IR-alueella lähettäviltä häiriöiltä. Fluoresoivat energiansäästölamput, joissa on elektroninen liitäntälaite, voivat aiheuttaa melko voimakkaita häiriöitä vastaanottimelle.

Tyypillisen IR-säteilyvastaanottimen mikrokokoonpano sisältää: PIN-valodiodin, säädettävän vahvistimen, kaistanpäästösuodattimen, amplituditunnistimen, integroivan suodattimen, kynnyslaitteen, lähtötransistorin

PIN-valodiodi on valodiodiperheestä, jossa n- ja p-alueiden väliin luodaan toinen oma puolijohteensa (i-alue) - tämä on olennaisesti kerros puhdasta puolijohdetta ilman epäpuhtauksia. Juuri tämä antaa PIN-diodille sen erityisominaisuudet. Normaalitilassa PIN-valodiodin läpi ei kulje virtaa, koska se on kytketty piiriin vastakkaiseen suuntaan. Kun elektroni-reikäpareja syntyy i-alueella ulkoisen IR-säteilyn vaikutuksesta, virta alkaa virrata diodin läpi. Joka sitten menee säädettävälle vahvistimelle.

Sitten vahvistimen signaali menee kaistanpäästösuodattimelle, joka suojaa IR-alueen häiriöiltä. Kaistanpäästösuodatin on asetettu tiukasti kiinteälle taajuudelle. Tyypillisesti käytetään suodattimia, jotka on asetettu taajuudelle 30; 33; 36; 36,7; 38; 40; 56 ja 455 kilohertsiä. Jotta IR-vastaanotin vastaanottaisi kaukosäätimen lähettämän signaalin, se on moduloitava samalla taajuudella, jolla suodatin on määritetty.

Suodattimen jälkeen signaali menee amplituditunnistimeen ja integroivaan suodattimeen. Jälkimmäinen on tarpeen lyhyiden yksittäisten signaalipurskeiden estämiseksi, jotka voivat ilmetä häiriöistä. Seuraavaksi signaali menee kynnyslaitteeseen ja lähtötransistoriin. Vakaata toimintaa varten vahvistimen vahvistusta säädetään automaattisella vahvistuksen säätöjärjestelmällä (AGC).

IR-moduulien kotelot on valmistettu erikoismuodosta, mikä helpottaa vastaanotetun säteilyn fokusoimista valokennon herkälle pinnalle. Kotelomateriaali lähettää säteilyä tiukasti määritellyllä aallonpituudella 830 - 1100 nm. Siten laite käyttää optista suodatinta. Sisäisten elementtien suojaaminen ulkoisilta vaikutuksilta. kentillä käytetään sähköstaattista näyttöä.

IR-vastaanottimen tarkistus

Koska IR-signaalivastaanotin on erikoistunut mikrokokoonpano, sen toiminnan varmistamiseksi on tarpeen kytkeä mikropiiriin syöttöjännite, yleensä 5 volttia. Virrankulutus on noin 0,4 - 1,5 mA.

Jos vastaanotin ei vastaanota signaalia, pulssipurskeiden välisissä tauoissa sen lähdössä oleva jännite vastaa käytännössä syöttöjännitettä. Se on välillä GND ja lähtösignaalin lähtö voidaan mitata millä tahansa digitaalisella yleismittarilla. On myös suositeltavaa mitata mikropiirin kuluttamaa virtaa. Jos se ylittää standardin (katso viitekirja), mikropiiri on todennäköisesti viallinen.

Joten, ennen kuin aloitat moduulitestin, muista määrittää sen lähtöjen pinout. Yleensä tämä tieto on helppo löytää elektroniikkatietolehtien megahakemistostamme. Voit ladata sen klikkaamalla oikealla olevaa kuvaa.

Tarkastetaan se TSOP31236-sirulla; sen pinout vastaa yllä olevaa kuvaa. Yhdistämme positiivisen liittimen kotitekoisesta virtalähteestä IR-moduulin positiiviseen napaan (Vs) ja negatiivisen navan GND-liittimeen. Ja yhdistämme kolmannen OUT-nastan yleismittarin positiiviseen anturiin. Yhdistämme negatiivisen anturin yhteiseen GND-johtimeen. Kytke yleismittari tasajännitetilaan 20 V.

Heti kun infrapunapulssipaketteja alkaa saapua IR-mikrokokoonpanon valodiodille, sen lähdössä oleva jännite putoaa useita satoja millivoltteja. Tässä tapauksessa on selvästi nähtävissä, kuinka yleismittarin näytön arvo laskee 5,03 voltista 4,57:ään. Jos vapautamme kaukosäätimen painikkeen, näytössä näkyy jälleen 5 volttia.

Kuten näet, IR-säteilyvastaanotin reagoi oikein kaukosäätimen signaaliin. Tämä tarkoittaa, että moduuli on kunnossa. Samalla tavalla voit tarkistaa kaikki moduulit integroidussa suunnittelussa.

Infrapunakaukosäädin on yksi helpoimmista tavoista olla vuorovaikutuksessa elektronisten laitteiden kanssa. Joten melkein jokaisessa kodissa on useita tällaisia ​​laitteita: televisio, stereojärjestelmä, videosoitin, ilmastointilaite. Mutta mielenkiintoisin infrapunakaukosäätimen käyttötapa on robotin kaukosäädin. Itse asiassa tällä oppitunnilla yritämme toteuttaa tämän ohjausmenetelmän käyttämällä suosittua Arduino Uno -ohjainta.

1. IR-kaukosäädin

Mitä tarvitaan robotin opettamiseen tottelemaan infrapunakaukosäädintä? Ensinnäkin tarvitsemme itse kaukosäätimen. Voit käyttää tavallista TV:n kaukosäädintä tai ostaa minikaukosäätimen autoradioosi. Tämän tyyppisiä kaukosäätimiä käytetään usein robottien ohjaamiseen. Tässä kaukosäätimessä on 10 digitaalista painiketta ja 11 painiketta musiikin hallintaan: äänenvoimakkuus, kelaus taaksepäin, toisto, pysäytys jne. Enemmän kuin tarpeeksi meidän tarkoituksiin.

2. IR-anturi

Toiseksi signaalin vastaanottamiseksi kaukosäätimestä tarvitsemme erityisen IR-anturin. Yleensä voimme havaita infrapunasäteilyä tavanomaisella fotodiodilla/valotransistorilla, mutta toisin kuin se, IR-anturimme havaitsee infrapunasignaalin vain taajuudella 38 kHz (joskus 40 kHz). Tämän ominaisuuden ansiosta anturi voi jättää huomioimatta paljon valaistuslamppujen ja auringon aiheuttamaa ulkoista valokohinaa. Tässä opetusohjelmassa käytämme suosittua IR-anturia VS1838B, jolla on seuraavat ominaisuudet:
  • kantoaaltotaajuus: 38 kHz;
  • syöttöjännite: 2,7 - 5,5 V;
  • virrankulutus: 50 µA.
Muita antureita voidaan käyttää, esimerkiksi: TSOP4838, TSOP1736, SFH506.

3. Yhteys

Anturissa on kolme johtoa (kolme jalkaa). Jos katsot anturia IR-signaalin vastaanottimen puolelta kuvan osoittamalla tavalla,
  • sitten vasemmalla on lähtö ohjaimelle,
  • keskellä - negatiivinen tehokosketin (maa),
  • ja oikealla - positiivinen tehokosketin (2,7 - 5,5 V).
Kytkentäkaavio Asettelun ulkonäkö

4. Ohjelma

IR-anturin kytkemisen jälkeen kirjoitamme ohjelman Arduino Unolle. Tätä varten käytämme vakiokirjastoa IRkaukosäädin, joka on suunniteltu erityisesti yksinkertaistamaan IR-signaalien vastaanottamista ja lähettämistä. Tämän kirjaston avulla saamme komentoja kaukosäätimestä, ja aluksi yksinkertaisesti näytä ne sarjaportin näyttöikkunassa. Tämä ohjelma on hyödyllinen meille, jotta ymmärrämme, mitä koodia kukin painike antaa. #include "IRremote.h" IRrecv irrecv(2); // osoittavat pin, johon vastaanotin on kytketty decode_results results; void setup() ( Serial.begin(9600); // aseta COM-portin nopeus irrecv.enableIRIn(); // aloita vastaanotto ) void loop() ( if (irrecv.decode(&results)) ( // if tiedot saapuivat Serial .println(results.value, HEX); // tulosta tiedot irrecv.resume(); // hyväksy seuraava komento ) ) Lataa ohjelma Arduinoon. Sen jälkeen yritämme vastaanottaa komentoja kaukosäätimestä. Avaa sarjaporttimonitori (Ctrl+Shift+M), ota kaukosäädin käteen ja osoita se anturia kohti. Painamalla eri painikkeita tarkkailemme näitä painikkeita vastaavia koodeja näyttöikkunassa. Ongelma ohjelman lataamisessa Joissakin tapauksissa, kun yritetään ladata ohjelmaa ohjaimeen, saattaa ilmestyä virhe: TDK2:ta ei ilmoitettu hänen soveltamisalaansa Korjaa se poistamalla kaksi tiedostoa kirjastokansiosta. Mennään tutkimusmatkailijan luo. Siirry kansioon, johon Arduino IDE -sovellus on asennettu (todennäköisimmin "C:\Program Files (x86)\Arduino"). Sitten kirjaston kansioon: …\Arduino\kirjastot\RobotIRremote ja poista tiedostot: IRremoteTools.cpp Ja IRremoteTools.h. Sitten käynnistämme Arduino IDE:n uudelleen ja yritämme ladata ohjelman uudelleen ohjaimeen.

5. Ohjaa LED-valoa infrapunakaukosäätimellä

Nyt kun tiedämme, mitkä koodit vastaavat kaukosäätimen painikkeita, yritämme ohjelmoida ohjaimen kytkemään LED-valon päälle ja pois päältä, kun äänenvoimakkuuspainikkeita painetaan. Tätä varten tarvitsemme koodeja (voi vaihdella kaukosäätimen mukaan):
  • FFA857 - lisää äänenvoimakkuutta;
  • FFE01F - vähennä äänenvoimakkuutta.
LED-valona käytämme nastan nro 13 sisäänrakennettua LEDiä, joten kytkentäkaavio pysyy samana. Joten, ohjelma: #include "IRremote.h" IRrecv irrecv(2); // osoittavat pin, johon vastaanotin on kytketty decode_results results; void setup() ( irrecv.enableIRIn(); // aloita vastaanotto ) void loop() ( if (irrecv.decode(&results)) ( // jos tiedot saapuivat kytkin (results.value) (tapaus 0xFFA857: digitalWrite( 13, HIGH); tauko; tapaus 0xFFE01F: digitalWrite(13, LOW); break; ) irrecv.resume(); // hyväksy seuraava komento ) ) Lataa Arduinoon ja testaa. Klikkaus vol+- LED syttyy. Klikkaus vol-- sammuu. Nyt, kun tiedät, miten se kaikki toimii, voit ohjata robotimoottoreita tai muita kotitekoisia mikroelektronisia laitteita LED-valon sijaan!