Sisukord:

Arduino baasil impulssinduktsiooni detektor - LC -lõks: 3 sammu
Arduino baasil impulssinduktsiooni detektor - LC -lõks: 3 sammu

Video: Arduino baasil impulssinduktsiooni detektor - LC -lõks: 3 sammu

Video: Arduino baasil impulssinduktsiooni detektor - LC -lõks: 3 sammu
Video: GET MORE SALES WITH YOUR BUSINESS $$ | How To Set Your Prices To Attract Customers 2024, November
Anonim
Arduino baasil impulssinduktsiooni detektor - LC -Trap
Arduino baasil impulssinduktsiooni detektor - LC -Trap

Otsides täiendavaid ideid lihtsa, ainult ühe toitepingega metallidetektori Ardino Pulse Induktsiooni kohta, sattusin Teemo kodulehele:

www.digiwood.ee/8-electronic-projects/2-metal-detectorcircuit

Ta lõi lihtsa impulssinduktsiooni detektori, kasutades LC-Trap põhimõtet. Sarnased ahelad postitasid TechKiwiGadgets saidile Instructable. Välja arvatud see, et Teemo vooluahel kasutab PIC -mikrokontrolleri sisemisi komparaatoreid, vajades seega vähem väliseid komponente

Nii et mul oli väljakutse kasutada selle skeemi jaoks PIC-kontrolleri asemel Arduino ja vaadata, kui kaugele ma jõuan.

Samm: skemaatiline

Skeem
Skeem
Skeem
Skeem
Skeem
Skeem

Arduino skeem on natuke keerulisem, kuna Arduino ei võimalda sisemist analoogsignaali suunata võrdlusseadme sisendisse. See lisab lihtsa pingejaoturi jaoks kaks komponenti. See toob kaasa disaini, millel on 12 välist komponenti (jättes välja kõlari ja 16x2 LCD -ekraani), võrreldes 9 Flip Coil -disainiga.

Skeemi tööpõhimõtet on Teemo veebisaidil väga hästi selgitatud. Põhimõtteliselt on mähis toide ja seejärel välja lülitatud. Pärast väljalülitamist tekitavad mähis ja kondensaator paralleelselt summutatud võnkumise. Võnkumise sagedust ja lagunemist mõjutab pooli läheduses olev metall. Ahela kohta lisateabe saamiseks vaadake Teemo või TechKiwi lehte siin Instructables.

Nagu Flip Coil Impulsi induktsioonianduris, kasutan sisemist võrdlusvahendit ja võimalust käivitada katkestus, et saada mähiselt signaal.

Sel juhul saan mitu katkestust, kuna pinge võngub võrdlevas seadistatud võrdluspinge ümber. Võnkumise lõppedes langeb pinge mähisel umbes 5 V, kuid mitte täpselt. Valisin 200 oomi ja 10 k oomi pingejaoturi, et saada umbes 4,9 volti pinge

Skeemide keerukuse vähendamiseks kasutasin D4 ja D5, et saada GND (10 k takisti jaoks) ja 5 V (220 oomi takisti jaoks). Tihvtid on seatud detektori käivitamisel.

Selles versioonis lisasin kõlariühenduse, kasutades helitugevuse abil reguleeritavat mitme tooni rakendust, nagu on kirjeldatud jaotises Arduino -põhise metallidetektori programmeerimine. See võimaldab sihtmärgi omadusi eristada ja signaali tugevust tunda. Kõlari saab ühendada täiendava 5 -kontaktilise päisega. Päise ülejäänud 3 tihvti kasutatakse nuppude jaoks (tuleb rakendada).

2. samm: programmeerimine

Programmeerimine
Programmeerimine
Programmeerimine
Programmeerimine
Programmeerimine
Programmeerimine

Nüüd, kui vooluahel on kavandatud ja prototüüp valmis, on aeg leida sobiv meetod metalli tuvastamiseks.

1. Impulsside lugemine

Üks idee on võnkeimpulsside loendamine kuni täieliku lagunemiseni.

Kui mähise lähedal on metalli, väheneb võnkumine. Sel juhul tuleks võrdlusseadme võrdluspinge seada tasemele, kus viimane impulss on vaevalt veel mõõdetud. Nii et kui midagi avastatakse, kaob see impulss kohe. See oli natuke problemaatiline.

Iga võnkumise laine tekitab kaks katkestust. Üks laskudes alla ja teine tagasi üles. Võrdluspinge täpselt võnkumislaine haripunkti seadmiseks peaks aeg alla ja üles tõusmise vahel olema võimalikult lühike (vt pilti). Kahjuks tekitab siin probleeme Arduino keskkonna üldkulud.

Iga katkestuse käivitaja nõuab seda koodi:

ISR (ANALOG_COMP_vect) {

Toggle1 = Lülita0 // salvesta viimane väärtus Toggle0 = TCNT1; // hankige uus väärtus}

See kood võtab natuke aega (kui ma õigesti mäletan, siis umbes 78 juhendamistsüklit, mille sagedus on umbes 5 mikrosekundit @ 16 MHz). Seetõttu on minimaalne tuvastatav kaugus kahe impulsi vahel täpselt see aeg, mis sellel koodil kulub. Kui kahe päästiku vaheline aeg lüheneb (vt pilti), jääb see märkamatuks, kuna kood on enne teise katkestuse tuvastamist täielikult täidetud

See toob kaasa tundlikkuse vähenemise. Samal ajal märkasin, et võnkumiste summutamine on väga tundlik igasuguste välismõjude suhtes, muutes selle lähenemisviisi kokku pisut keeruliseks.

2. Sageduse mõõtmine

Teine võimalus metalli tuvastamiseks on võnkumissageduse mõõtmine. Sellel on võnkumise summutuse mõõtmisega võrreldes suur eelis, kuna sageduse muutus võimaldab metalli eristada. Juhul, kui mähise lähedal on must materjal, aeglustub sagedus, kui mähise lähedal on väärismetalli, suureneb sagedus.

Lihtsaim viis sageduse mõõtmiseks on impulsside mõõtmine pärast mähiste võnkumist. Ajavahemik alguse ja viimase impulsi vahel jagatuna mõõdetud impulsside koguhulgaga on sagedus. Kahjuks on viimased võnkumised üsna ebasümmeetrilised. Kuna metalli olemasolu mõjutab ka võnkumise lagunemist, on viimased võnked veelgi ebasümmeetrilisemad, on näitu raske tõlgendada. Pildil on see näidatud ristumistega 1 kuni 1 'ja 2 kuni 2'.

Seetõttu on parem viis sageduse mõõtmiseks kasutada mõningaid varasemaid impulsse. Testimise ajal sain huvitaval kombel teada, et mõned impulssimpulsid on tundlikumad kui teised. Kuskil 2/3 võnkumistest on hea koht andmete hankimiseks.

Andmete töötlemine

Esialgne kood, mis põhineb silmusel (), mis nõuab mähise ajastamiseks impulsi () funktsiooni. Kuigi tulemused polnud halvad, tekkis mul soov ajakava parandada. Selleks lõin täielikult taimeripõhise koodi, mis viis eraldi installimatu Arduino -põhise metallidetektori programmeerimise juurde. Selles juhendis selgitatakse üksikasjalikult ajastust, andmete krigistavat LCD -väljundit jne

1. LCD

Esimene lähenemisviis oli mõõta 10 impulssi ja seejärel kuvada väärtused LCD -ekraanil. Kuna sain teada, et I2C andmeedastus oli liiga aeglane, muutsin koodi, et värskendada ainult ühte märki impulsi kohta.

2. Minimaalse väärtuse meetod

Lugemiste stabiilsuse parandamiseks kirjutasin jadaväljundi rutiini, et saada paremini mõõdetud andmeid. Seal selgus, et kuigi enamik näiteid olid mõnevõrra stabiilsed, mõned mitte! Mõned "sama" võnkumisimpulsi näidud olid üksteisest nii kaugel, et see hävitaks iga lähenemisviisi sageduse muutuse analüüsimiseks.

Selle kompenseerimiseks lõin "piiri", mille piires väärtus oli usaldusväärne. I. e. kui väärtused olid oodatavast väärtusest enam kui 35 taimeritsükli1 kaugusel, ignoreeriti neid väärtusi (üksikasjalikult selgitatud juhendis "Kuidas programmeerida Arduino -põhist metallidetektorit")

See lähenemine osutus väga stabiilseks.

3. Pinge

Teemo esialgne disain töötab alla 5 volti. Kuna minu eeldused olid “rohkem volte = rohkem võimsust = rohkem tundlikkust”, toitsin seadme alguses 12 V toitega. Selle tulemusena kuumutati MOSFET. Selle kuumutamise tulemuseks oli mõõdetud väärtuste üldine triiv, mis viis detektori sagedase uuesti tasakaalustamiseni. Vähendades pinget 5 V -ni, saaks MOSFET -i soojusenergia minimeerida tasemele, kus näitude triivimist peaaegu ei täheldatud. See muutis vooluringi veelgi lihtsamaks, kuna Arduino pardapingeregulaatorit polnud enam vaja.

MOSFETi jaoks valisin esialgu IRL540. See MOSFET ühildub loogikatasandiga, kuid selle maksimaalne pinge on 100 V. Lootsin paremat jõudlust, muutudes 200V nimivõimsusega IRL640 -ks. Kahjuks olid tulemused samad. Seega teeb seda tööd kas IRL540 või IRL640.

3. samm: lõpptulemused

Lõpptulemused
Lõpptulemused
Lõpptulemused
Lõpptulemused
Lõpptulemused
Lõpptulemused

Detektori eeliseks on see, et see eristab vääris- ja mustmaterjali. Puuduseks on see, et selle lihtsa skeemi tundlikkus pole nii hea. Toimivuse võrdlemiseks kasutasin samu viiteid nagu Flip-Coil detektoril. Tõenäoliselt sobib mõnele täpsustamisele, kuid tõelisele otsimisele tõenäoliselt pettumus.

Siin võib algne disain koos PIC -kontrolleriga olla tundlikum, kuna see töötab 32 MHz sageduse 16 MHz asemel, pakkudes kõrgemat eraldusvõimet sageduse muutuste tuvastamiseks.

Tulemused saavutati, kasutades mähist 48 pööret @ 100 mm.

Nagu alati, ole avatud tagasisidele

Soovitan: