Çfarë është një marrës IR? Ne instalojmë një marrës shtesë IR në marrësin satelitor. Diagrami i lidhjes së marrësit IR

diagram nga revista “Tekniku i Ri”.

Një drejtim interesant në radio elektronikën, i cili e ka plotësuar këtë elektronik me avantazhe të reja të dritës "të padukshme" (drita infra të kuqe). Kështu që unë propozoj një qark të një marrësi dhe transmetuesi të thjeshtë (për shembull) bazuar në rrezet infra të kuqe. Baza: përforcues operacional k140ud7 (Unë kam ud708 këtu), që lëshon dhe merr fotodioda IR, ULF (k548un1a (b,c - indekset) - për dy kanale) (megjithëse ku të "ndizni" kanalin e dytë të amplifikatorit varet nga ju - transmetuesi qarku është projektuar për një kanal, t .e. Furnizimi me energji elektrike për pajisjen: Në përgjithësi e rekomandoj me stabilizim të mirë të rrymës (përndryshe përshtatësi "i shkëlqyer" irriton sfondin e "rrjetit"). Metoda: sinjali i moduluar nga amplituda e transmetuesit përforcohet nga marrësi 1000 herë.

Si funksionon pajisja. Unë ju sugjeroj të shikoni një video të shkurtër që teston telekomandën IR "nga veshi". Mund të kontrolloni shpejt funksionalitetin dhe fuqinë e sinjalit me anë të zërit.

Marrësi IR dhe qarku i transmetuesit IR

Gjatë montimit, kondensatorët C1 dhe C2 duhet të jenë sa më afër amplifikatorit! Mund të lidhni kufje me rezistencë të lartë në dalje (ato me rezistencë të ulët kërkojnë një ULF të veçantë). Fotodiodë FD7 (kam FD263: "tabletë" me një lente fokusimi); Rezistenca 0,125 W: R1 dhe R4 vendosin faktorin e amplifikimit të sinjalit me 1000 herë. Marrësi konfigurohet thjesht: fotodioda drejtohet në një burim rrezatimi IR, për shembull, një llambë 220 V-50 Hz: filamenti do të jetë i fonituar me një frekuencë prej 50 Hz ose telekomanda nga televizori (video, etj.) Ndjeshmëria e marrësit është e lartë: normalisht merr sinjale të reflektuara nga muret.

Transmetuesi ka LED AL107a IR: çdo do të bëjë. R2 2 kOhm, C1 1000μFx25V, C2 200μFx25V, çdo transformator gjithashtu. Megjithëse është mjaft e mundur të bëhet pa një transformator - furnizoni një sinjal audio të përforcuar në kondensatorin C2.

Diagrami i pajisjes

Qarku i marrësit IR me ULF

Kohët e fundit, nga nevoja, mblodha një marrës IR për testimin e telekomandës IR (TV dhe DVD). Pas përfundimit të qarkut, instalova një mono ULF TDA7056. Ky përforcues ka karakteristika të mira fitimi prej rreth 42 dB; funksionon në një gamë tensioni nga 3V në 18V, gjë që lejoi që marrësi IR të funksiononte edhe në një tension prej 3V; Gama e fitimit të TDA nga 20 Hz në 20 kHz (UD708 kalon deri në 800 kHz) është mjaft e mjaftueshme për të përdorur marrësin si shoqërues audio; ka mbrojtje nga qarku i shkurtër në të gjitha "këmbët"; mbrojtje kundër "mbinxehjes"; koeficient i dobët i vetë-ndërhyrjes. Në përgjithësi, më pëlqeu ky ULF kompakt dhe i besueshëm (çmimi ynë është 90 rubla).
Nuk është për të me pershkrim i detajuar. Figura 1 tregon një shembull të përdorimit të një përforcuesi.


Foto TDA7056


Fig.1. Qarku i amplifikatorit me TDA7056

Rezultati është një marrës IR, Fig. 2, i cili funksionon në intervalin e tensionit nga 3V në 12V. Unë rekomandoj përdorimin e baterive ose baterive të rikarikueshme për të fuqizuar marrësin. Kur përdorni një furnizim me energji elektrike, kërkohet një burim i stabilizuar, përndryshe do të dëgjohet sfondi i rrjetit 50 Hz, i cili amplifikon UD708. Nëse pajisja ndodhet pranë një burimi të tensionit të rrjetit ose emetimeve të radios, mund të ndodhë ndërhyrje. Për të zvogëluar ndërhyrjen, është e nevojshme të përfshihet kondensatori C5 në qark. TDA7056 është projektuar për një altoparlant dalës 16 Ohm, për fat të keq unë nuk kam një të tillë. Më duhej të përdorja një altoparlant 4 ohm 3 vat, i cili ishte i lidhur përmes një rezistence një vat 50 ohm. Rezistenca shumë e ulët e spirales së altoparlantit shkakton energji të tepërt dhe mbinxeh amplifikatorin. Në përgjithësi, për shkak të rezistencës shtesë, ULF nuk nxehet, por siguron përforcim mjaft të pranueshëm.

Marrës i komandave të telekomandës IR telekomandë Për ngarje Pajisje shtëpiake mund të bëhet lehtësisht duke përdorur një numërues dhjetor CD4017, kohëmatës NE555 dhe marrës infra të kuqe TSOP1738.

Duke përdorur këtë qark marrës IR, mund t'i kontrolloni lehtësisht pajisjet tuaja shtëpiake duke përdorur telekomandën e televizorit, luajtësin DVD ose duke përdorur qarkun e telekomandës të përshkruar në fund të artikullit.

Qarku i marrësit IR për telekomandë

Kunjat 1 dhe 2 të marrësit IR TSOP1738 përdoren për ta fuqizuar atë. Rezistenca R1 dhe kondensatori C1 janë krijuar për funksionim të qëndrueshëm dhe shtypje të zhurmave të ndryshme në qarkun e furnizimit me energji elektrike.

Kur rrezet IR me një frekuencë prej 38 kHz bien mbi marrësin TSOP1738 IR, në daljen e tij 3 shfaqet një nivel i ulët i tensionit dhe kur rrezet IR zhduken, shfaqet përsëri një nivel i lartë. Ky impuls negativ përforcohet nga transistori Q1, i cili kalon sinjalin e frekuencës së përforcuar në hyrjen e numëruesit dhjetor CD4017. Kunjat e numëruesit 16 dhe 8 janë të destinuara për ta fuqizuar atë. Pini 13 është i lidhur me tokën, duke mundësuar kështu funksionimin e tij.

Dalja e Q2 (pin 4) lidhet me kutinë e rivendosjes (pin 15) për të bërë që CD4017 të funksionojë në modalitetin bistable multivibrator. Gjatë pulsit të parë, log1 shfaqet në Q0, sinjali i dytë i orës bën që log1 të shfaqet në Q1 (Q0 shkon ulët), dhe në sinjalin e tretë ai nxjerr përsëri log1 në Q0 (Q2 është i lidhur me MR, kështu që sinjali i orës së tretë rivendoset banak).

Le të supozojmë se numëruesi është rivendosur (Q0 është i lartë dhe pjesa tjetër është i ulët). Kur shtypni butonin e telekomandës, sinjali i orës ndikon në numërues, gjë që çon në një nivel të lartë në Q1. Kështu, LED D1 ndizet, transistori Q2 ndizet dhe stafeta aktivizohet.

Kur shtypet përsëri butoni i telekomandës, log 1 shfaqet në pin Q0, stafeta fiket dhe LED D2 ndizet. LED D1 tregon kur pajisja është e ndezur dhe LED D2 tregon kur pajisja është e fikur.

Mund të përdorni telekomandën e televizorit për kontroll ose të montoni një të veçantë sipas diagramit më poshtë.

  • Tensioni i hyrjes: 2,7 ... 5,5 V
  • Konsumi aktual: 0,65 ... 1,05 mA (në Vcc = 5V) nominalisht 0,9 mA
  • Frekuenca e bartësit: 38 kHz
  • Gjatësia e valës së dritës: 850 ... 1050 nm (e kaluar nga filtri më shumë se 80%)
  • Ndjeshmëria: 0,17… 30000 mW/m2 (në fuqinë e fluksit të dritës)
  • Distanca e pritjes: deri në 45 m
  • Temperatura e punës: -25 … 85 °C
  • Këndi i drejtimit: ±45°

Të gjitha modulet e linjës "Trema" janë bërë në të njëjtin format

Lidhje:

Moduli lidhet me çdo pin dixhital të arduino. Kompleti përfshin një kabllo për lidhje të shpejtë dhe të lehtë me Trema Shield.

Është i përshtatshëm për të lidhur modulin në 3 mënyra, në varësi të situatës:

Metoda - 1: Duke përdorur një kabllo me tela dhe Piranha UNO


Biblioteka përdor një kohëmatës të dytë të harduerit,

MOS DELIZO SINJALET PWM NE 3 OSE 11 DALJE!

Lexoni më shumë rreth instalimit të bibliotekës në...

Informacion shtesë për punën me modulin:

Paketat: Pothuajse të gjitha telekomandat dërgojnë jo vetëm një paketë informacioni (duke treguar llojin e pajisjes dhe kodin e butonit të shtypur), por gjithashtu përsërisin paketat, duke informuar pajisjen që butoni po mbahet i shtypur. Kështu, pajisja marrëse mund t'i përgjigjet shtypjes së butonit një herë ose gjatë gjithë kohës që mbahet.

Për shembull: duke shtypur dhe mbajtur butonin me numrin e kanalit televiziv, televizori do të kalojë në këtë kanal vetem nje here. Ndërsa shtypni dhe mbani butonin e ngritjes së volumit, televizori do ta rrisë atë gjatë gjithë kohës që butoni mbahet.

Numri i paketave të informacionit Shumica e telekomandave kanë një të tillë, por disa pajisje, të tilla si kondicionerët, përdorin 2, 3 ose më shumë pako informacioni.

Përmbajtja e paketës: Paketa e informacionit përmban informacione për kodin e prodhuesit, llojin e pajisjes, kodin e butonit të shtypur, etj. Paketat e përsëritura mund të përkojnë pjesërisht ose plotësisht me një paketë informacioni, të kopjojnë bitet e saj me përmbysje ose të mos mbajnë asnjë informacion, duke përfaqësuar një sekuencë prej disa bitësh identikë për secilën paketë të përsëritur.

Kohëzgjatja e pauzave ndërmjet paketave: zakonisht nuk i kalon 200ms.

Protokollet e transferimit të të dhënave: përcaktoni parametrat bazë të mëposhtëm:

  • frekuenca e bartësit;
  • metoda e kodimit të informacionit, kohëzgjatja e pulseve dhe pauzave të biteve të transmetuara;
  • numri i paketave të informacionit:
  • përbërja e paketës së informacionit dhe paketave të përsëritjes;
  • kohëzgjatja e pauzave ndërmjet paketave;
  • prania dhe forma e sinjaleve Start, Stop dhe Toggle;

Frekuenca e transportuesit: për shumicën e telekomandave është 38 kHz, me këtë frekuencë është akorduar marrësi Trema IR.

Kodimi i informacionit: Ky është parimi i transmetimit të bitave të të dhënave. Le të theksojmë tre lloje kryesore të kodimit, në të cilat secili bit transmetohet në një sekuencë prej një pulsi dhe një pauze:

  • kodimi i gjatësisë së pulsit - së pari transmetohet një impuls, gjatësia e të cilit varet nga vlera e bitit të transmetuar, pasuar nga një pauzë, gjatësia e së cilës nuk varet nga vlera e bitit. Për shembull: në protokollin SIRC (Sony), gjatësia e pulsit për bitin "1" = 1200 µs, dhe për bitin "0" = 600 µs, gjatësia e pauzave është gjithmonë 600 µs. Në këtë mënyrë, ju mund të dalloni "1" nga "0" nga gjatësia e pulsit.
  • kodimi i pauzave të gjata - fillimisht transmetohet një impuls, gjatësia e të cilit nuk varet nga vlera e bitit të transmetuar, pastaj pason një pauzë, gjatësia e së cilës varet nga vlera e bitit. Për shembull: në protokollin NEC, gjatësia e pauzës për bitin "1" = 1687,5 µs, dhe për bitin "0" = 562,5 µs, gjatësia e pulsit është gjithmonë 562,5 µs. Kështu, ju mund të dalloni "1" nga "0" nga gjatësia e pauzës.
  • Kodimi dyfazor - gjatësia e pulsit është e barabartë me gjatësinë e pauzës, dhe sekuenca e tyre përcakton llojin e bitit të transmetuar. Për shembull: në protokollin RS5 (Philips), për bitin "1" një impuls pason një pauzë, dhe për bitin "0" një pauzë pason një puls. Për protokollin NRC (Nokia), përkundrazi, për bitin "1" një pauzë pason një impuls dhe për bitin "0" një impuls pason një pauzë.

Sinjalet e nisjes, ndalimit dhe ndërrimit: sipas emrit të tyre ndodhen në fillim, në fund ose në mes të paketimit.

Ndalo: Kur kodoni një pauzë të gjatë, është e pamundur të përcaktohet vlera e bitit të fundit në paketë, pasi paketa pasohet nga një pauzë e gjatë dhe biti i fundit do të përcaktohet gjithmonë si "1", kështu që shtohet sinjali Stop. në paketë, e cila është një puls që nuk mbart asnjë informacion.

Fillo: Me kodimin dyfazor, kërkohet një sinjal Start, pasi është e pamundur të filloni transmetimin e një pakete nga një pauzë.

Ndrysho: Ky është pak që ndryshon vlerën e tij me çdo shtypje të re të butonit, të përdorur në protokollet RS5, RS5X, RS6 (Philips), ku paketat e përsëritura përsërisin plotësisht të dhënat e paketës së informacionit. Në këtë mënyrë, pajisja marrëse mund të bëjë dallimin midis mbajtjes së butonit dhe shtypjes së tij përsëri.

Shembuj:

Kontrollimi i disponueshmërisë së të dhënave të marra nga telekomanda IR kryhet nga funksioni check(). Ky funksion i përgjigjet shtypjes së butonave në telekomandën IR, por nëse thirret me parametrin e vërtetë, do t'i përgjigjet gjithashtu mbajtjes së butonave.

Duke lexuar të dhënat nga çdo telekomandë, ne i përgjigjemi vetëm shtypjes së butonave:

#përfshi // Lidhni bibliotekën për të punuar me marrësin IR iarduino_IR_RX IR(7); // Deklaroni një objekt IR, duke treguar pinin me të cilin është lidhur marrësi IR, setup void())( Serial.begin(9600); // Filloni transferimin e të dhënave në monitorin e portës serike, me një shpejtësi prej 9600 bps IR.fillim (); .të dhëna, HEX);

Në këtë skicë, funksioni check() thirret pa argumente, që do të thotë se i përgjigjet vetëm shtypjes së butonave në telekomandën IR.

Duke lexuar të dhënat nga çdo telekomandë, ne i përgjigjemi shtypjes së butonave:

#përfshi // Lidhni bibliotekën për të punuar me marrësin IR iarduino_IR_RX IR(6); // Deklaroni një objekt IR, duke treguar pinin me të cilin është lidhur marrësi IR, setup void())( Serial.begin(9600); // Filloni transferimin e të dhënave në monitorin e portës serike, me një shpejtësi prej 9600 bps IR.fillim (); (IR.data, HEX);

Në këtë skicë, funksioni check() thirret me parametrin e vërtetë, që do të thotë se reagon edhe ndaj shtypjes dhe mbajtjes së butonave të telekomandës IR.

Leximi i të dhënave nga çdo telekomandë, duke treguar se si t'i përgjigjeni butonave.

#përfshi // Lidhni bibliotekën për të punuar me marrësin IR iarduino_IR_RX IR(6); // Deklaroni një objekt IR, duke treguar pinin me të cilin është lidhur marrësi IR // bool flgKey1 = false; uint32_t kodKey1 = 0xFF30CF; // Përcaktoni flamurin e klikimit dhe kodin e butonit 1 bool flgKey2 = false; uint32_t kodKey2 = 0xFF18E7; // Përcaktoni flamurin e klikimit dhe kodin e butonit 2 bool flgKey3 = false; uint32_t kodKey3 = 0xFF7A85; // Përcaktoni flamurin e klikimit dhe kodin e butonit 3 bool flgKey = false; uint32_t tmrKey = 0; // Përcaktoni një flamur që lejon daljen e të dhënave në monitor dhe kohën e shtypjes së fundit të butonit. // void setup())( // Serial.begin(9600); // Nis transferimin e të dhënave në monitorin e portës serike, me një shpejtësi prej 9600 bps IR.begin(); // Fillimi i punës me marrësin IR) / / / / void loop())( // if(IR.check(true))( // Nëse buferi përmban të dhëna të marra nga telekomanda (butoni mbahet), atëherë... if(millis()- 200 > tmrKey)( / / Nëse kanë kaluar më shumë se 200 ms nga komanda e fundit e marrë, atëherë flgKey1=false; // Konsideroni që butoni 1 nuk mbahet flgKey2=false; // Konsideroni që butoni 2 nuk mbahet flgKey3=false ; // Konsideroni që butoni 3 nuk mbahet) tmrKey = millis( // Ruajeni kohën e përgjigjes së fundit në telekomandë dhe lejoni daljen e të dhënave if(IR.data==codKey1); flgKey1)(flgKey=false;) flgKey1=true;)else(flgKey1= false;) // Ne ndalojmë daljen e të dhënave të butonit 1 kur ai mbahet i shtypur if(IR.data==codKey2)(if(flgKey2)( flgKey=false;) flgKey2=true;)else(flgKey2=false;) // Ne ndalojmë daljen e butonit të të dhënave 2 ndërsa e mbajmë atë if(IR.data==codKey3)(if(flgKey3)(flgKey=false;) flgKey3=e vërtetë; )else(flgKey3=false;) // Ndaloni daljen e të dhënave të butonit 3 kur ai mbahet i shtypur if(flgKey)( // Nëse dalja e të dhënave lejohet, atëherë... Serial.println(IR.data, HEX); // Nxjerrja e kodit të butonave të shtypur Serial.println(IR.gjatësia // Shtypni numrin e biteve në kod ) // ) // ) //;

Në këtë skicë, funksioni check() thirret me parametrin e vërtetë, që do të thotë se i përgjigjet shtypjes dhe mbajtjes së butonave të telekomandës IR. Por të dhënat nxirren në monitorin e portës serike vetëm kur vendoset flamuri flgKey, i cili rivendoset kur mbahen të shtypur butonat me kodet 0xFF30CF, 0xFF18E7 dhe 0xFF7A85. Rezulton se skica reagon ndaj 3 butonave vetëm kur shtypet, dhe ndaj butonave të mbetur si kur shtypet ashtu edhe kur mbahet.

Leximi i të dhënave vetëm nga ato telekomandë që funksionojnë sipas protokollit të specifikuar:

#përfshi // Lidhni bibliotekën për të punuar me marrësin IR iarduino_IR_RX IR(5); // Deklaroni një objekt IR, duke treguar pinin me të cilin është lidhur marrësi IR, setup void())( Serial.begin(9600); // Filloni transferimin e të dhënave në monitorin e portës serike, me një shpejtësi prej 9600 bps IR.fillim ( / / Filloni punën me marrësin IR IR.protocol("Ae`` `|LJ` @@@BPBp" // Specifikoni protokollin e transferimit të të dhënave për t'iu përgjigjur) void loop())( if(); IR.kontroll( e vërtetë))( // Nëse buferi përmban të dhëna të marra nga telekomanda (butoni mbahet i shtypur) Serial.println(IR.data, HEX); // Nxjerr kodin e butonit të shtypur Serial.println (IR.gjatësia // Nxjerr numrin e biteve në kod) )

Në këtë skicë, në kodin setup(), tregohet protokolli i transferimit të të dhënave, i cili rrallë përkon midis prodhuesve të ndryshëm të telekomandave IR. Kjo do të thotë që funksioni check() në kodin loop() do t'u përgjigjet vetëm atyre telekomandave IR që mbështesin protokollin e specifikuar.

Marrja e protokollit të transferimit të të dhënave dhe lloji i kodimit:

#përfshi // Lidhni bibliotekën për të punuar me marrësin IR iarduino_IR_RX IR(4); // Deklaroni një objekt IR, duke treguar pinin me të cilin është lidhur marrësi IR, setup void())( Serial.begin(9600); // Filloni transferimin e të dhënave në monitorin e portës serike, me një shpejtësi prej 9600 bps IR.fillim (); .protocol());

Ky shembull përshkruan se si të merrni protokollin e transferimit të të dhënave për telekomandat IR. Artikulli përshkruan se si të transmetoni kodet e butonave duke përdorur protokollin e specifikuar.

Në këtë mënyrë, ju mund të krijoni një skicë të transmetuesit IR për të simuluar sinjalet e telekomandave të ndryshme IR. Si rezultat, pajisjet do t'i përgjigjen transmetuesit IR sikur t'i përgjigjen telekomandës së tyre IR.

Përshkrimi i funksioneve kryesore të bibliotekës:

Lidhja e bibliotekës:

#përfshi // Lidhni bibliotekën për të punuar me marrësin IR. iarduino_IR_RX IR(PIN#[, INVERT]); // Deklaroni një objekt IR, duke treguar numrin e pinit me të cilin është lidhur marrësi IR. // Parametri i dytë, i tipit bool, mund të tregojë se të dhënat nga marrësi janë të përmbysura.

Funksioni start();

  • Qëllimi: inicializimi i punës me marrësin IR
  • Sintaksa: start();
  • Opsionet: Asnjë.
  • Vlerat e kthimit: Asnjë.
  • Shënim: Thirret një herë në kodin e konfigurimit.
  • Shembull:
IR.fillim(); // Filloni punën me marrësin IR

Kontrolli i funksionit();

  • Qëllimi: Kontrollimi i disponueshmërisë së të dhënave të marra nga telekomanda.
  • Sintaksa: kontrolloni ([ HOLD ]);
  • Opsione:
    • HOLD - një parametër opsional, tip bool - që tregon se është e nevojshme t'i përgjigjeni mbajtjes së butonave të telekomandës.
  • Vlerat e kthimit: bool - nëse të dhënat nga telekomanda janë pranuar apo jo.
  • Shënim: Nëse funksioni thirret pa një parametër, ose është i rremë, atëherë funksioni do t'i përgjigjet sinjaleve nga telekomanda vetëm kur shtypen butonat e tij dhe nëse specifikoni true, funksioni do t'i përgjigjet si shtypjes dhe mbajtjes së butonat e telekomandës.
  • Shembull:
if(IR.check())( ... ;) // Nëse të dhënat merren nga telekomanda, kur shtypni butonin e saj if(IR.check(true))( ... ;) // Nëse të dhënat janë marrë nga telekomanda, kur mbani butonin

Protokolli i funksionit();

  • Qëllimi: Marrja, vendosja ose rivendosja e protokollit të transferimit të të dhënave.
  • Sintaksa: protokolli ([ PARAMETRI ]);
  • Marrja e protokollit: Nëse funksioni thirret pa një parametër, ai do të kthejë një varg prej 25 karakteresh + karakterin e fundit të rreshtit. Pjesët e kësaj linje përmbajnë informacion në lidhje me llojin e protokollit të transferimit të të dhënave të telekomandës të dhënat e së cilës janë marrë për herë të fundit. Kjo linjë mund të përdoret për të vendosur protokollin për transmetuesin IR ose marrësin IR (shih më poshtë).
  • Vendosja e protokollit: Nëse funksioni thirret me një parametër në formën e një vargu prej 25 karakteresh protokolli + karakteri i fundit i rreshtit, atëherë pas kësaj, funksioni chek() do t'u përgjigjet vetëm telekomandave që përputhen me të dhënat e specifikuara protokolli i transferimit.
  • Rivendosja e protokollit: Nëse funksioni thirret me parametrin IR_CLEAN, atëherë funksioni chek() do t'i përgjigjet sërish sinjaleve nga çdo telekomandë.
  • Marrja e parametrave të protokollit: Nëse funksioni thirret me një parametër int, nga 0 në 17, atëherë ai nuk do të kthejë një varg protokolli, por një vlerë int me një nga parametrat e protokollit të transferimit të të dhënave të konsolës, të dhënat e së cilës janë marrë për herë të fundit. :
    • 0 - lloji i kodimit:
      • IR_UNDEFINED - lloji i kodimit është i papërcaktuar;
      • IR_PAUSE_LENGTH - kodimi me pauzë të gjatë;
      • IR_PULSE_LENGTH - kodimi me impuls të gjatë (gjerësi) (PWM);
      • IR_BIPHASIC - kodim dyfazor;
      • IR_BIPHASIC_INV - kodim dyfazor me bit të përmbysur;
      • IR_NRC - paketat e përsëritura janë identike, por paketat e para dhe të fundit janë të veçanta;
      • IR_RS5 - kodim PHILIPS me bit ndërrimi;
      • IR_RS5X - kodim PHILIPS me bit ndërrimi;
      • IR_RS6 - Kodimi PHILIPS me bit ndërrimi.
    • 1 - frekuenca e bartësit të transmetimit të të dhënave (në kHz);
    • 2 - numri i deklaruar i biteve të informacionit në 1 paketë;
    • 3 - numri i deklaruar i biteve të informacionit në paketën e përsëritjes;
    • 4 - kohëzgjatja e pauzës midis paketave (në ms);
    • 5 - kohëzgjatja e pulsit në bitin e fillimit (në μs);
    • 6 - kohëzgjatja e pauzës në bitin e fillimit (në μs);
    • 7 - kohëzgjatja e pulsit në bitin e ndalimit (në μs);
    • 8 - kohëzgjatja e pauzës në bitin e ndalimit (në μs);
    • 9 - kohëzgjatja e pulsit në bitin e rinisjes ose të ndërrimit (në μs);
    • 10 - kohëzgjatja e pauzës në bitin e rinisjes ose të ndërrimit (në μs);
    • 11 - pozicioni i bitit të rinisjes ose ndryshimit në paketë (biti nr.);
    • 12 - kohëzgjatja maksimale e pulsit në bit informacioni (në μs);
    • 13 - kohëzgjatja minimale e pulsit në bit informacioni (në μs);
    • 14 - kohëzgjatja maksimale e pauzës në bit informacioni (në μs);
    • 15 - kohëzgjatja minimale e pauzës në bit informacioni (në μs);
    • 16 - flamuri i pranisë së bitit fillestar (e vërtetë/e gabuar);
    • 17 - flamuri i pranisë së bitit të ndalimit (e vërtetë/e gabuar);
    • 18 - flamuri për praninë e bitit të rinisjes ose të ndryshimit (e vërtetë / e gabuar);
    • 19 - përsërit llojin e paketës (0-asnjë, 1-me bit të përmbysur, 2-identike me informacionin, 3-unike);
  • Vlerat e kthimit: Varet nga prania dhe lloji i parametrit.
  • Shënim: Nëse një protokoll është vendosur më parë, atëherë tentimi për të marrë protokollin, ose parametrat e protokollit, do të kthejë vlerat e protokollit të vendosur më parë, dhe jo protokollin e transferimit të të dhënave të konsolës, të dhënat e së cilës janë marrë për herë të fundit.
  • Shembull:
IR.protokolli ("AeQQV~zK]Kp^KJp[@@@@@@@Bp"); // Vendosni protokollin. Tani marrësi do të marrë të dhëna vetëm nga telekomanda ELENBERG TV. IR.protokolli (IR_CLEAN); // Rivendosni protokollin e instaluar më parë. Tani marrësi do t'i përgjigjet përsëri çdo telekomande. if(IR.check())( Serial.println(IR.protocol()); ) // Merrni protokollin. Sapo marrësi të marrë të dhënat, një varg prej 25 karakteresh protokolli do të shfaqet në monitor. if(IR.check())( Serial.println(IR.protokol(12)); ) // Merrni një nga parametrat e protokollit. Sapo marrësi të marrë të dhënat, monitori do të shfaqë kohëzgjatjen maksimale të pulsit të bitit të informacionit në mikrosekonda.

Variabla e të dhënave

  • Vlera: Kthen kodin e butonit të marrë nga telekomanda;
  • Lloji i të dhënave: uint32_t.
if(IR.check())( Serial.println(IR.data); ) // Shtypni kodin e butonit të shtypur, nëse pranohet

variabli i gjatësisë

  • Vlera: Kthen madhësinë e kodit të butonit, në bit;
  • Lloji i të dhënave: uint8_t.
if(IR.check())( Serial.println(IR.length); ) // Printoni madhësinë e kodit të butonit të shtypur, nëse pranohet

variabli i shtypjes së çelësit

  • Kuptimi: Kthen një flamur që tregon se butoni i telekomandës po shtypet në vend që të mbahet;
  • Lloji i të dhënave: bool.
if(IR.check(true))( if(IR.key_press)(Serial.println("PRESS");) // Teksti do të printohet 1 herë kur të shtypet butoni tjetër (Serial.println("HOLD " );) // Teksti do të shfaqet vazhdimisht ndërsa butoni mbahet i shtypur)

Aplikacion:

  • kontrolli i robotëve, modeleve lëvizëse, fluturuese dhe lundruese, pajisjeve shtëpiake dhe të specializuara.
  • ndezja/fikja e ndriçimit, ngrohjes, ajrosjes, ujitjes etj.
  • hapja/mbyllja e dyerve, blindave, dritareve të çatisë, ventilimit etj.

Marrësi IR është një pajisje standarde që lidhet me portën COM (RS-232) dhe shërben për të kontrolluar nga distanca robotin.

Nje nga skemat e mundshme Marrës IR. Çdo marrës infra të kuqe 5 volt i përdorur në pajisjet shtëpiake (TV) do të jetë i përshtatshëm për marrësin IR. Për shembull: TSOP1836, IS1U60L, GP1U52X, SFH506-36 ose TK1833 tonë vendas. Stabilizuesi i tensionit KREN5A është i nevojshëm për të fuqizuar marrësin IR me tension 5 V, sepse 12 volt furnizohen nga kunja e 7-të e portës COM. Rezistenca mund të zgjidhet nga diapazoni 3-5 kOhm, kondensatori 4,7-10 μF. Çdo diodë me fuqi të ulët.

Në qarkun e mësipërm, sinjali i daljes furnizohet me 1 kontakt Porta COM(DCD). Ky kontakt nuk përdoret nga një maus standard për një port COM, kështu që nëse nuk keni mjaft portë të lirë COM, ky qark mund të përdoret paralelisht me një maus (por jo me një modem)! Sinjali i daljes mund të dërgohet jo vetëm në DCD, por edhe në kunja të tjera, të tilla si CTS ose DSR. Të gjithë këta parametra mund të vendosen në një program që funksionon në marrësin IR. Ka disa opsione programi, më i zakonshmi është WinLIRC. Unë gjithashtu mund të rekomandoj përdorimin e programit Girder.

Pika dhe pamja e elementeve kryesore të qarkut

Nga e majta në të djathtë - dy lloje të marrësve IR 5 volt, dhe një çip stabilizues të tensionit KREN5A.

Pika e portit COM

Pika dhe përshkrimi i kontakteve të portit COM (25 pin).

Marrësi IR luan një rol të rëndësishëm në jetën tonë të përditshme. Me ndihmën e këtij mikroqarku, ne jemi në gjendje të kontrollojmë pajisjet moderne shtëpiake, një televizor, një sistem stereo, një radio makine dhe një kondicioner. Kjo na lejon ta bëjmë këtë, telekomanda (RC), le të hedhim një vështrim më të afërt në funksionimin, qarkun, qëllimin dhe testimin e tij. Në artikull, si ta kontrolloni vetë marrësin IR.

Çfarë është një marrës IR dhe si funksionon?

Ky është një qark i integruar, detyra e tij e drejtpërdrejtë dhe kryesore është të marrë dhe përpunojë sinjalin infra të kuqe, që është ajo që lëshon telekomanda. Ky sinjal përdoret për të kontrolluar pajisjet.

Ky mikroqark bazohet në një fotodiodë pin, një element i veçantë, me një kryqëzim p-n dhe një rajon i midis tyre, një analog i bazës së një transistori, si në një sanduiç, kështu që këtu është kunja e shkurtimit, një element unik në të. mënyrën e vet.

Ndizet në të kundërt dhe nuk kalon elektricitet. Sinjali IR hyn në rajonin i dhe përcjell rrymë, duke e kthyer atë në tension.


Fazat e ardhshme janë një filtër integrues, një detektor amplitudë dhe në vijën e finishit, tranzistorët e daljes i presin.

Si rregull, nuk ka asnjë pikë të veçantë për të blerë një marrës të ri IR në një dyqan, pasi ai mund të shkrihet lehtësisht nga bordet e ndryshme elektronike. Nëse po montoni një pajisje për kontrollimin e telekomandës nga materialet e skrapit, pa e ditur shënimin e saktë të pajisjes, atëherë mund ta përcaktoni vetë pikën.


Do të na duhet një multimetër, një furnizim me energji elektrike ose disa bateri, tela lidhës, instalimi mund të bëhet i varur.

Ka tre dalje, njëra është GND, plus 5 volt i furnizohet e dyta dhe sinjali i daljes del nga i treti. Ne e lidhim fuqinë me këmbën e parë dhe të dytë, përkatësisht, dhe heqim tensionin nga e treta.


Është në një gjendje pritjeje për një sinjal nga telekomanda, dhe në multimetër shohim pesë volt. Fillojmë të ndërrojmë kanale ose shtypim butona të tjerë duke drejtuar telekomandën drejt tij.

Nëse funksionon, atëherë voltazhi do të bjerë me rreth 0,5-1 volt. Nëse gjithçka ndodh siç është shkruar këtu, pajisja po funksionon, përndryshe elementi është i gabuar.

Si të përcaktoni pinout të një marrësi infra të kuqe

Për shembull, mora një mikroqark krejtësisht të panjohur për mua, i cili ishte shtrirë në një kuti me elementë, "minus" u përcaktua nga pika që është në anën e pasme të elementit, "plus" u përcaktua eksperimentalisht përmes një rezistence. Nuk rrezikova asgjë, pasi ai fillimisht ishte punëtor, nuk kishte asnjë shpresë.

Për të përcaktuar majën e marrësit IR, nëse është ngjitur në tabelë, shikoni atë, mund të ketë shenja kunjash. Nëse asgjë nuk është shkruar atje, inspektoni vetë elementin, kërkoni emrin e tij dhe më pas kërkoni në internet për karakteristika dhe të dhëna, kjo është një mënyrë shumë kompetente për t'i bërë gjërat. Duke ndjekur udhëzimet, si ta kontrolloni vetë marrësin IR.

diagram nga revista “Tekniku i Ri”.

Një drejtim interesant në radio elektronikën, i cili e ka plotësuar këtë elektronik me avantazhe të reja të dritës "të padukshme" (drita infra të kuqe). Kështu që unë propozoj një qark të një marrësi dhe transmetuesi të thjeshtë (për shembull) bazuar në rrezet infra të kuqe. Baza: amplifikatori operacional k140ud7 (kam ud708 këtu), që lëshon dhe merr fotodioda IR, ULF (k548un1a (b,c - indekset) - për dy kanale) (edhe pse ku të "ndizni" kanalin e dytë të amplifikatorit është deri në ju vendosni - qarku i transmetuesit është projektuar për një kanal, d.m.th. mono). Furnizimi me energji elektrike për pajisjen: Në përgjithësi e rekomandoj me stabilizim të mirë të rrymës (përndryshe përshtatësi "i shkëlqyer" irriton sfondin e "rrjetit"). Metoda: sinjali i moduluar nga amplituda e transmetuesit përforcohet nga marrësi 1000 herë.

Si funksionon pajisja. Unë ju sugjeroj të shikoni një video të shkurtër që teston telekomandën IR "nga veshi". Mund të kontrolloni shpejt funksionalitetin dhe fuqinë e sinjalit me anë të zërit.

Marrësi IR dhe qarku i transmetuesit IR

Gjatë montimit, kondensatorët C1 dhe C2 duhet të jenë sa më afër amplifikatorit! Mund të lidhni kufje me rezistencë të lartë në dalje (ato me rezistencë të ulët kërkojnë një ULF të veçantë). Fotodiodë FD7 (kam FD5 .. një lloj "tabletë" me një lente fokusimi - nuk e mbaj mend emrin e saktë); Rezistenca 0,125 W: R1 dhe R4 vendosin faktorin e amplifikimit të sinjalit me 1000 herë. Marrësi konfigurohet thjesht: fotodioda drejtohet në një burim rrezatimi IR, për shembull, një llambë 220 V-50 Hz: filamenti do të jetë i fonituar me një frekuencë prej 50 Hz ose telekomanda nga televizori (video, etj.) Ndjeshmëria e marrësit është e lartë: normalisht merr sinjale të reflektuara nga muret.

Transmetuesi ka LED AL107a IR: çdo do të bëjë. R2 2 kOhm, C1 1000μFx25V, C2 200μFx25V, çdo transformator gjithashtu. Megjithëse është mjaft e mundur të bëhet pa një transformator - furnizoni një sinjal audio të përforcuar në kondensatorin C2.

Diagrami i pajisjes

Kohët e fundit, nga nevoja, mblodha një marrës IR për testimin e telekomandës IR (TV dhe DVD). Pas përfundimit të qarkut, instalova një mono ULF TDA7056. Ky përforcues ka karakteristika të mira fitimi prej rreth 42 dB; funksionon në një gamë tensioni nga 3V në 18V, gjë që lejoi që marrësi IR të funksiononte edhe në një tension prej 3V; Gama e fitimit të TDA nga 20 Hz në 20 kHz (UD708 kalon deri në 800 kHz) është mjaft e mjaftueshme për të përdorur marrësin si shoqërues audio; ka mbrojtje nga qarku i shkurtër në të gjitha "këmbët"; mbrojtje kundër "mbinxehjes"; koeficient i dobët i vetë-ndërhyrjes. Në përgjithësi, më pëlqeu ky ULF kompakt dhe i besueshëm (çmimi ynë është 90 rubla).
Nuk është për të me. Figura 1 tregon një shembull të përdorimit të një përforcuesi.


Foto TDA7056



Fig.1. Qarku i amplifikatorit me TDA7056

Rezultati është një marrës IR, Fig. 2, i cili funksionon në intervalin e tensionit nga 3V në 12V. Unë rekomandoj përdorimin e baterive ose baterive të rikarikueshme për të fuqizuar marrësin. Kur përdorni një furnizim me energji elektrike, kërkohet një burim i stabilizuar, përndryshe do të dëgjohet sfondi i rrjetit 50 Hz, i cili amplifikon UD708. Nëse pajisja ndodhet pranë një burimi të tensionit të rrjetit ose emetimeve të radios, mund të ndodhë ndërhyrje. Për të zvogëluar ndërhyrjen, është e nevojshme të përfshihet kondensatori C5 në qark. TDA7056 është projektuar për një altoparlant dalës 16 Ohm, për fat të keq unë nuk kam një të tillë. Më duhej të përdorja një altoparlant 4 ohm 3 vat, i cili ishte i lidhur përmes një rezistence një vat 50 ohm. Rezistenca shumë e ulët e spirales së altoparlantit shkakton energji të tepërt dhe mbinxeh amplifikatorin. Në përgjithësi, për shkak të rezistencës shtesë, ULF nuk nxehet, por siguron përforcim mjaft të pranueshëm.



Fig.2. Qarku i marrësit IR me ULF



Foto e marrësit IR

Në këtë mësim do të shikojmë lidhjen e një marrësi IR me Arduino. Ne do t'ju tregojmë se cila bibliotekë duhet të përdoret për një marrës IR, do të demonstrojmë një skicë për testimin e funksionimit të një marrësi infra të kuqe nga një telekomandë dhe do të analizojmë komandat në C++ për të marrë një sinjal kontrolli.

Pajisja e marrësit IR. Parimi i funksionimit

Marrësit e rrezatimit infra të kuqe aplikim të gjerë në teknologjinë elektronike, për shkak të çmimit të përballueshëm, thjeshtësisë dhe lehtësisë së përdorimit. Këto pajisje ju lejojnë të kontrolloni pajisjet duke përdorur një telekomandë dhe mund të gjenden në pothuajse çdo lloj pajisjeje.

Parimi i funksionimit të një marrësi IR. Përpunimi i sinjalit nga telekomanda

Marrësi IR në Arduino është i aftë të marrë dhe përpunojë një sinjal infra të kuqe në formën e pulseve të një kohëzgjatjeje dhe frekuence të caktuar. Në mënyrë tipike, një marrës IR ka tre këmbë dhe përbëhet nga elementët e mëposhtëm: një fotodiodë PIN, një përforcues, një filtër brezi, një detektor amplitudë, një filtër integrues dhe një tranzistor dalës.

Nën ndikimin e rrezatimit infra të kuqe në një fotodiodë, e cila ka ndërmjet fq Dhe n rajonet krijuan një rajon shtesë të gjysmëpërçuesit ( i-rajon), rryma fillon të rrjedhë. Sinjali shkon në një përforcues dhe më pas në një filtër brez-pass, i cili mbron marrësin nga ndërhyrja. Ndërhyrjet mund të shkaktohen nga çdo pajisje shtëpiake.

Filtri i brezit është vendosur në një frekuencë fikse: 30; 33; 36; 38; 40 dhe 56 kiloherc. Në mënyrë që sinjali nga telekomanda të merret nga marrësi IR Arduino, telekomanda duhet të jetë në të njëjtën frekuencë siç është vendosur filtri në marrësin IR. Pas filtrit, sinjali shkon në një detektor amplitudë që integron filtrin dhe transistorin e daljes.

Si të lidhni një marrës IR me Arduino

Kutitë e marrësve infra të kuqe përmbajnë një filtër optik për të mbrojtur pajisjen nga fushat e jashtme elektromagnetike ato janë bërë në një formë të veçantë për të fokusuar rrezatimin e marrë në një fotodiodë. Për të lidhur marrësin IR me Arduino UNO Ata përdorin tre këmbë që lidhen me portet - GND, 5V dhe A0.

Për këtë mësim do të na duhen detajet e mëposhtme:

  • Pllaka Arduino Uno;
  • Tabela e bukës;
  • kabllo USB;
  • marrës IR;
  • Telekomandë;
  • 1 LED;
  • 1 rezistencë 220 Ohm;
  • Telat "folder-folder" dhe "folder-female".

Diagrami i lidhjes së marrësit IR me portën analoge Arduino

Lidheni marrësin IR sipas diagramit dhe LED-të në kunjat 12 dhe 13 dhe ngarkoni skicën.

#përfshi // lidhni bibliotekën për marrësin IR IRrecv irrecv(A0); // tregoni pinin me të cilin është lidhur marrësi IR rezultatet e dekodimit të rezultateve; konfigurimi i pavlefshëm () // konfigurimi i procedurës (irrecv.enableIRIn (); // filloni të merrni një sinjal infra të kuqe pinMode (13, OUTPUT); // pin 13 do të jetë dalja pinMode (12, OUTPUT); // pin 12 do të jetë dalja pinMode (A0,INPUT); // pin A0 do të jetë hyrja (eng. "input") Seriali.fillim(9600); // lidhni monitorin e portit) void loop () // cikli i procedurës ( if (irrecv.deshifroj (&rezultatet)) // nëse të dhënat kanë mbërritur, ekzekutoni komandat( Serial .println (rezultatet.vlera); // dërgoni të dhënat e marra në port // ndizni dhe fikni LED-të, në varësi të sinjalit të marrë if (results.value == 16754775) ( digitalWrite (13, LARTË); ) if (results.value == 16769055) ( digitalWrite (13, LOW); ) if (results.value == 16718055) ( digitalWrite (12, LARTË ) nëse (rezultatet.vlera == 16724175) (Dixhital Shkruani (12, LOW); ) irrecv.rinume (); // merrni sinjalin tjetër në marrësin IR } }

Shpjegime për kodin:

  1. Biblioteka IRremote.h përmban një grup komandash dhe ju lejon të thjeshtoni skicën;
  2. Deklarata decode_results i cakton rezultatet e emrit të ndryshores sinjaleve të marra nga telekomanda.

Çfarë duhet t'i kushtoni vëmendje:

  1. Për të qenë në gjendje të kontrolloni përfshirjen e LED, duhet të ndizni monitorin e portit dhe të zbuloni se çfarë sinjali dërgohet nga ky ose ai buton në telekomandë;
  2. Të dhënat e marra duhet të futen në skicë. Ndryshoni kodin tetëshifror në skicë pas shenjës së dyfishtë të barazimit nëse (rezultatet.vlera == 16769055) në tuajin.

Pajisja e marrësit IR, funksionimi dhe testimi

Marrësit IR të rrezatimit infra të kuq janë bërë të përhapur në televizion, pajisje shtëpiake, pajisje mjekësore dhe pajisje të tjera. Ato mund të shihen pothuajse në çdo lloj pajisje elektronike, ato kontrollohen duke përdorur një telekomandë.


funksionimi dhe bllok diagrami i marrësit IR

Në mënyrë tipike, një mikromontazh i marrësit IR ka tre ose më shumë kunja. Njëra është e zakonshme dhe është e lidhur me furnizimin me energji elektrike minus GND, tjetra në plus V s, dhe e treta është dalja e sinjalit të marrë Jashtë.

Për dallim nga një fotodiodë standarde IR, një marrës IR është i aftë jo vetëm të marrë, por edhe të përpunojë një sinjal infra të kuqe në formën e pulseve të një frekuence fikse dhe një kohëzgjatjeje të caktuar. Kjo mbron pajisjen nga pozitive false, nga rrezatimi i sfondit dhe ndërhyrja nga pajisjet e tjera shtëpiake që emetojnë në intervalin IR. Llambat fluoreshente të kursimit të energjisë me një qark elektronik çakëll mund të krijojnë ndërhyrje mjaft të forta për marrësin.

Mikromontimi i një marrësi tipik të rrezatimit IR përfshin: fotodiodën PIN, përforcuesin e ndryshueshëm, filtrin e brezit, detektorin e amplitudës, filtrin integrues, pajisjen e pragut, transistorin e daljes

Një fotodiodë PIN është nga familja e fotodiodave, në të cilën një rajon tjetër i gjysmëpërçuesit të vet (i-rajoni) krijohet midis rajoneve n dhe p - kjo është në thelb një shtresë gjysmëpërçuesi i pastër pa papastërti. Është kjo që i jep diodës PIN vetitë e saj të veçanta. Në gjendje normale, asnjë rrymë nuk rrjedh nëpër fotodiodën PIN, pasi ajo është e lidhur me qarkun në drejtim të kundërt. Kur çiftet elektron-vrima gjenerohen në rajonin i nën ndikimin e rrezatimit të jashtëm IR, rryma fillon të rrjedhë nëpër diodë. I cili më pas shkon në një përforcues të ndryshueshëm.

Pastaj sinjali nga amplifikatori shkon në një filtër brezkalimi që mbron nga ndërhyrjet në intervalin IR. Filtri i brezit është vendosur në një frekuencë rreptësisht fikse. Në mënyrë tipike, përdoren filtra që janë vendosur në një frekuencë prej 30; 33; 36; 36,7; 38; 40; 56 dhe 455 kiloherc. Në mënyrë që sinjali i emetuar nga telekomanda të merret nga marrësi IR, ai duhet të modulohet me të njëjtën frekuencë në të cilën është konfiguruar filtri.

Pas filtrit, sinjali shkon në një detektor amplitudë dhe një filtër integrues. Kjo e fundit është e nevojshme për të bllokuar shpërthimet e shkurtra të sinjaleve të vetme që mund të shfaqen nga ndërhyrja. Tjetra, sinjali shkon në pajisjen e pragut dhe tranzitorin e daljes. Për funksionim të qëndrueshëm, fitimi i amplifikatorit rregullohet nga një sistem i kontrollit automatik të fitimit (AGC).

Shtresat e moduleve IR janë bërë në një formë të veçantë që lehtëson fokusimin e rrezatimit të marrë në sipërfaqen e ndjeshme të fotocelës. Materiali i strehimit transmeton rrezatim me një gjatësi vale të përcaktuar rreptësisht nga 830 në 1100 nm. Kështu, pajisja përdor një filtër optik. Për të mbrojtur elementët e brendshëm nga ndikimet e jashtme. fusha përdoret një ekran elektrostatik.

Kontrollimi i marrësit IR

Meqenëse marrësi i sinjalit IR është një mikromontim i specializuar, për të siguruar funksionimin e tij, është e nevojshme të aplikoni një tension furnizimi në mikroqark, zakonisht 5 volt. Konsumi aktual do të jetë rreth 0,4 - 1,5 mA.

Nëse marrësi nuk merr një sinjal, atëherë në pauzat midis shpërthimeve të pulseve, voltazhi në daljen e tij praktikisht korrespondon me tensionin e furnizimit. Është në mes GND dhe dalja e sinjalit të daljes mund të matet duke përdorur çdo multimetër dixhital. Rekomandohet gjithashtu të matet rryma e konsumuar nga mikroqarku. Nëse tejkalon atë standard (shih librin e referencës), atëherë ka shumë të ngjarë që mikroqarku të jetë i dëmtuar.

Pra, përpara se të filloni testin e modulit, sigurohuni që të përcaktoni pikën e daljes së rezultateve të tij. Zakonisht ky informacion është i lehtë për t'u gjetur në mega-direktorinë tonë të fletëve të të dhënave elektronike. Mund ta shkarkoni duke klikuar në foton në të djathtë.

Le ta kontrollojmë në çipin TSOP31236, pika e saj korrespondon me figurën e mësipërme. Ne e lidhim terminalin pozitiv nga furnizimi me energji elektrike në shtëpi me terminalin pozitiv të modulit IR (Vs) dhe terminalin negativ me terminalin GND. Dhe ne lidhim pinin e tretë OUT me sondën pozitive të multimetrit. Ne e lidhim sondën negative me telin e përbashkët GND. Kaloni multimetrin në modalitetin e tensionit DC në 20 V.

Sapo paketat e pulseve infra të kuqe fillojnë të arrijnë në fotodiodën e mikromontimit IR, voltazhi në daljen e tij do të bjerë me disa qindra milivolt. Në këtë rast, do të jetë qartë e dukshme se si vlera në ekranin e multimetrit zvogëlohet nga 5.03 volt në 4.57. Nëse lëshojmë butonin e telekomandës, ekrani do të shfaq përsëri 5 volt.

Siç mund ta shihni, marrësi i rrezatimit IR i përgjigjet saktë sinjalit nga telekomanda. Kjo do të thotë se moduli është në rregull. Në mënyrë të ngjashme, ju mund të kontrolloni çdo modul në një dizajn të integruar.

Telekomanda me rreze infra të kuqe është një nga më të mirat mënyra të thjeshta ndërveprimi me pajisjet elektronike. Pra, pothuajse çdo shtëpi ka disa pajisje të tilla: një TV, një sistem stereo, një video player, një kondicioner. Por përdorimi më interesant i një telekomandë infra të kuqe është telekomanda e një roboti. Në fakt, në këtë mësim do të përpiqemi të zbatojmë këtë metodë kontrolli duke përdorur kontrolluesin popullor Arduino Uno.

1. Telekomandë IR

Çfarë nevojitet për të mësuar një robot që t'i bindet një telekomande me rreze infra të kuqe (IR)? Së pari, na duhet vetë telekomanda. Mund të përdorni një telekomandë të rregullt të televizorit, ose mund të blini një telekomandë në miniaturë për radion e makinës suaj. Këto lloje të telekomandave përdoren shpesh për të kontrolluar robotët. Kjo telekomandë ka 10 butona dixhitalë dhe 11 butona për manipulimin e muzikës: volumin, rikthimin, luajtjen, ndalimin, etj. Më se e mjaftueshme për qëllimet tona.

2. Sensori IR

Së dyti, për të marrë një sinjal nga telekomanda, na duhet një sensor i veçantë IR. Në përgjithësi, ne mund të zbulojmë rrezatim infra të kuqe me një fotodiodë/fototransistor konvencional, por ndryshe nga ai, sensori ynë IR percepton sinjalin infra të kuqe vetëm në një frekuencë prej 38 kHz (ndonjëherë 40 kHz). Është kjo veti që lejon sensorin të injorojë shumë zhurmë të dritës së jashtme nga llambat e ndriçimit dhe dielli. Për këtë tutorial ne do të përdorim sensorin popullor IR VS1838B, e cila ka karakteristikat e mëposhtme:
  • frekuenca e bartësit: 38 kHz;
  • Tensioni i furnizimit: 2,7 - 5,5 V;
  • Konsumi aktual: 50 µA.
Mund të përdoren sensorë të tjerë, për shembull: TSOP4838, TSOP1736, SFH506.

3. Lidhja

Sensori ka tre priza (tre këmbë). Nëse shikoni sensorin nga ana e marrësit të sinjalit IR, siç tregohet në figurë,
  • atëherë në të majtë do të ketë një dalje në kontrollues,
  • në qendër - kontakt negativ i fuqisë (tokë),
  • dhe në të djathtë - kontakti pozitiv i fuqisë (2.7 - 5.5V).
Diagrami skematik i lidhjes Pamja e paraqitjes

4. Programi

Pasi të kemi lidhur sensorin IR, ne do të shkruajmë një program për Arduino Uno. Për ta bërë këtë, ne do të përdorim bibliotekën standarde IRremote, i cili është krijuar posaçërisht për të thjeshtuar punën me marrjen dhe transmetimin e sinjaleve IR. Duke përdorur këtë bibliotekë, ne do të marrim komanda nga telekomanda, dhe për të filluar, thjesht t'i shfaqim ato në dritaren e monitorit të portit serik. Ky program do të jetë i dobishëm për ne për të kuptuar se çfarë kodi jep secili buton. #include "IRremote.h" IRrecv irrecv(2); // tregoni pinin me të cilin është lidhur marrësi dekode_rezultatet; void setup() ( Serial.begin(9600); // vendosni shpejtësinë e portës COM irrecv.enableIRIn(); // filloni të merrni ) void loop() ( if (irrecv.decode(&results)) ( // nëse të dhënat e mbërritura Serial .println(results.value, HEX // print the data irrecv.resume( // prano komandën e mëposhtme ) ) Ngarkoje programin në Arduino. Pas kësaj, ne përpiqemi të marrim komanda nga telekomanda. Hapni monitorin e portës serike (Ctrl+Shift+M), merrni telekomandën dhe drejtojeni te sensori. Duke shtypur butona të ndryshëm, ne vëzhgojmë kodet që u korrespondojnë këtyre butonave në dritaren e monitorit. Problem me ngarkimin e programit Në disa raste, kur përpiqeni të ngarkoni një program në kontrollues, mund të shfaqet një gabim: TDK2 nuk ishte deklaruar në objektin e tij Për ta rregulluar atë, thjesht fshini dy skedarë nga dosja e bibliotekës. Le të shkojmë te eksploruesi. Shkoni te dosja ku është instaluar aplikacioni Arduino IDE (me shumë mundësi "C:\Program Files (x86)\Arduino"). Pastaj në dosjen e bibliotekës: …\Arduino\libraries\RobotIRremote, dhe fshini skedarët: IRremoteTools.cpp Dhe IRremoteTools.h. Më pas, ne rifillojmë Arduino IDE dhe përpiqemi ta ngarkojmë përsëri programin në kontrollues.

5. Kontrolloni LED duke përdorur telekomandën IR

Tani që e dimë se cilat kode korrespondojnë me butonat e telekomandës, ne përpiqemi të programojmë kontrolluesin që të ndezë dhe fikë LED kur shtypen butonat e volumit. Për ta bërë këtë, na duhen kode (mund të ndryshojnë në varësi të telekomandës):
  • FFA857 - rrit volumin;
  • FFE01F - zvogëloni volumin.
Si LED, ne përdorim LED-in e integruar në pinin nr. 13, kështu që diagrami i lidhjes do të mbetet i njëjtë. Pra, programi: #include "IRremote.h" IRrecv irrecv(2); // tregoni pinin me të cilin është lidhur marrësi decode_results results; void setup() (irrecv.enableIRIn(); // filloni marrjen ) void loop() ( if (irrecv.decode(&results)) ( // nëse të dhënat mbërritën kaloni (rezultatet.vlera) (rasti 0xFFA857: digitalWrite( 13, LARTË 0xFFE01F: digitalWrite(13, IRECV.Resume) ) Shkarkoni në Arduino; Klikoni vëll+— LED ndizet. Klikoni vol-- shkon jashtë. Tani, duke ditur se si funksionon gjithçka, ju mund të kontrolloni motorët e robotëve ose pajisje të tjera mikroelektronike shtëpiake në vend të një LED!