Turinys:

„Arduino“impulsų indukcijos detektorius - LC spąstai: 3 žingsniai
„Arduino“impulsų indukcijos detektorius - LC spąstai: 3 žingsniai

Video: „Arduino“impulsų indukcijos detektorius - LC spąstai: 3 žingsniai

Video: „Arduino“impulsų indukcijos detektorius - LC spąstai: 3 žingsniai
Video: Mikrovaldiklių sistemos - Impulso pločio moduliacija (PWM) 2024, Liepa
Anonim
„Arduino“pagrindu sukurtas pulso indukcijos detektorius - „LC -Trap“
„Arduino“pagrindu sukurtas pulso indukcijos detektorius - „LC -Trap“

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

Schema
Schema
Schema
Schema
Schema
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

Programavimas
Programavimas
Programavimas
Programavimas
Programavimas
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

Galutiniai rezultatai
Galutiniai rezultatai
Galutiniai rezultatai
Galutiniai rezultatai
Galutiniai rezultatai
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: