Turinys:
Video: „Arduino“impulsų indukcijos detektorius - LC spąstai: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Ieškodamas kitų idėjų paprastam „Ardino Pulse Induction“metalo detektoriui, turinčiam tik vieną maitinimo įtampą, aptikau pagrindinį „Teemo“puslapį:
www.digiwood.ee/8-electronic-projects/2-metal-detectorcircuit
Jis sukūrė paprastą pulso indukcijos detektorių, naudodamas LC-Trap principą. Panašias grandines čia paskelbė „TechKiwiGadgets“„Instructable“. Išskyrus tai, kad „Teemo“grandinėje naudojami vidiniai PIC mikrovaldiklio komparatoriai, todėl jiems reikia mažiau išorinių komponentų
Taigi man buvo iššūkis naudoti šią schemą vietoj PIC valdiklio „Arduino“ir pažiūrėti, kiek galiu nueiti.
1 žingsnis: schema
„Arduino“schema yra šiek tiek sudėtingesnė, nes „Arduino“neleidžia nukreipti vidinio analoginio signalo į lyginamojo įvestį. Tai prideda du komponentus paprastam įtampos skirstytuvui. Tai sukuria dizainą su 12 išorinių komponentų (be garsiakalbio ir 16x2 LCD), palyginti su 9 „Flip Coil“konstrukcijomis.
Schemos veikimo principas labai gerai paaiškintas „Teemo“svetainėje. Iš esmės ritė yra maitinama ir tada išjungiama. Išjungus, ritė ir kondensatorius lygiagrečiai sukurs slopinamąjį virpesį. Virpesių dažniui ir nykimui įtakos turi metalas, esantis šalia ritės. Norėdami gauti daugiau informacijos apie grandinę, žr. „Teemo“arba „TechKiwi“puslapį čia, „Instructables“.
Kaip ir „Flip Coil Pulse Induction“detektoriuje, naudoju vidinį palyginamąjį įrenginį ir galimybę sukelti pertrauką, kad gaučiau signalą iš ritės.
Šiuo atveju aš gausiu kelis pertraukimus, nes įtampa svyruoja aplink lyginamąją įtampą. Pasibaigus svyravimui, ritės įtampa nusistovės apie 5 V, bet ne tiksliai. Aš pasirinkau 200 omų ir 10 k omų įtampos skirstytuvą, kad gaučiau apie 4,9 volto įtampą
Norėdami sumažinti schemų sudėtingumą, naudoju D4 ir D5, kad gaučiau GND (10 k rezistoriui) ir 5 V (220 omų rezistoriui). Smeigtukai yra nustatyti paleidžiant detektorių.
Šioje versijoje pridėjau garsiakalbio jungtį, naudodami garsumo valdomą kelių tonų aparatu, kaip aprašyta skyriuje „Kaip užprogramuoti„ Arduino “metalo detektorių“. Tai leidžia diferencijuoti taikinio savybes ir suvokti signalo stiprumą. Garsiakalbį galima prijungti prie papildomos 5 kontaktų antraštės. Likę 3 antraštės kaiščiai bus naudojami mygtukams (turi būti įgyvendinti).
2 žingsnis: programavimas
Dabar, kai grandinė yra suprojektuota ir prototipas sukurtas, atėjo laikas rasti tinkamą metodą metalo aptikimui.
1. Impulsų skaičiavimas
Viena idėja yra skaičiuoti svyravimo impulsus, kol jie visiškai suyra.
Jei šalia ritės yra metalo, svyravimas sumažėja. Tokiu atveju lygintuvo etaloninė įtampa turėtų būti nustatyta taip, kad paskutinis impulsas būtų vos matuojamas. Taigi, jei kažkas aptinkamas, šis pulsas iš karto dingsta. Tai buvo šiek tiek problematiška.
Kiekviena svyravimo banga sukuria du pertraukimus. Vienas einant žemyn, o kitas grįžtant aukštyn. Kad atskaitos įtampa būtų tiksliai nustatyta pagal svyravimo bangos viršūnę, laikas nuo nusileidimo iki pakilimo turėtų būti kuo trumpesnis (žr. Paveikslėlį). Deja, čia kyla problemų dėl „Arduino“aplinkos.
Kiekvienas pertraukimo aktyviklis reikalauja šio kodo:
ISR (ANALOG_COMP_vect) {
Toggle1 = Toggle0 // išsaugoti paskutinę vertę Toggle0 = TCNT1; // gauti naują vertę}
Šis kodas užtrunka šiek tiek laiko (jei gerai pamenu, apie 78 instrukcijų ciklai yra apie 5 mikrosekundės @ 16MHz). Todėl minimalus aptinkamas atstumas tarp dviejų impulsų yra būtent tas laikas, kurio reikia šiam kodui. Jei laikas tarp dviejų paleidiklių sutrumpėja (žr. Paveikslėlį), jis bus nepastebėtas, nes kodas yra visiškai įvykdytas prieš aptinkant antrą pertrauką
Dėl to sumažėja jautrumas. Tuo pačiu metu pastebėjau, kad svyravimų slopinimas yra labai jautrus bet kokiam išoriniam poveikiui, todėl šis metodas apskritai tampa šiek tiek sunkus.
2. Dažnio matavimas
Kitas metalo aptikimo būdas yra svyravimo dažnio matavimas. Tai turi didelį pranašumą, palyginti su svyravimo slopinimo matavimu, nes dažnio pokytis leidžia atskirti metalą. Jei šalia ritės yra juodųjų medžiagų, dažnis sulėtės, o jei šalia ritės yra tauriųjų metalų, dažnis padidės.
Lengviausias būdas išmatuoti dažnį yra išmatuoti impulsų kiekį, kai ritės pradeda svyruoti. Laikas nuo pradžios iki paskutinio impulso, padalytas iš viso išmatuotų impulsų kiekio, yra dažnis. Deja, paskutiniai keli svyravimai yra gana nesimetriški. Kadangi metalo buvimas taip pat turi įtakos virpesių nykimui, paskutiniai svyravimai dar labiau nesimetriški, rodmenis sunku interpretuoti. Paveikslėlyje tai parodyta su sankryža nuo 1 iki 1 'ir nuo 2 iki 2'.
Todėl geresnis būdas yra naudoti kai kuriuos ankstesnius impulsus dažniui matuoti. Bandydamas įdomiai sužinojau, kad kai kurie impulsų impulsai yra jautresni nei kiti. Kai kur 2/3 svyravimų yra geras taškas duomenims gauti.
Duomenų apdorojimas
Pradinis kodas, pagrįstas kilpa (), reikalaujantis pulso () funkcijos atlikti ritės laiką. Nors rezultatai nebuvo blogi, aš norėjau pagerinti laiką. Norėdami tai padaryti, sukūriau visiškai laikmačiu pagrįstą kodą, kuris atvedė į atskirą nesuderinamą „Kaip programuoti„ Arduino “metalo detektorių“. Ši instrukcija išsamiai paaiškina laiką, duomenų gniuždymo LCD išvestį ir kt
1. LCD ekranas
Pirmasis būdas buvo išmatuoti 10 impulsų ir tada rodyti vertes LCD ekrane. Kai sužinojau, kad I2C duomenų perdavimas buvo per lėtas, pakeičiau kodą, kad atnaujinčiau tik vieną simbolį per impulsą.
2. Minimalios vertės metodas
Norėdami dar labiau pagerinti rodmenų stabilumą, parašiau nuosekliosios išvesties tvarką, kad geriau suprastumėte išmatuotus duomenis. Ten paaiškėjo, kad nors dauguma rodmenų buvo šiek tiek stabilūs, kai kurie ne! Kai kurie „to paties“virpesių impulso rodmenys buvo taip toli vienas nuo kito, kad sugriautų kiekvieną požiūrį analizuojant dažnio pokytį.
Norėdami tai kompensuoti, sukūriau „sieną“, kurios vertė buvo patikima. T.y. kai vertės buvo daugiau nei 35 laikmačio1 ciklai nuo numatytos vertės, šios vertės buvo ignoruojamos (išsamiai paaiškinta instrukcijoje „Kaip užprogramuoti„ Arduino “metalo detektorių“)
Šis metodas pasirodė esąs labai stabilus.
3. Įtampa
Originalus „Teemo“dizainas maitinamas esant žemesnei nei 5 voltų įtampai. Kadangi mano prielaidos buvo „daugiau voltų = daugiau galios = didesnis jautrumas“, aš iš pradžių maitinau įrenginį 12 V įtampa. Dėl to MOSFET įkaito. Dėl šio įkaitimo bendras matuojamų verčių nukrypimas sukėlė dažną detektoriaus balansavimą. Sumažinus įtampą iki 5 V, MOSFET šilumos išsiskyrimą galima sumažinti iki tokio lygio, kad beveik nepastebėta rodmenų nukrypimo. Tai dar labiau supaprastino grandinę, nes „Arduino“borto įtampos reguliatorius nebereikalingas.
MOSFET iš pradžių pasirinkau IRL540. Šis MOSFET yra suderinamas su loginiu lygiu, tačiau turi maksimalią 100 V įtampą. Tikėjausi geresnio našumo, pakeisdamas IRL640, kurio vardinė galia yra 200 V. Deja, rezultatai buvo tokie patys. Taigi darbą atliks arba IRL540, arba IRL640.
3 žingsnis: galutiniai rezultatai
Detektoriaus pranašumas yra tas, kad jis išskiria brangiąsias ir juodąsias medžiagas. Trūkumas yra tas, kad šios paprastos schemos jautrumas nėra toks geras. Norėdami palyginti našumą, naudoju tas pačias nuorodas kaip ir „Flip-Coil“detektoriui. Tikriausiai tinka kai kuriems tiksliai nurodantiems, bet greičiausiai nuvilia tikroms paieškoms.
Čia originalus dizainas su PIC valdikliu gali būti jautresnis, nes jis veikia 32 MHz, o ne 16 MHz dažnio diapazone, o tai suteikia didesnę skiriamąją gebą dažnio pokyčiams aptikti.
Rezultatai buvo pasiekti naudojant ritę su 48 apsisukimais @ 100 mm.
Kaip visada, būkite atviri atsiliepimams
Rekomenduojamas:
Visuino Kaip naudoti impulsų pločio moduliaciją (PWM), norint pakeisti šviesos diodo ryškumą: 7 žingsniai
Visuino Kaip naudoti impulsų pločio moduliaciją (PWM), kad pakeistumėte šviesos diodo ryškumą: Šioje pamokoje mes naudosime šviesos diodą, prijungtą prie „Arduino UNO“ir „Visuino“, kad pakeistume jo ryškumą naudojant impulsų pločio moduliaciją (PWM). Žiūrėkite demonstracinį vaizdo įrašą
„Esp8266“laikrodis ir impulsų generatorius: 3 žingsniai
„Esp8266“laikrodis ir impulsų generatorius: ši instrukcija skirta paprastam bandymo įrenginiui; laikrodis ir impulsų generatorius. Jis naudoja „i2S“aparatinės įrangos sąsają esp8266, kad sukurtų bandomąjį laikrodį arba impulsų seką. Tai palengvina surinkimą, nes nereikia jokios specialios aparatūros
„IoT“pelėms pritaikytas tiesioginis spąstai: 6 žingsniai (su nuotraukomis)
„IoT“pelėms tinkami tiesioginiai spąstai: tai spąstai, skirti pelėms užfiksuoti jų nepažeidžiant, kad galėtumėte jas paleisti į lauką. Jei artumo jutiklis aptinka pelę, servo variklis uždaro duris. Jūs gausite momentinį pranešimą ir (arba) el. Laišką, kuriuo informuosite, kad ribojate
Išmanusis pelės spąstai: 4 žingsniai
Išmanioji pelės gaudyklė: šiam projektui tai yra patobulinta „Gary“pelės pelės „Arduino“versija (https://www.instructables.com/id/Arduino-Mouse-Trap/). Kai pelė bus sugauta, el. Laiškas bus išsiųstas jūsų el. Pašto adresu, kurį galima pamatyti telefone ar kompiuteryje
„Arduino“impulsų indukcijos detektorius - apversta ritė: 5 žingsniai (su nuotraukomis)
„Arduino“pagrįstas impulsų indukcijos detektorius - apversta ritė: idėja Anksčiau sukūrusi keletą metalo detektorių su skirtingais rezultatais norėjau ištirti „Arduino“galimybes ta kryptimi. Yra keletas gerų pavyzdžių, kaip sukurti metalo detektorius naudojant „Arduino“. čia kaip pamokoma