Arduino IR to'siq sensori. Oddiy infraqizil sensor. Arduino-ga ulanish

Ushbu sharhda biz MH-B deb nomlangan infraqizil to'siq sensori modulini ko'rib chiqamiz va sinab ko'ramiz. Modul LM393 qo'sh komparatoriga qurilgan.

Buyurtma Xitoyning Aliexpress onlayn-do'konida amalga oshirildi. Sensorning narxi ~ 20 rubl:

Tovarlar Gruziyaga “4PX” kompaniyasi tomonidan tekin yetkazib berildi Singapore Post OM Pro" standart paketida:

Modul taxtasi antistatik sumkada germetik tarzda yopilgan va polietilen bilan sivilceler bilan o'ralgan:

Doskaning bir tomonida quvvat berish va signalni olib tashlash uchun pinlar mavjud, qarama-qarshi tomonda infraqizil LED va fotodiod bir-biriga parallel ravishda o'rnatilgan bo'lib, uning mavjudligini aniqlash uchun to'siq tomon yo'naltirilishi kerak:

Barcha kontaktlar imzolangan va modulga ulanish juda oson bo'ladi:

  • VCC ta'minot kuchlanishi bilan ta'minlangan;
  • GND pin - umumiy;
  • Signal OUT pinidan chiqariladi.

Kengashning boshqa tomonida +OUT deb yozilgan, ammo bu mutlaqo to'g'ri emas va biz bu haqda keyinroq gaplashamiz:

Radioelementlardan tayyorlangan fotodiodli mikrosxema va LEDga qo'shimcha ravishda modul quyidagilarga ega:

  • quvvat ko'rsatkichi LED;
  • signal ko'rsatkichi LED;
  • LEDlar uchun ikkita 1 kOhm söndürme rezistorlari;
  • 100 ohm infraqizil LED söndürme qarshiligi
  • ikkita 10 kOhm kuchlanishli rezistorlar;
  • 10 kOhm trim qarshiligi
  • ikkita 0,1 mkF baypas kondansatkichlari;

Yuqorida aytib o'tilganidek, modul LM393 er-xotin komparatorga asoslangan. Keling, ushbu chip uchun hujjatlarni qisqacha ko'rib chiqaylik:

LM393 seriyali ikkita mustaqil aniqlikdagi kuchlanish komparatorlari bo'lib, bitta yoki bo'linish bilan ishlashga qodir. Ushbu qurilmalar bitta quvvat rejimi bilan biridan ikkinchisiga umumiy ishlashni ta'minlash uchun mo'ljallangan. 2,0 mV gacha bo'lgan kirish kuchlanishining ofset xususiyatlari ushbu qurilmani ko'plab iste'molchi, avtomobil va sanoat elektronikasi ilovalari uchun ajoyib tanlov qiladi. LM393 komparatorining xususiyatlari:

  • Keng quvvat diapazoni to'g'ridan-to'g'ri oqim yagona manba (2,0 V dan 36 V gacha);
  • Bipolyar quvvat manbai oralig'i 1,0 V dan 18 V DC gacha;
  • Besleme zo'riqishidan (0,4 mA) mustaqil bo'lgan juda past sokin oqim;
  • Umumiy rejimdagi past oqim oqimi (25 nA);
  • Past differentsial kirish oqimi (5nA);
  • Past kirish ofset kuchlanishi (maksimal 5,0 mV);
  • Differensial kirish kuchlanishi besleme kuchlanishiga teng;
  • DTL, ECL, TTL, MOS va CMOS mantiqiy darajalariga mos keladigan chiqish kuchlanishi;
  • Harorat muhit 0 ° C dan 70 ° C gacha.

Mikrosxema sakkizta pinga ega, ulardan ikkitasi umumiy (4) va ortiqcha quvvat (8), ikkita boshqa chiqish: 1 - taqqoslagich A chiqishi, 7 - solishtirgich B chiqishi. 2 va 3 pinlar mos ravishda teskari va A taqqoslagichning to'g'ridan-to'g'ri kiritilishi va mos ravishda 5 va 6 pinlari, B taqqoslagichining to'g'ridan-to'g'ri va teskari kirishlari. Shuningdek, taqqoslagichlardan birining ichki sxemasini taqdim etaman:

Diagrammadan ko'rinib turibdiki, komparator chiqishi ochiq kollektor tranzistoriga asoslangan kaskaddir.

Butun yig'ilgan modul gugurt cho'pining uzunligidan uzun emas va kichik joyga osongina joylashishi mumkin:

Keling, tekshirishga o'tamiz va buning uchun bizga kerak bo'ladi:

  1. modul pinlariga ulanish uchun ulagich;
  2. 220 Ohm qarshilikka ega bo'lgan LED uchun oqim cheklovchi qarshilik;
  3. va, albatta, modulning o'zi

Biz eng ko'p tekshiramiz oddiy tarzda, hech qanday kontrollerlarsiz va bularning barchasini quyidagi sxema bo'yicha bog'laymiz:

Modulning tavsifida aytilishicha, u 3 V dan 5 V gacha kuchlanishda ishlaydi va biz 5 V kuchlanish kuchlanishi bilan sinovdan o'tamiz. Men bir xususiyatni qayd etmoqchiman - boshida men chiqish pinining etiketli ekanligini aytdim. +OUT va bu mutlaqo to'g'ri emas. Modul o'rnatilgan komparatorning ichki sxemasidan ko'rinib turibdiki, chiqish tranzistorining kollektori hech qanday joyga ulanmagan va unda "+" bo'lishi mumkin emas, garchi modulda 10 kOhm egilish qarshiligi o'rnatilgan bo'lsa ham. chiqish va ijobiy quvvat manbai o'rtasidagi plata, lekin ba'zi hollarda bu etarli bo'lmasligi mumkin va bu holda chiqish teskari ishlaydi: sensor ishga tushirilganda, chiqish mantiqiy "0" bo'ladi. Ba'zi hunarmandchilikni loyihalashda buni hisobga olish kerak. Avvaliga men hali ham taxtadagi yozuvga ishonardim va LEDni chiqish va umumiy sim o'rtasida uladim, lekin modul oldida to'siqsiz quvvat yoqilganda va ish paytida to'siq paydo bo'lganda LED darhol porlay boshladi. 3 sm ichida olib kelindi, aksincha chiqib ketdi:

Chiqish va quvvat manbai ijobiy o'rtasida LEDni ulashim kerak edi. Biz yig'amiz to'g'ri sxema va ta'minot kuchlanishini qo'llang:

Ko'ryapmizki, to'siqsiz LED yonmaydi.

Biz oqimni o'lchaymiz va dam olish rejimida to'siqsiz oqim iste'moli 36 mA ekanligini ko'ramiz:

Ishga tushgandan so'ng, signal mavjudligini ko'rsatadigan LED yonadi va oqim iste'moli 47 mA ga oshadi:

Kesish rezistorining qarshiligini o'zgartirib, men sensorning barqaror minimal va maksimal mumkin bo'lgan javob masofasini o'lchadim. Kesish rezistorining o'qi soat sohasi farqli ravishda aylantirilsa, javob masofasi pasayadi va minimal mumkin bo'lgan masofa 1 sm ni tashkil qiladi:

Kesish qarshiligining o'qi soat yo'nalishi bo'yicha aylantirilsa, sensorning javob masofasi ortadi va sensorning maksimal ishonchli javob masofasi taxminan 12 sm edi.

YL-63 (FC-51) robot avtomobillari uchun IR to'siq sensori
Aqlli avtomobil to'siqlaridan qochish sensori moduli infraqizil quvur moduli aks ettiruvchi fotoelektrik sensor

YL-63 kontaktsiz sensori deyarli noldan belgilangan chegaragacha bo'lgan masofadagi ob'ektlarni ular bilan bevosita aloqa qilmasdan aniqlaydi. Turli ishlab chiqaruvchilar bir xil qurilmaga turli nomlar bering. Ba'zilar taqdim etilgan sensorni YL-63, boshqalari FC-51 deb atashadi. Sensor ob'ektgacha bo'lgan masofa haqida ma'lumot talab qilinmaganda foydalanish uchun mo'ljallangan, faqat uning mavjudligi yoki yo'qligi haqida. Maksimal aniqlash masofasi sozlamaga bog'liq. YL-63 sensori diskret chiqishga ega. Bu optik sensor boshqariladigan fazoda aks ettirilgan infraqizil (IR) nurlanish intensivligining oshishini qayd etish. Aks ettirilgan nurlanishning o'zgarishi mexanizmlarning harakatlanuvchi qismlari yoki atrofdagi ob'ektlarning harakati tufayli sodir bo'ladi. YL-63 harakatlanuvchi ob'ektga joylashtirilishi mumkin, bu uning atrofdagi kosmosdagi o'rnini aniqlaydi. U g'ildirakli va izli avtomatik transport vositalarini harakatlantirishda to'siqlarni aniqlash uchun ishlatiladi. Sensor boshqaruv va avtomatlashtirish tizimlari sohasida talabalar uchun ko'rgazmali qo'llanmaning bir qismiga aylanishi mumkin.
Qurilmada IQ nurlanish manbai va fotodetektor mavjud. Radiatsiya to'siqdan aks ettiriladi va fotodetektor tomonidan qayd etiladi. U LM393 komparatoriga signal uzatadi, u fotodetektorning ma'lum darajada yoritilishida ishlash uchun tuzilgan. Taqqoslovchi YL-63 sensorining chiqishida past yoki yuqori mantiqiy darajada signal hosil qiladi.

YL-63 optik sensori diffuziya sinfiga tegishli. Datchiklar guruhining nomi radiatsiyani ko'p yo'nalishlarda aks ettirish uchun sensorning asosiy ishlashi - aks ettiruvchi sirt bilan nurlanishning tarqalishi tufayli paydo bo'lgan.
Qurilmaning ishlashi fotodetektorning yoritilishini aniqlashdan iborat. YL-63 aks ettirilgan nurlanishni aniqlaganligi sababli, masofani o'lchashda turli xil materiallardan yasalgan ob'ektlarning sirtlarining turli xil aks etishi tufayli yuzaga keladigan xatolik mavjud.

dan aks ettirish uchun masofa koeffitsientlari turli materiallar.

Oq mat qog'oz 1
Paxta mato 0,6
Kulrang polivinilxlorid 0,57
Daraxt
xira rangli 0,73
xom 0,4
Plastik
oq 0,7
qora 0.22
Qora kauchuk 0,2-0,15
Cho'tkasi alyuminiy 1,2
Zanglamaydigan po'latdan parlatilgan 2,3

Taxometrni sezish moslamasini ishlatish uchun turli materiallardan nurlanishning turli xil aks etishi va yutilishi qo'llaniladi. Faraz qilaylik, bizda bor. Dvigatel milining daqiqasiga aylanishlar sonini bilishingiz kerak. YL-63 bizga yordam beradi. Bir parcha oq qog'ozni volanga yopishtirish kifoya, sensor nurini volanga yo'naltirish va biz takometrni sezish moslamasini olamiz.
Har xil shovqinlarning ta'sirini kamaytirish uchun ishlov beruvchi mikrokontroller sensordan olingan ma'lumotlarni qisqa vaqt ichida to'playdi va o'rtacha hisoblashni amalga oshiradi. YL-63 sensori mikrokontrollerga ega bo'lmagan qurilmalarda ishlashi mumkin.

Variantlar

Ta'minot kuchlanishi 3,3-5 V
Aniqlash masofasi aks ettiruvchi oq mat tekislikka 0,02-0,3 m
Aniqlash burchagi 35 °
O'lchamlari 43 x 16 x 7 mm

Kontaktlar

YL-63 to'siq sensori, shuningdek, FC-51 sifatida ham tanilgan, uch pinli ulagichli vilkaga ega:
VCC - quvvat manbai,
GND - umumiy sim,
OUT - chiqish.

Ko'rsatkichlar

Modul taxtasida ikkita ko'rsatkich mavjud. Yashil yonish quvvat yoqilganligini bildiradi. Aniqlash zonasida biror narsa bo'lsa, qizil LED yonadi.

Sensor masofasini o'rnatish

Qurilmani sozlashni aniqlash indikatori osonlashtiradi. Bu sizga YL-63 aka FC-51 ni real sharoitda ishlash uchun sozlash imkonini beradi. Sensorning sezgirligini o'rnatish taxtaga o'rnatilgan o'zgaruvchan qarshilik yordamida amalga oshiriladi. To'siq sensorning fotosurat qurilmalaridan kerakli masofaga o'rnatiladi. YL-63 modul platasida o'zgaruvchan rezistorning harakatlanuvchi kontaktini aylantirib, siz javob masofasini o'rnatasiz va qizil LEDni yoqasiz. Keyin sezish masofasi aks ettiruvchi ob'ektni harakatlantirish orqali tekshiriladi. Sozlama kamida uch marta takrorlanadi.

Arduino signallarini qayta ishlash uchun dasturYL-63

Sensor signali Arduino-ning 12-piniga beriladi.

O'rnatishni bekor qilish() (
Serial.begin(9600);
pinMode (12, INPUT);
}
void loop() (
Serial.print("Signal: ");
Serial.println(digitalRead(12));
kechikish (500);
}

YL-63 to'siq sensorining umumiy ko'rinishi

YL-63 (yoki FC-51) raqamli infraqizil to'siqlardan qochish sensori (1-rasm) ob'ekt mavjudligini aniqlash zarur bo'lganda ishlatiladi, lekin ob'ektga aniq masofani bilish shart emas. Sensor quyidagilardan iborat infraqizil emitent, va fotodetektor. IQ manbai infraqizil to'lqinlarni chiqaradi, ular to'siqdan aks ettiriladi va fotodetektor tomonidan qayd etiladi. Sensor noldan belgilangan chegaragacha bo'lgan masofadagi to'siqlarni aniqlaydi. U LM393 komparatori asosida qurilgan bo'lib, u kuchlanishni printsip bo'yicha chiqaradi: to'siq aniqlandi - mantiqiy daraja YUKOR, aniqlanmagan - mantiqiy daraja LOW, bu holat sensorda joylashgan qizil LED bilan ham ko'rsatilgan. Chegara qiymati sensor sozlamalariga bog'liq va modulga o'rnatilgan potansiyometr yordamida o'rnatiladi. Quvvatni ko'rsatish uchun sensorga yashil LED o'rnatilgan. Sensor robototexnikada g'ildirakli yoki izli robotlarni harakatlantirganda to'siqlarni aniqlash uchun ishlatiladi.

YL-63 to'siq sensorining texnik xususiyatlari

  • Model: YL-63 (yoki FC-51)
  • ta'minot kuchlanishi: 3,3-5 V
  • Sensor turi: diffuziya
  • Taqqoslovchi: LM393
  • to'siqlarni aniqlash masofasi: 2 - 30 sm
  • samarali to'siqni aniqlash burchagi: 35 °
  • sezgirlikni o'zgartirish uchun potansiyometr
  • Quvvat LED
  • ish ko'rsatkichi LED
  • o'lchamlari: 43 x 16 x 7 mm

YL-63-ni Arduino-ga ulash

Modulda 3 ta chiqish mavjud:
  • VCC - quvvat manbai 3-5 V;
  • GND - tuproq;
  • OUT - raqamli chiqish.
Sensorni Arduino platasiga ulaymiz (1-rasmdagi ulanish diagrammasi) va tovushli signal bilan to'siq mavjudligini ko'rsatadigan oddiy eskizni yozamiz. Keling, 1-listdagi eskizni Arduino platasiga yuklaymiz va sensorning to'siqlarga qanday munosabatda bo'lishini ko'rib chiqamiz (2-rasmga qarang).

Shakl 1. YL-63 sensorini Arduino platasiga ulash uchun ulanish diagrammasi

Keling, 1-listdagi eskizni Arduino platasiga yuklaymiz va sensorning to'siqlarga qanday munosabatda bo'lishini ko'rib chiqamiz (3-rasmga qarang). Ro'yxat 1 // YL-63 to'siq sensorini ko'rib chiqish uchun eskiz // http:// http://3d-diy.ru // sensor chiqishini ulash uchun kontakt #define PIN_YL63 5 // Y63 sensori ma'lumotlari #define barrier digitalRead(PIN_YL63) void setup() ( // serial portni ishga tushirish Serial.begin(9600); // sensor ulanish pinini INTPUT pinMode(PIN_YL63,INTPUT); ) void loop() ( if (to'siq ==) 1) ( Serial.println ("BARRIER!!!"); // To'siqlarni aniqlash zonasi esa (to'siq == 1) // Chiqish kutilmoqda (;) ) else ( Serial.println("to'siq emas"); // To'siqni aniqlash zonasidan tashqarida (to'siq == 1) // Kirish kutilmoqda (;) ) )

Shakl 2. Seriyali port monitor chiqishi

Potensiometrdan foydalanib, chegara qiymatini o'rnatish bilan tajriba o'tkazamiz.

Foydalanish misoli

Keling, mashhur o'ziyurar robot platformasi - mobil robot bortida YL-63 sensoridan foydalanish misolini ko'rib chiqaylik. Arduino asoslangan(3-bandga qarang).

Shakl 3. Robotik platforma – Arduino asosidagi mobil robot

Keling, labirintni bosib o'tayotgan robotning eskizini yarataylik. Agar robotni labirintda harakatlantirganda, uning bir tomoniga (chap yoki o'ngga) yopishib qolsangiz, u holda chiqishga albatta erishiladi (4-rasm).

Shakl 4. Labirintni bosib o'tuvchi robotning sxemasi.

Keling, robotning old bamperiga uchta to'siq sensori o'rnatamiz, ikkitasi oldinga, biri o'ngga qaraydi (5-rasmga qarang).

Ikki old datchikning mavjudligi olddagi to'siqlarni aniqlash sifatini yaxshilaydi, chunki bitta sensor butun old maydonni qamrab olmaydi.

Shakl 5. To'siqlar datchiklarini Arduino asosidagi mobil robotga ulash.

Eskizda biz sensorlarning holatini tekshiramiz va olingan ma'lumotlarga qarab harakat haqida qaror qabul qilinadi. Datchiklar Arduino 2, 12, 13 pinlariga ulangan. // To'siq sensorlari ulangan portlar raqamlari. const int Front1 = 2, Front2 = 12, O'ng = 13; Keling, Arduino IDE-da yangi eskiz yarataylik, unga Listing 2-dagi kodni qo'shamiz va eskizni Arduino taxtasiga yuklaymiz. Listing 2 // Ikki dvigatelning holatini saqlash uchun o'zgaruvchilarni e'lon qilish. int motor_L1, motor_L2, kirish_L; int motor_R1, motor_R2, kirish_R; // Vaqt konstantalari burilish, burilish, oldinga siljish vaqtini // millisekundlarda aniq belgilash uchun ishlatiladi. const int time_90 = 390; // To'siq sensorlari ulangan portlar soni. const int Front1 = 2, Front2 = 12, O'ng = 13; //================================================ ======= void setup() ( // Arduino pin raqamlarini o'zgaruvchilarga kiriting. // Mashinaning chap va o'ng motorlari uchun. setup_motor_system(3, 4, 11, 7, 8, 10); // pinMode(Front1, INPUT); pinMode(O'ngda, INPUT); void loop() ( mantiqiy d_Front1, d_Front2, d_Right; d_Front1 = digitalRead(Front1); d_Front2 = digitalRead(Front2); d_Right = digitalRead(o'ng); // Agar hech qanday sensor ishga tushmagan bo'lsa. if (d_Front1 && d_Front) //O'ng g'ildiraklarni sekinlashtiring setspeed(255, 15);//o'ngga buriling ) else ( //Agar old datchiklardan biri ishga tushirilsa va o'ngdagisi ishga tushmasa. d_Front1) ||. (!d_Front2) ) ( //Barcha g'ildiraklar uchun maksimal quvvat. setspeed(255, 255); // chapga 90 daraja buriling. chap(); delay(time_90 / 5); ) else ( // Agar o'ng sensor ishga tushirildi // Chap g'ildiraklarni sekinlashtiring (15, 255);//chapga buriling ) ) // Dvigatelni ishga tushirish funksiyasi. void setup_motor_system(int L1, int L2, int iL, int R1, int R2, int iR) ( // Arduino kontaktlari (pin) raqamlarini o'zgaruvchilarga kiriting. motor_L1 = L1; motor_L2 = L2; input_L = iL; // Mashinaning chap va o'ng motorlari uchun motor_R2 = iR pinMode(motor_R2, OUTPUT); input_R, OUTPUT); // Funktsiya vosita tezligini o'rnatadi. void setspeed(int LeftSpeed, int RightSpeed) ( // Musbat chekka kengligini 0 dan 255 gacha o'rnating. analogWrite(input_L, LeftSpeed); analogWrite(input_R, RightSpeed); // Dvigatel qanchalik katta bo'lsa, shunchalik intensiv ishlaydi. ) // Chap g'ildiraklar qulflangan holda chapga buriling. void forward() ( // Chap g'ildiraklar oldinga buriladi. digitalWrite(motor_L1, HIGH); digitalWrite(motor_L2, LOW); // O'ng g'ildiraklar oldinga aylanadi. digitalWrite(motor_R1, HIGH); digitalWrite(motor_R2, LOW); ) // Chapga burilish. void left() ( // chap g'ildiraklar orqaga buriladi digitalWrite(motor_L1, LOW); digitalWrite(motor_L2, HIGH); // o'ng g'ildiraklar aylanadi. digitalWrite(motor_R1, HIGH); digitalWrite(motor_R2, LOW); ) Robotni ishga tushiring labirint va uning labirintda qanday harakat qilishini tomosha qiling.

Tez-tez so'raladigan savollar FAQ

1 . Yashil LED yonmaydi
  • Sensor to'g'ri ulanganligini tekshiring.
2. Sensor ma'lum masofadagi to'siqni aniqlamaydi
  • Potansiyometrdan foydalanib, sensorning javob chegarasini tanlang.

Hayday oladigan, ucha oladigan yoki suzadigan har bir robot o'z yo'lidagi to'siqlarni ko'ra olishi kerak. Robot buni amalga oshirishi uchun unga tegishli sensorlar kerak. IN Ingliz adabiyoti bunday qurilmalar deyiladi yaqinlik sensori, biz ularni to'siq sensori deb ataymiz. Ushbu darsda biz aks ettirish printsipi asosida ishlaydigan eng keng tarqalgan to'siq sensorlaridan birini ko'rib chiqamiz. U juda sodda tarzda yaratilgan. Sensorda yo'nalishli yorug'lik manbai va yorug'lik detektori mavjud. Manba ko'pincha linzali infraqizil LED, detektor esa fotodiod yoki fototransistordir. Sensordagi LED doimo yonib turadi va oldinga yo'nalishda tor yorug'lik nurini chiqaradi. Agar sensor oldida to'siq bo'lsa (A-rasm), u holda manbadan aks ettirilgan yorug'lik detektorga uriladi va sensorning chiqishida ijobiy impuls paydo bo'ladi. Aks holda, hech qanday to'siq bo'lmasa, sensor jim bo'ladi (B-rasm). Uchinchi variant bor, to'siq bo'lsa, lekin yorug'lik undan aks etmaydi! B rasmda aynan shunday holat ko'rsatilgan. Ma’lum bo‘lishicha, robot mat qora sirtni ko‘rmaydi.

1. Ulanish

Biz eng oddiy sensorni raqamli chiqish bilan ulaymiz. Terminallarga ulanishning sxematik diagrammasi Arduino Uno:
Tartib ko'rinishi

2. Sezuvchanlikni sozlash

Ma'lumki, bizning atrofimizdagi infraqizil nurlanishning ko'plab manbalari mavjud, jumladan lampalar va quyosh. Sensorning fotosensitiv elementi bu fon nurlanishini aniqlaydi va noto'g'ri signal berishi mumkin. Boshqacha qilib aytganda, to'siq sensori hech qanday to'siq bo'lmaganda ishlashi mumkin. Ushbu muammoni hal qilish uchun sensor sezgirlikni sozlash qobiliyatiga ega, shunda faqat etarli quvvatdagi yorug'lik seziladi. Bu, odatda, ikki kuchlanish darajasini solishtirish imkonini beruvchi komparator, elektron qurilma yordamida amalga oshiriladi. Bir kuchlanish komparatorga fotodioddan, ikkinchisi esa potansiyometrga asoslangan kuchlanish bo'luvchidan beriladi. Biz ikkinchi kuchlanishni chaqiramiz chegara. Endi sensor faqat fotodioddagi kuchlanish biz o'rnatganimizdan kattaroq bo'lganda ijobiy signal beradi. Chegara kuchlanishini sozlash uchun bizga tirqishli tornavida (tekis boshli tornavida sifatida ham tanilgan) kerak bo'ladi. Ushbu protsedurada bizga yashil holat LED yorug'ligi ham yordam beradi, u sensor infraqizil nurning etarli darajasini aniqlaganida yonadi. O'rnatish algoritmi uch bosqichdan iborat:
  • biz sensorni u ishlaydigan yorug'lik sharoitlariga joylashtiramiz;
  • sensorni quvvat manbaiga ulang va undagi qizil LED yonadi;
  • datchik oldidagi barcha to'siqlarni olib tashlang va yashil holat LED yorug'ligi o'chguncha potansiyometrni aylantiring.
Tekshirish uchun biz kaftimizni sensorga keltiramiz va ma'lum masofada yashil LED yonadi. Agar qo'limizni olib tashlasak, LED o'chadi. Sensor to'siqni aniqlagan masofa fon yoritilishi darajasiga, sezgirlik sozlamalariga va yoqilganligiga bog'liq. to'g'ri joylashuv sensordagi fotodiod va LED. Ular bir-biriga qat'iy parallel ravishda joylashtirilishi kerak. Sensor to'g'ri sozlangan bo'lsa, endi dasturni yaratishni boshlaylik.

3. Dastur

Misol uchun, biz 13-sonli standart LEDni yoqamiz va o'chiramiz Arduino Uno, sensor ko'rsatkichlariga qarab. Raqamli sensordan foydalanganda dastur tugmalar bilan ishlashda bo'lgani kabi bo'ladi. Loopning har bir iteratsiyasida halqa biz 2-pindagi qiymatni o'qiymiz va keyin bu qiymatni daraja bilan solishtiramiz YUQORI. Agar qiymat bo'lsa YUQORI, bu sensorning to'siqni ko'rishini anglatadi va biz 13-pinda LEDni yoqamiz. Aks holda, biz LEDni o'chirib qo'yamiz. const int prx_pin = 2; const int led_pin = 13; bayt v; void setup() ( pinMode(prx_pin, INPUT); pinMode(led_pin, OUTPUT); ) void loop() ( v = digitalRead(prx_pin); if(v == HIGH) digitalWrite(led_pin, HIGH); other digitalWrite(led_pin) , LOW);

4. Foydalanish misoli

Keling, raqamli sensorni o'z maqsadi uchun ishlatishga harakat qilaylik. Keling, ikki g'ildirakli robotni chap va o'ngda joylashgan ikkita datchikning o'qishlariga javob berishini ta'minlaylik. Keling, to'siq aniqlanganda, robot undan teskari yo'nalishda burilib, keyin oldinga harakat qilishda davom etishiga ishonch hosil qilaylik. Keling, dasturni protsedura sxemasi shaklida tuzamiz halqa.

Vazifalar

Agar hamma narsa yaxshi bo'lsa, robot bilan yana bir nechta vazifalarni bajarishga harakat qiling.
  1. Robot stol chetini sezishi uchun to‘siq datchiklarini pastga yo‘naltiring. Robotning stoldan yiqilishining oldini oluvchi dastur yozing.
  2. Sensorlarni yana pastga yo'naltiring, lekin bu safar boshqa maqsadda. Biz bilib olganimizdek, sensor qora sirtni oqdan ajrata oladi. Robot kuzatuvchi (aka LineFollower) yaratish uchun ushbu xususiyatdan foydalaning.
  3. Datchiklarni yon tomonlarga yo'naltiring va robotni devor bo'ylab harakatlantiring.

Xulosa

Keyingi darsda biz deyarli bir xil tarzda ishlab chiqilgan, ammo qora va oq sirtlarni aniqlash uchun ko'proq mos keladigan sensor bilan tanishamiz. Keling, yanada rivojlangan robot-trekerni yaratish uchun raqamli emas, balki sensordan analog signalni o'qishga harakat qilaylik.

Qurilma oddiy raqamli to'siq sensori bo'lib, aks ettirilgan infraqizil nurlanish bilan boshqariladi. Ushbu sensor Aliexpress-da sotib olingan. Operatsion printsipi yaqinda ko'rib chiqilgan sxemaga o'xshaydi


Infraqizil sensor Aliga sotib olingan to'siqlar

Dizayn va parametrlar

Strukturaviy ravishda, sensor bosilgan elektron plata 31 x 14 mm, taxtada bitta o'rnatish teshigi mavjud.


Infraqizil to'siq sensori - bosilgan elektron plata

Sensorning og'irligi 2,7 g ni tashkil qiladi, elektr ta'minoti va ma'lumot uzatish uchun sensorda uch pinli ulagich mavjud, uning pinlari belgilangan.


Uch pinli sensorli ulanish ulagichi
  • Qurilma 3,3 dan 5 V gacha bo'lgan oraliqda doimiy kuchlanish bilan quvvatlanadi, oqim iste'moli 3,3 V kuchlanish kuchlanishida 25 mA va 5 V kuchlanishda 40 mA ni tashkil qiladi.

Sensorda infraqizil LED va fotodetektor mavjud. To'siqning mavjudligi aks ettirilgan infraqizil nurlanishning intensivligi bilan belgilanadi. Sensorli platadagi kesish rezistoridan foydalanib, siz qurilmaning kerakli sezgirligini o'rnatishingiz mumkin. Ishlab chiqaruvchiga ko'ra, sensor 2 dan 30 sm gacha bo'lgan to'siqlarga javob beradi, sensorning ko'rish burchagi 35 daraja. Muallif sensorni 3-8 sm oralig'idagi to'siqlarga moslashtira oldi, garchi muammo faqat bitta sensor sinovdan o'tgan bo'lishi mumkin va bundan tashqari, sensorning ko'rish burchagi haqiqatan ham juda keng. Buni ham esdan chiqarmaslik kerak turli sirtlar aks ettirish infraqizil nurlanish turli yo'llar bilan, bu diapazondagi ko'proq "porloq" sirt qorong'udan ko'ra uzoqroq masofadan aniqlanadi. Qanday bo'lmasin, bu sensor "mele quroli" dir.


IR to'siq sensori - taxta o'lchami

Sensorning ko'rish maydonida to'siq paydo bo'lganda, uning axborot chiqishida mantiqiy nol signali o'rnatiladi. Agar ko'rish sohasida hech qanday to'siq bo'lmasa, u holda chiqish signali mantiqiydir. Sensor platasida ikkita LED mavjud, biri quvvat indikatori, ikkinchisi esa ko'rish zonasida to'siq paydo bo'lganda yonib turadigan sensorning javob indikatori.

Arduino-ga ulanish

Sotuvchining so'zlariga ko'ra, sensor Arduino uchun mo'l-ko'lligini hisobga olgan holda optimallashtirilgan oddiy qurilma, ko'rsatma va belgilash, bunga osongina rozi bo'lish mumkin.


Arduino bilan IR to'siq sensori

Sensorning Arduino platformasi bilan o'zaro ta'siriga misol uchun Arduino UNO platasining raqamli porti 12 ga ulangan tugmani bosish orqali 13 raqamli portga ulangan LEDni yorituvchi dasturni olishingiz mumkin. Dastur robocraft.ru saytidan olingan

/*
* LED tugmasi bilan
*/

int ledPin = 13; // LED
int btnPin = 12; // tugma
int val=0;

bekor o'rnatish()
{
pinMode (ledPin, OUTPUT); // bu chiqish - LED
pinMode (btnPin, INPUT); // va bu kiritish tugmasi
Serial.begin(9600); // biz COM portiga yozamiz
}

void loop()
{
val = digitalRead(btnPin); // tugma holatini bilib oling
if(val==HIGH) // tugmasi bosilgan
{
digitalWrite (ledPin, HIGH); // LEDni yoqing
Serial.println("H");
}
Aks holda // tugma bosilmagan
{
digitalWrite (ledPin, LOW); // LEDni o'chiring
Serial.println("L");
}
kechikish (100);
}

Bunday holda, tugma o'rniga sensor ulanadi. Dasturni mikrokontroller xotirasiga yuklagandan so'ng siz sensorning turli ish rejimlari bilan tajriba o'tkazishingiz mumkin.

Sotib olish to'g'risida xulosa

Umuman olganda, sensorli boshqaruv va robotni yo'naltirish tizimlari uchun yaxshi arzon sensor. Ikkinchi holda, robot to'siq bilan aloqa qilganda ishga tushiriladigan kalitlarni cheklash uchun alternativ yoki qo'shimcha bo'lishi mumkin. Pulga arziydi. Denev