Mundarija:
Video: Arduino asosidagi pulsli indüksiyon detektori - LC -Trap: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Faqat bitta besleme zo'riqishida bo'lgan oddiy Ardino Pulse Induction metall detektori uchun boshqa g'oyalarni izlayotganda, men Teemoning bosh sahifasini uchratdim:
www.digiwood.ee/8-electronic-projects/2-metal-detector-circuit
U LC-Trap printsipidan foydalangan holda oddiy impulsli indüksiyon detektorini yaratdi. Shunga o'xshash sxemalar bu erda Instructable by TechKiwiGadgets -da joylashtirilgan. Faqat Teemo sxemasi PIC mikrokontrollerining ichki taqqoslagichlaridan foydalanadi, shuning uchun tashqi komponentlar kamroq bo'ladi.
Shunday qilib, men ushbu sxemada PIC-Controller o'rniga Arduino-dan foydalanishga va men qanchalik uzoqqa bora olishimni ko'rib chiqishga majbur bo'ldim.
1 -qadam: sxematik
Arduino sxemasi biroz murakkabroq, chunki Arduino ichki analog signalni komparatorning kirishiga yo'naltirishga ruxsat bermaydi. Bu oddiy kuchlanish o'lchagichi uchun ikkita komponentni qo'shadi. Bu 12 ta tashqi komponentli dizaynga olib keladi (karnay va 16x2 LCD), Flip Coil dizaynining 9tasi bilan taqqoslaganda.
Sxemaning ishlash printsipi Teemo veb -saytida juda yaxshi tushuntirilgan. Asosan lasan quvvatlanadi va keyin o'chadi. O'chirgandan so'ng, rulon va kondensator parallel ravishda namlangan tebranish hosil qiladi. Tebranishning chastotasi va parchalanishiga rulon yaqinidagi metall ta'sir qiladi. O'chirish haqida batafsil ma'lumot olish uchun Teemo yoki TechKiwi sahifasini qarang.
Flip Coil Pulse Induksion detektorida bo'lgani kabi, men ichki taqqoslagichdan va rulondan signal olish uchun uzilishni ishga tushirish imkoniyatidan foydalanaman.
Bu holda men bir nechta uzilishlarni olaman, chunki kuchlanish taqqoslagichda o'rnatilgan mos yozuvlar kuchlanishining atrofida tebranadi. Tebranish oxirida sargardagi kuchlanish 5V atrofida bo'ladi, lekin aniq emas. Taxminan 4,9 voltsli kuchlanishni olish uchun men 200 Ohm va 10k Ohmli kuchlanish o'lchagichni tanladim
Sxemalarning murakkabligini kamaytirish uchun men D4 va D5 dan GND (10k rezistor uchun) va 5V (220 Ohm qarshilik uchun) bilan ta'minladim. Pim detektor ishga tushganda o'rnatiladi.
Ushbu versiyada men Arduino asosidagi metall detektorini qanday dasturlashda tasvirlangan ovoz balandligi boshqariladigan ko'p tonna apparati yordamida karnay aloqasini qo'shdim. Bu maqsad xususiyatlarini farqlashga, shuningdek signal kuchini his qilishga imkon beradi. Karnay 5 pinli qo'shimcha sarlavhaga ulanishi mumkin. Qolgan 3 ta sarlavha tugmachalari tugmalar uchun ishlatiladi (amalga oshiriladi).
2 -qadam: dasturlash
Endi sxema ishlab chiqilgan va prototip qurilgan bo'lsa, metallni aniqlash uchun mos yondashuvni topish vaqti keldi.
1. Pulslarni hisoblash
Tebranish pulslarini to'liq parchalanmaguncha hisoblash - bu bitta fikr.
Agar rulon yaqinida metall bo'lsa, tebranish miqdori kamayadi. Bunday holda, taqqoslagichning mos yozuvlar kuchlanishi oxirgi puls hali ham o'lchanmaydigan darajaga o'rnatilishi kerak. Agar biror narsa aniqlansa, bu puls darhol yo'qoladi. Bu biroz muammoli edi.
Har bir tebranish to'lqini ikkita uzilishni hosil qiladi. Biri pastga, ikkinchisi orqaga. Yo'naltiruvchi kuchlanishni tebranish to'lqinining tepasiga to'g'ri o'rnatish uchun pastga va yuqoriga ko'tarilish orasidagi vaqt iloji boricha qisqa bo'lishi kerak (rasmga qarang). Afsuski, bu erda Arduino muhitining yuklanishi muammolarni keltirib chiqaradi.
Har bir uzilish tetiği ushbu kodni chaqiradi:
ISR (ANALOG_COMP_vect) {
Toggle1 = Toggle0 // oxirgi qiymatni saqlash Toggle0 = TCNT1; // yangi qiymatni oling}
Bu kod biroz vaqt talab etadi (agar men to'g'ri eslasam, taxminan 78 ta ko'rsatma tsikli 16 MGts da 5 mikrosaniyadir). Shunday qilib, ikkita impulslar orasidagi minimal aniqlanadigan masofa - bu kodni talab qiladigan vaqt, agar ikkita tetik o'rtasidagi vaqt qisqarsa (rasmga qarang), u aniqlanmaydi, chunki kod ikkinchi uzilishni aniqlashdan oldin to'liq bajariladi.
Bu sezuvchanlikning yo'qolishiga olib keladi. Shu bilan birga, men tebranishlarning susayishi har qanday tashqi ta'sirlarga juda sezgir ekanligini payqadim, shuning uchun bu yondashuvni biroz qiyinlashtirdi.
2. Chastotani o'lchash
Metallni aniqlashning yana bir usuli - tebranish chastotasini o'lchash. Bu tebranishning susayishini o'lchash bilan solishtirganda katta afzalliklarga ega, chunki chastotaning o'zgarishi metalni kamsitish imkonini beradi. Agar g'altakning yonida qora materiallar bo'lsa, chastota sekinlashadi, lasan yonida qimmatbaho metallar bo'lsa, chastota oshadi.
Chastotani o'lchashning eng oson usuli, rulonlarning tebranishi boshlanganidan keyin pulslar miqdorini o'lchashdir. Boshlanish va oxirgi zarba o'rtasidagi vaqt oralig'i o'lchangan impulslarning umumiy miqdoriga bo'linadi. Afsuski, so'nggi tebranishlar nosimmetrik emas. Metallning mavjudligi ham tebranishning parchalanishiga ta'sir qilgani uchun oxirgi tebranishlar ham nosimmetrik bo'lib, o'qishni talqin qilish qiyin. Rasmda bu 1 dan 1 gacha va 2 dan 2 gacha kesishgan holda ko'rsatilgan.
Shunday qilib, chastotani o'lchash uchun oldingi impulslardan foydalanish yaxshiroqdir. Qizig'i shundaki, men sinab ko'rdim, ba'zi pulslar boshqalarga qaraganda sezgirroq. Ma'lumot olish uchun tebranishlarning 2/3 qismi yaxshi joy.
Ma'lumotlarni qayta ishlash
Bobinning vaqtini bajarish uchun impuls () funktsiyasini chaqiradigan loop () ga asoslangan dastlabki kod. Natijalar yomon bo'lmasa -da, men vaqtni yaxshilashni xohladim. Buning uchun men taymerga asoslangan kodni yaratdim, buning natijasida Arduino asosidagi metall detektorini qanday dasturlash mumkinligi alohida ko'rsatiladi. Bu yo'riqnoma vaqtni, ma'lumotlarni uzilishining LCD displeyini va boshqalarni batafsil tushuntiradi
1. LCD displey
Birinchi yondashuv 10 ta impulsni o'lchash, so'ngra LCD displeyda qiymatlarni ko'rsatish edi. Ma'lum bo'lishicha, I2C ma'lumot uzatish juda sekin bo'lgan, men pulsga faqat bitta belgini yangilash uchun kodni o'zgartirdim.
2. Minimal qiymatli yondashuv
O'qishning barqarorligini oshirish uchun men o'lchangan ma'lumotni yaxshiroq his qilish uchun ketma -ket chiqish tartibini yozdim. Ko'rinib turibdiki, o'qishlarning aksariyati biroz barqaror bo'lsa -da, ba'zilari barqaror emas edi! "Xuddi shu" tebranish pulsining ba'zi o'qishlari bir -biridan shunchalik uzoq ediki, bu chastotadagi o'zgarishlarni tahlil qilishning har bir yondashuvini buzadi.
Buni qoplash uchun men "chegara" yaratdim, uning ichida qiymat ishonchli edi. I. e. qiymatlar kutilgan qiymatdan 35 taymer1 tsiklidan oshganda, bu qiymatlarga e'tibor berilmadi ("Arduino asosidagi metall detektorini qanday dasturlash" yo'riqnomasida batafsil tushuntirilgan)
Bu yondashuv juda barqaror ekanligini isbotladi.
3. Voltaj
Teemoning asl dizayni 5 voltdan pastda ishlaydi. Mening taxminlarim "ko'proq volt = ko'proq kuch = sezuvchanlik" bo'lgani uchun, men boshida qurilmani 12V bilan quvvatladim. Bu MOSFETni isitishga olib keldi. Bu isitish natijasida o'lchov qiymatlarining umumiy siljishiga olib keldi, bu esa detektorni tez-tez qayta muvozanatlashiga olib keldi. Voltajni 5V ga pasaytirish orqali MOSFETning issiqlik hosil bo'lishini o'qishlarning deyarli siljishi kuzatilmaydigan darajaga tushirish mumkin edi. Bu sxemani yanada soddalashtirdi, chunki Arduino bortidagi kuchlanish regulyatori endi kerak emas edi.
MOSFET uchun men dastlab IRL540 ni tanladim. Bu MOSFET mantiqiy darajaga mos keladi, lekin maksimal kuchlanish darajasi 100V ga teng. Men 200 V darajali IRL640 -ga yaxshiroq ishlashga umid qilgandim. Afsuski, natijalar bir xil edi. Shunday qilib, bu ishni IRL540 yoki IRL640 bajaradi.
3 -qadam: Yakuniy natijalar
Detektorning afzalligi shundaki, u qimmatbaho va qora materiallarni ajratib turadi. Kamchilik shundaki, bu oddiy sxemaga nisbatan sezgirlik unchalik yaxshi emas. Ishlashni taqqoslash uchun men Flip-Coil detektori bilan bir xil ma'lumotlardan foydalanardim. Ehtimol, kimdir aniq belgilash uchun yaxshi, lekin haqiqiy qidirish umidsizlikka uchraydi.
Bu erda PIC tekshirgichi bo'lgan original dizayn sezgirroq bo'lishi mumkin, chunki u 16 MGts o'rniga 32 MGts chastotada siljishlarni aniqlash uchun yuqori aniqlikni beradi.
Natijalarga 48 mm @ 100 mm bo'lgan burilish yordamida erishildi.
Har doimgidek, fikr -mulohaza uchun ochiq
Tavsiya:
LDR asosidagi yorug'lik sensori/detektori: 3 qadam
LDR asosidagi yorug'lik sensori/detektori: yorug'lik sezgichlari va detektorlari mikrokontrolderlar va o'rnatilgan tizimlar uchun juda foydali va intensivlik monitoringi ham bajarilishi kerak. Bunday sensorlarning eng sodda va eng arzonlaridan biri - LDR. LDR yoki nurga bog'liq rezistorlar osongina ishlatilishi mumkin
IOT asosidagi gaz oqish detektori: 4 qadam
IOT asosidagi gaz qochqin detektori: talablar1 - Nodemcu (ESP8266) 2 - tutun sensori (MQ135) 3 - o'tish simlari (3)
Arduino asosidagi kontaktsiz infraqizil termometr - Arduino yordamida IQ asosidagi termometr: 4 qadam
Arduino asosidagi kontaktsiz infraqizil termometr | IQ asosidagi termometr Arduino yordamida: Salom bolalar, biz ko'rsatma beramiz, biz arduino yordamida aloqa qilmaydigan termometrni yaratamiz, chunki ba'zida suyuqlik/qattiqning harorati juda yuqori yoki pastgacha bo'ladi, keyin u bilan aloqa qilish va uni o'qish qiyin. bu sahnada harorat
DIY Arduino asosidagi pulsli indüksiyon metall detektori: 5 qadam
DIY Arduino asosidagi pulsli indüksiyon metall detektori: Bu juda yaxshi ko'rsatkichlarga ega nisbatan oddiy metall detektori
Arduino asosidagi pulsli indüksiyon detektori - burilish bobini: 5 qadam (rasmlar bilan)
Arduino asosidagi pulsli indüksiyon detektori - burilish g'oyasi: Fikr Men ilgari turli xil natijalarga ega bo'lgan metall detektorlarni qurganman, bu yo'nalishdagi Arduino imkoniyatlarini o'rganmoqchi edim. bu erda ko'rsatma sifatida