Selle eripära on see, et seade on valmistatud kinda kujul, seal on nii elektrooniline osa kui ka otsingumähis. Metallidetektor loodi majast kadunud väikeste metallesemete, näiteks kõrvarõngaste, sõrmuste ja muu otsimiseks. Kuid selle skeemi põhjal saate teha klassikalise metallidetektori välitöödeks. Seadme valmistamiseks on vaja minimaalselt materjale, lõviosa ülesannetest lahendab Arduino mikrokontroller.

Metallidetektori võimsus on väike, kuid koduseks kasutamiseks on see täiesti piisav.


Materjalid ja tööriistad tootmiseks:
- Arduino UNO mikrokontroller;
- 28 gabariiti traat (läbimõõt 0,32mm);
- üks lüliti;
- piesosummer;
- kaks 10K takistit;
- üks 1,2K takisti;
- kaks 100n kondensaatorit;
- kaks 22n kondensaatorit;
- üks transistor tüüp BC547;
- 9 V aku;
- ehituskindad.

Vaja läheb ka vineeri, puiduliimi, jootekolvi koos jootmisega, keerdunud traati, leivalauda ja muid pisiasju.

Metallidetektori tootmisprotsess:

Esimene samm. Mähise tegemine
Rulli tegemiseks tuleb välja lõigata alus, korpus. Autor lõikab masinal vineerist rulli, selle läbimõõt on 6 tolli. Tulemuseks on kaks rõngast, mis liimitakse seejärel puiduliimiga kokku. Pärast kuivamist töödeldakse mähist hoolikalt liivapaberiga, et see oleks sile. Pärast aluse valmistamist saab traadi sellele kerida. Kokku peate tegema 30 traadi pööret, jättes ühendamiseks vähemalt 5 tolli pikkuse otsa. Peate traadi tihedalt kerima, see tagab mähise kvaliteetse töö. Mähise saab paremaks fikseerimiseks mähkida elektrilindiga või teibiga üle traadi.





Teine samm. Ahela kokkupanek leivalauale
Veendumaks, et mähis on õigesti kokku pandud ja kogu süsteem töötab korralikult, tuleb see esmalt monteerida leivalauale ja alles seejärel jootma. Ühenduse järjekord pole oluline, autor alustas transistorist, siis tulid takistid ja kondensaatorid. Pärast seda ühendati Arduino plaadi "mees- ja naissoost" pistikud.












Pärast seda saate mähise ühendada. Kuna traat on lakikattega, tuleb see otstest liivapaberi või terava noaga maha kraapida. Peate saavutama hea kontakti. Mähis on ühendatud "mees- ja naissoost" pistikutega. Pärast kõigi elementide kontrollerisse kokkupanemist saate püsivara alla laadida ja kontrollida, kuidas kõik praktikas töötab.

Kolmas samm. Püsivara installimine ja süsteemi kontrollimine
Järgmisena peate püsivara kontrollerisse alla laadima. Metallidetektori korrektseks töötamiseks peate võib-olla ka koodis mõningaid muudatusi tegema. Kui kood on üles laaditud, võite alustada testimist. Peate süsteemiga ühendama 9 V toiteallika ja lülitama lüliti välja. Kui metallidetektor töötab, võite alustada kõigi plaadil olevate elementide jootmist.


Neljas samm. Vooluahela jootmine
Kõik on kokku pandud trükkplaadi tükile, kontaktid on traadijuppide abil kokku joodetud. Vajadusel saate seadme jaoks valmistada spetsiaalse tahvli, kasutades söövitust. Täpsemalt, kuidas vooluring on kokku pandud, näete fotol.





Viies samm. Kokkupaneku viimane etapp
Tahvli kinnitamiseks kasutab autor vineeritükki. Selle suurus peaks vastama Arduino kontrollerile ja trükkplaadile. Servad tuleb lihvida, et need oleksid siledad. Elementide vineerile liimimiseks võite kasutada kahepoolset teipi. Samuti sobivad liim ja muud kinnitusviisid.

Tuntud impulssmetallidetektori ümberkujundatud versioon - "Pirate", kuid Arduino peal. Sellel on hea tundlikkus isegi väikeste müntide jaoks. Stabiilne olenemata temperatuurist ja aku laetusest. Skeem on nii palju kui võimalik lihtsustatud.

Üks puudusi on võimetus määrata metalli tüüpi. Tüüpi saavad määrata ainult raadiokiirguse tuvastamise põhimõttega metallidetektorid (need on keeruka konstruktsiooniga ja nõuavad täpset häälestamist). Impulss-metallidetektor omakorda töötab metallis indutseeritud voolude magnetilisel tuvastamisel. Induktsioon otsingu ajal ei ole mustade ja värviliste metallide puhul eristatav.

Muide, on olemas ka kolmas metallidetektori tüüp – sagedusdetektor. Ebaefektiivne ja väga lihtne disain, mis põhineb magnetahela võnkegeneraatoril, mis on tundlik pooli induktsiooni suuruse muutuste suhtes. Me ei võta seda arvesse madala tundlikkuse tõttu. Isiklikud katsed sellise disaini väljatöötamiseks võimaldasid parimal juhul tuvastada praepanni 20 cm sügavuselt. Ta reageeris müntidele ainult tühikäigul. Peaaegu kasutu asi. Seetõttu keeldus ta sellest kohe.


Meie impulss-metallidetektori vooluringil on mitu põhikomponenti. Arduino genereerib impulsse, neid võimendab väljatransistor (toitelüliti), mis omakorda indutseerib mähises olevas magnetväljas impulsse. Magnetimpulss liigub soovitud metallini ja indutseerib selles voolu ja seejärel tagasi magnetvälja signaali. See vastupidine magnetvoog naaseb pärast lühikest viivitust tagasi metallidetektori mähisesse ja genereerib impulsi. Signaal läbib dioodipaari (dioode on vaja pinge piiramiseks 1 voltini) ja läheb operatiivvõimendi sisendisse. Võimendatud signaal siseneb arduinosse, kus "langev saba" arvutatakse pärast mähise väljalülitamist toitelülitiga. Need. lihtsalt vastus soovitud metallesemelt. Olenevalt lagunemisajast saame hinnata objekti suurust või kaugust. Indikaator näitab seda väärtust 8 taseme indikaatorites.

Rullist rääkides. See peaks olema 20 cm läbimõõduga 20 keerdu traadiga 0,4–0,8 mm. Traadi paksus mõjutab ka kogu mähise induktsiooni. Tugev kõrvalekalle traadi paksusest põhjustab seadme tundlikkuse halvenemist. Spiraal on sisestatud PVC veetorusse ja sellel ei ole täiendavaid metallühendusi.



Programmi eskiis sisaldab impulsigeneraatorit ja võimendist sissetuleva signaali töötlemise algoritmi.

Int ss0 = 0; int ss1 = 0; int ss2 = 0; pikk c0 = 0; pikk c1 = 0; pikk c2 = 0; bait i = 0; int sss0 = 0; int sss1 = 0; int sss2 = 0; int s0 = 0; int s1 = 0; int s2 = 0; void setup() ( DDRB = 0xFF; // port B - kõik välja DDRD = 0xFF; // port D - kõik välja jaoks (i = 0; i<255; i++) // калибровка { PORTB = B11111111; delayMicroseconds(200); PORTB = 0; delayMicroseconds(20); s0 = analogRead(A0); s1 = analogRead(A0); s2 = analogRead(A0); c0 = c0 + s0; c1 = c1 + s1; c2 = c2 + s2; delay(3); } c0 = c0 / 255; c0 = c0 - 5; c1 = c1 / 255; c1 = c1 - 5; c2 = c2 / 255; c2 = c2 - 5; } void loop() { PORTB = B11111111; delayMicroseconds(200); PORTB = 0; delayMicroseconds(20); s0 = analogRead(A0); s1 = analogRead(A0); s2 = analogRead(A0); ss0 = s0 - c0; if (ss0 < 0) { sss0 = 1; } ss0 = ss0 / 16; PORTD = ss0; // посылаем на индикатор (send to LEDs) delay(1); ss1 = s1 - c1; if (ss1 < 0) { sss1 = 1; } ss1 = ss1 / 16; PORTD = ss1; // посылаем на индикатор (send to LEDs) delay(1); ss2 = s2 - c2; if (ss2 < 0) { sss2 = 1; } ss2 = ss2 / 16; PORTD = ss2; // посылаем на индикатор (send to LEDs) delay(1); if (sss0+sss1+sss2 >2) ( digitalWrite(7,HIGH); digitalWrite(6,HIGH); digitalWrite(5,HIGH); digitalWrite(4,HIGH); digitalWrite(3,HIGH); digitalWrite(2,HIGH); digitalWrite(1,HIGH) ); digitalWrite(0,HIGH); viivitus (1); sss0 = 0; sss1 = 0; sss2 = 0; ) )






Sellest juhisest saate teada, kuidas kodus isetehtud metallidetektorit valmistada. Erinevate metallesemete leidmine on suurepärane hobi, mis hoiab teid õues, avastate uusi kohti ja võib-olla leiate midagi huvitavat. Enne kui õpite ise metallidetektorit valmistama, tutvuge kohalike seadustega, kuidas käsitleda võimalikke leide, eriti ohtlikke esemeid, arheoloogilisi säilmeid või olulise majandusliku või emotsionaalse väärtusega esemeid.

Internetis on üsna palju juhiseid värviliste metallide võimsate metallidetektorite kodus oma kätega kokkupanemiseks, kuid selle juhise eripära on see, et lisaks Arduinole on vaja vaid mõnda komponenti. : tavaline kondensaator, takisti ja diood, mis moodustavad südamiku koos 20 elektrit juhtiva kaabli mähisest koosneva otsingumähisega. LED, kõlar ja/või kõrvaklapid. Lisaeelis on see, et kõike saab toita 5V-st, millest piisab 2000 mAh USB koguvõimsuseks.

Signaali tõlgendamiseks ja aru saamiseks, milliseid materjale ja kujundeid detektor suudab tuvastada, on vaja süveneda füüsikasse. Rusikareegli kohaselt on detektor tundlik objektide suhtes, mis asuvad pooli raadiusest mitte suuremal kaugusel või sügavusel. See on kõige tundlikum objektide suhtes, milles vool võib voolata pooli tasapinnal. Seega tekitab mähise tasapinnas olev metallketas palju tugevama reaktsiooni kui sama metallketas, mis on pooliga risti. Objekti kaal ei oma suurt tähtsust. Õhuke alumiiniumfoolium, mis on orienteeritud mähise tasapinnale, annab palju tugevama reaktsiooni kui raskemetallist polt.

1. samm: tööpõhimõte

Kui elekter hakkab mähist läbima, tekitab see magnetvälja. Faraday induktsiooniseaduse kohaselt tekitab muutuv magnetväli elektrivälja, mis on muutuvale magnetväljale vastu. Seega tekib üle mähise pinge, mis takistab voolu suurenemist. Seda efekti nimetatakse iseinduktiivsuseks ja induktiivsuse ühikuks on Henry, kus 1 Henry mähisel tekib 1 V potentsiaalide erinevus, kui vool muutub 1 Amper sekundis. N mähise ja raadiusega R mähise induktiivsus on ligikaudu 5 µH x N^2 x R, kusjuures R on meetrites.

Kui pooli lähedal on metallese, muutub selle induktiivsus. Sõltuvalt metalli tüübist võib induktiivsus suureneda või väheneda. Mittemagnetilised metallid nagu vask ja alumiinium pooli läheduses vähendavad induktiivsust, kuna muutuv magnetväli kutsub objektis esile pöörisvoolud, mis vähendavad kohaliku magnetvälja intensiivsust.

Ferromagnetilised materjalid, nagu raud pooli lähedal, suurendavad induktiivsust, kuna indutseeritud magnetväljad joonduvad välise magnetväljaga.

Seega saab mähise induktiivsust mõõtes tuvastada metallide olemasolu läheduses. Arduino, kondensaatori, dioodi ja takistiga saab mähise induktiivsust mõõta järgmiselt: Tehes mähise kõrgpääsfiltri osaks ja toites seda laineplokkidega, tekivad lühikesed pursked iga üleminek. Nende purunemiste kestus on võrdeline pooli induktiivsusega. Tegelikult on LR-filtri iseloomulik aeg tau = L/R. Kahekümne pöördega ja 10 cm läbimõõduga pooli puhul on L ~ 5muH x 20^2 x 0,05 = 100 µH.

Arduino kaitsmiseks liigse voolu eest on minimaalne takistus 200 oomi. Seega ootame umbes 0,5 mikrosekundi pikkuseid impulsse. Neid on raske suure täpsusega otse mõõta, kuna Arduino taktsagedus on 16 MHz.

Selle asemel saab tõusvat impulssi kasutada kondensaatori laadimiseks, mida saab seejärel lugeda Arduino analoog-digitaalmuunduriga (ADC). Oodatav laeng 25 mA impulsist, mis kestab 0,5 mikrosekundit, on 12,5 nK, mis annaks 10 nF kondensaatorile 1,25 V. Dioodi pingelangus vähendab seda väärtust. Kui impulsi korratakse mitu korda, siis kondensaatori laeng tõuseb ~2V-ni.Need parameetrid saab Arduino ADC-ga analoogRead() abil. Seejärel saab kondensaatori kiiresti tühjendada, muutes sensorpistiku väljundiks ja seadistades selle mõneks mikrosekundiks 0 V peale.

Kõik mõõtmised võtavad umbes 200 mikrosekundit, 100 kondensaatori laadimiseks ja lähtestamiseks ning 100 ADC muundamiseks. Mõõtmise kordamise ja tulemuse keskmistamisega saab täpsust oluliselt tõsta: keskmiselt kulub 256 mõõtmisel 50 ms ja parandab täpsust 16 korda. Seega saavutab 10-bitine ADC 14-bitise ADC täpsuse.

Kuna saadud parameetrid on pooli induktiivsusega äärmiselt mittelineaarsed, ei saa me teada induktsiooni tegelikku väärtust. Kuid metallide tuvastamiseks huvitavad meid ainult väikesed muudatused mähise induktiivsuses, mis on tingitud metallide lähedusest ja selleks on see meetod ideaalne.

Mõõtmisi saab tarkvara abil automaatselt kalibreerida. Kui enamasti pole mähise läheduses metalli, siis keskmisest väärtusest kõrvalekaldumine näitab läheduses asuva metalleseme olemasolu.

Erinevat värvi lambipirne ja helisid kasutades on näha ka erinevus – induktsioon suureneb või väheneb.

2. samm: vajalike komponentide loend

Elektriline alus:

  • Arduino UNO R3 + arendusplaat või Arduino Nano 5x7cm arendusplaadiga
  • 10nF kondensaator
  • Väike signaaldiood, näiteks 1N4148
  • 220 oomi takisti

Toiduks:

  • USB kaabliga kaasaskantav laadija

Visuaalse väljundi jaoks:

  • 2 erinevat värvi LED-i, näiteks sinine ja roheline
  • 2 220 oomi takistit voolu piiramiseks

Heli väljastamiseks:

  • Passiivne helisignaal
  • Mikrolüliti vaigistamiseks

Kõrvaklappide väljundiks:

  • Kõrvaklappide pesa
  • Takisti 1 kOhm
  • Kõrvaklapid

Otsingumähise hõlpsaks ühendamiseks/lahutamiseks tehke järgmist.

  • 2-kontaktiline kruviklemm (klemm)

Otsingupooli jaoks:

  • ~ 5 meetrit peenikest elektrikaablit

Rulli disain. Peaks olema jäik, kuid mitte ümmargune. Ehituseks: Umbes 1 meeter - puidust, plastikust või selfie-pulk.

3. samm: otsingupool

Otsingumähise jaoks kerisin umbes 4 m keerduvat traati ümber 9 cm läbimõõduga papist silindri, mille tulemuseks oli 18 pööret. Kaabli tüüp ei oma tähtsust seni, kuni takistus on vähemalt kümme korda väiksem kui RL-filtri R väärtus, seega veenduge, et see jääks alla 20 oomi. Mõõtsin ära ja see tuli 1 oomi peale, nii et see on ohutu. Sobib ka 10-meetrine hargnenud otstega ühendusjuhtme rull.

4. samm: looge prototüüp




Arvestades väliste komponentide väikest arvu, on täiesti võimalik vooluringi kokku panna väikesele leivaplaadile. Lõpptulemus on aga üsna mahukas ja mitte eriti usaldusväärne. Seetõttu on parem kasutada 5x7cm prototüüppaneelil Arduino nano ja jootmist koos lisakomponentidega (vt järgmist sammu)

Metallituvastus kasutab ainult kahte Arduino kontakti, millest üks annab impulsside LR-filtrile ja teine ​​kondensaatori pinge tuvastamiseks. Pulseerimist saab teha igast väljundviigust, kuid lugemiseks tuleb kasutada üht analoogviikudest A0-A5. Veel 3 kontakti kasutatakse 2 LED-i ja heliväljundi jaoks.

Kokkupaneku järjekord:

  1. Ühendage leivaplaadil 220-oomine takisti, kondensaator ja diood negatiivse klemmiga (must joon) järjestikku kondensaatoriga.
  2. Ühendage A0 takistiga (ots pole dioodiga ühendatud)
  3. Ühendage A1 dioodi ja kondensaatori ristumiskohaga
  4. Ühendage pooli üks ots takisti ja dioodi ristumiskohaga
  5. Ühendage pooli teine ​​ots maandusega
  6. Ühendage üks LED oma positiivse klemmiga kontaktiga D12 ja selle negatiivne klemm läbi 220 oomi takisti maandusega
  7. Ühendage teine ​​LED oma positiivse klemmiga kontaktiga D11 ja selle negatiivne klemm läbi 220 oomi takisti maandusega
  8. Soovi korral ühendage kõrvaklapid või kõlarid kontakti 10 ja maanduse vahele. Helitugevuse vähendamiseks saab järjestikku lisada kondensaatori või takisti.

See on kõik!

5. samm: seadme lõpliku versiooni loomine


Metallidetektori välitingimustes kasutamiseks peavad kõik komponendid olema kindlalt joodetud. Tavaline 7x5cm leivalaud sobib ideaalselt Arduino nano ja kõigi teiste komponentidega. Kasutage sama mustrit nagu eelmises etapis. Samuti otsustasin lisada sumistiga järjestikku lüliti, et oleks võimalik heli välja lülitada, kui seda pole vaja. Kruviklambri abil saate kiiresti proovida erinevaid pooli, ilma et peaksite uuesti jootma. Kogu toide tarnitakse Arduino Nano 5 V mini- või microUSB-pordi kaudu.

6. samm: tarkvara

Arduino visandi saate alla laadida allpool. Laadige alla ja käivitage see. Kasutasin Arduino 1.6.12 IDE-d. Soovitatav on alguses käivitada silumine = true, et reguleerida impulsside arvu mõõtmise kohta. Parim on, kui ADC näit on vahemikus 200 kuni 300. Suurendage või vähendage impulsside arvu, kui teie mähis annab täiesti erineva näidu.

Sketš teeb isekalibrimise. Piisab, kui asetate mähise mõneks ajaks metallidest eemale. Täheldatakse väikseid muutusi induktiivsuses, kuid äkilised suured muutused ei mõjuta pikaajalist keskmist.

Failid

7. samm: kinnitage seade


Tõenäoliselt ei taha te põrandal roomates aaret otsida, seega on parem kogu konstruktsioon pulga otsa kinnitada. Selfipulk on ideaalne; see on kerge, kokkupandav ja reguleeritav. Kaasaskantav aku sobib pulgale ideaalselt. Tahvli saab kinnitada juhtmeköidiste ja mähise abil samamoodi, kinnitades selle aku või selfie-pulga külge.

8. samm: kasutusjuhised

Võrdlusväärtuse kindlakstegemiseks piisab, kui omatehtud metallidetektor umbes 5 sekundiks metallidest eemale viia. Seejärel, kui mähis läheneb metallile, hakkab roheline või sinine LED vilkuma ning kostub ka helisignaale.

Sinised välgud ja madala sagedusega piiksud näitavad mitteferromagnetiliste metallide olemasolu. Rohelised välgud ja kõrgsageduslikud piiksud näitavad ferromagnetiliste metallide olemasolu. Pange tähele, et kui mähis on metalli lähedal rohkem kui 5 sekundit, loetakse saadud väärtus võrdlusväärtuseks ja detektori metallist eemale viimisel kostub helisignaal, mis mõne aja pärast vaibub. sekundit. Vilkuvate dioodide ja helisignaalide sagedus sõltub signaali tugevusest.

Kunagi, olles oma kätega ehitanud mitu erineva jõudlusega metallidetektorit, tahtsin uurida, kuidas Arduino ahel selles suunas töötab.

On mitmeid häid näiteid, kuidas metallidetektorit oma kätega kokku panna. Tavaliselt vajavad nad aga analoogsignaali töötlemiseks üsna palju väliseid komponente või on väljundtundlikkus üsna nõrk.

Kui mõelda impulssmetallidetektoritele, siis põhiteema on see, kuidas tuvastada väikseid pingemuutusi otsingupooliga seotud signaalides. Need muutused on tavaliselt väga väikesed. Kõige ilmsem lähenemine on ATmega328 analoogsisendi kasutamine. Kuid tehnilisi andmeid vaadates on kaks peamist probleemi: need on enamasti aeglased ja eraldusvõime on (enamikul juhtudel) madal.

Teisest küljest töötab mikrokontrolleril põhinev metallidetektor sagedusel 16 MHz ja sellel on üsna head ajastusvõimalused, nimelt eraldusvõime 0,0625 µs taktsagedust kasutades. Seega, selle asemel, et kasutada lugemiseks analoogsisendit, on lihtsaim viis väikeste dünaamiliste pingemuutuste tuvastamiseks võrrelda pingelanguse muutumist aja jooksul fikseeritud võrdluspinge korral.

Selleks on ATmega328-l sobivad sisemised võrdlusfunktsioonid D6 ja D7 vahel. See võrdlusseade on võimeline käivitama katkestuse, võimaldades sündmusi täpselt töödelda. Kasutades seda koos korralikult kodeeritud ajastusrutiinidega, nagu millis() ja micos() ning kasutades ATmega328 palju suurema eraldusvõimega sisemist taimerit, on Arduino seda tüüpi metallidetektori jaoks suurepärane alus.

Nii et lähtekoodist rääkides - hea algus oleks programmeerida sisemine komparaator sisendite polaarsust "pöörama" ja kasutada sisemist loendurit võimalikult kiiresti muudatuste sageduse muutmiseks.

Arduino lõplik kood:

// Kõigi nõutavate eelmuutujate jne määratlemine. ja registrite seadistamine unsigned char clockSelectBits = _BV(CS10); // eelskaala puudub, full xtal void setup() ( pinMode(6,INPUT); // + võrdlusseadmest – määrates need väärtuseks INPUT, seatakse need // suure impedantsiga pinMode(7,INPUT); // - komparaatorist - määrates need väärtuseks INPUT, // seatakse need väärtusele kõrge impedantsiga cli(); // katkestab katkestused TCCR1A = 0; // seab kogu TCCR1A registri väärtuseks 0 TCCR1B = 0; // sama TCCR1B jaoks TCNT1 = 0 ; // lähtestab loenduri väärtuse 0; TCCR1B |= clockSelectBits; // määrab eelskaalaja ja käivitab kella TIMSK1 = _BV(TOIE1); // määrab taimeri ülevoolukatkestuse lubamise biti sei(); //lubavad katkestused ACSR = (0<< ACD) | // Analog Comparator: Enabled (0 << ACBG) | // Analog Comparator Bandgap Select: AIN0 is applied to the positive input (0 << ACO) | // Analog Comparator Output: Off (1 << ACI) | // Analog Comparator Interrupt Flag: Clear Pending Interrupt (1 << ACIE) | // Analog Comparator Interrupt: Enabled (0 << ACIC) | // Analog Comparator Input Capture: Disabled (0 << ACIS1 | 0 << ACIS0 // interrupt on output toggle // (0 << ACIS1 | 1 << ACIS0 // reserved // (1 << ACIS1 | 0 << ACIS0 // interrupt on falling output edge // (1 << ACIS1 | 1 << ACIS0 // interrupt on rising input edge ; } // this routine is called every time the comparator creates an interrupt ISR(ANALOG_COMP_vect) { oldSREG=SREG; cli(); timeStamp=TCNT1; SREG = oldSREG; } // this routine is called every time there is an overflow in internal counter ISR(TIMER1_OVF_vect){ timer1_overflow_count++; } // this routine is used to reset the timer to 0 void resetTimer(void){ oldSREG = SREG; cli(); // Disable interrupts TCNT1 = 0; //initialize counter value to 0 SREG = oldSREG; // Restore status register TCCR1B |= clockSelectBits; // sets prescaler and starts the clock timer1_overflow_count=0; // resets overflow counter }

Muidugi pole see idee täiesti uus. Suurem osa sellest koodist võib olla erinev. Proovige otsida muid allikaid, näiteks TPIMD.

1. samm: Arduino induktsioonidetektori idee – ümberpööratav mähis


Idee on kasutada Arduinot impulsi induktsioonidetektorina, nagu ka TPIMD-d, kuna lagunemiskõvera idee näib toimivat väga hästi. Impulss-induktsioonidetektorite probleem seisneb selles, et nende tööks on tavaliselt vaja erinevat pinget. Üks pinge mähise toiteks ja eraldi pinge lagunemiskõvera töötlemiseks. Need kaks pingeallikat muudavad impulss-induktsioonidetektorite loomise protsessi alati keeruliseks.

Arvestades PI-detektori pooli pinget, saab saadud kõvera jagada kaheks erinevaks etapiks. Esimene etapp on impulss ise, mis toidab mähist ja loob magnetvälja (1). Teine etapp on pinge vähenemise kõver, mis algab pinge tipust ja muutub seejärel kiiresti vooluta pooli pingeks (2).

Probleem on selles, et mähis muudab pärast impulssi polaarsust. Kui impulss on positiivne (Var 1. lisatud joonisel), on vähenemiskõver negatiivne. Kui impulss on negatiivne, on vaibumiskõver positiivne (Var 2. lisatud joonisel).

Selle põhiprobleemi lahendamiseks tuleb mähis pärast impulssi elektrooniliselt ümber pöörata. Sel juhul võib pulss olla positiivne ja ka vaibumiskõver jääb positiivseks.

Selleks tuleb spiraal pärast impulssi isoleerida Vcc-st ja GND-st. Sel hetkel voolab läbi snubbertakisti ainult vool. Selle isoleeritud mähise ja summutustakisti süsteemi saab "sihtida" mis tahes võrdluspingele. See loob teoreetiliselt kombineeritud positiivse kõvera (vt joonise allosa).

Seda positiivset kõverat saab kasutada komparaator, et määrata ajahetk, mil sumbumispinge "ristub" võrdluspingega. Juhul, kui aare on mähise lähedal, muutuvad võrdluspinge muutumise sumbumise kõver ja aja lõikepunkt. Seda muutust saab tuvastada.

Pärast mõningast katsetamist otsustasin järgmise skeemi järgi:

Ahel koosneb Arduino Nano moodulist. See moodul juhib kahte MOSFET-i, mis toidavad mähist (SV3 juures) D10 kaudu. Kui impulss D10 lõpus lõpeb, eraldavad mõlemad MOSFET-id mähise 12 V ja GND pingest.

Mähises salvestatud energia vabastatakse läbi takisti R2 (220 oomi). Samal ajal ühendab takisti R1 (560 oomi) pooli esimese positiivse külje GND-ga. See muudab takisti R5 (330 oomi) negatiivse sumbumise kõvera positiivseks kõveraks. Dioodid kaitsevad Arduino sisendviiku.

R7 on umbes 0,04 V pingejagaja. Nüüd muutub vaibumiskõver D7-l negatiivsemaks kui 0,04 D6-l, katkestus vallandub ja kestus pärast impulsi lõppu säilib.

Mähise lähedase metalli puhul kestab lagunemiskõver kauem ning aeg impulsi lõpu ja katkestuse vahel pikeneb.

2. samm: detektori ehitamine (paigutus)






Detektori ehitamise protsess on üsna lihtne. Seda saab teha kas leivaplaadil (jäädes originaalskeemi juurde) või jootma osi trükkplaadile.

Arduino Nano plaadil olev D13 LED on kasutusel metallist indikaatorina.

Leivalaua kasutamine on kiireim viis töötava detektori valmistamiseks. Mõned juhtmed tuleb teha, kuid seda saab teha eraldi väikesel leivaplaadil. Piltidel on see kolmes etapis, kuna Arduino ja MOSFETid peidavad osa juhtmeid. Katsetamise ajal lülitasin kogemata dioodid kohe märkamatult välja. See ei mõjutanud eriti detektori käitumist. Jätsin need PCB versiooni.

Joonistel ei ole näidatud ühendusi 0,96 OLED-ekraaniga. See ekraan on ühendatud järgmiselt:

Vcc - 5 V (Arduino kontaktis, mitte toiteallikas!)
GND - GND
SCL - A5
SDA-A4

See OLED-ekraan on vajalik detektori esialgseks kalibreerimiseks. Seda tehakse, seadistades Arduino PIN6-le õige pinge. See pinge peaks olema umbes 0,04 V. Ekraan aitab teil õiget pinget määrata.

Prototüübi versioon töötab väga hästi, kuigi välikasutuseks see ilmselt ei sobi.

3. samm: PCB disain




Mis puudutab jootmist, siis mulle ei meeldi kahepoolne tipptasemel PCB, nii et muutsin vooluringi ühepoolseks.

Tehtud on järgmised muudatused:

  1. Dioodid jäeti välja.
  2. MOSFET-kontaktidele on lisatud 10-oomine takisti.
  3. Pingejaguri toitepinge D6-l seadistatakse kõrgetasemelise signaaliga D8-l
  4. MOSFETide draiveri viik on muudetud.

Nii saab luua ühepoolse PCB, mille saab joota universaalsele PCB-le. Seda skeemi kasutades saate töötava PI-detektori, millel on 8-10 välist komponenti (olenevalt sellest, kas kasutatakse OLED-kuvarit ja/või kõlarit).

4. samm: seadistage detektor ja kasutage seda




Kui detektor on üles ehitatud õigesti ja programm on kirjutatud Arduino keeles, on kõige lihtsam (kui mitte ainus) viis seadme seadistamiseks kasutada OLED-ekraani. Ekraan on ühendatud 5V, GND, A4, A5. Ekraan peaks pärast seadme sisselülitamist näitama "kalibreerimist". Mõne sekundi pärast peaks teade "kalibreerimine lõpetatud" ja ekraanil peaks olema kolm numbrit.

Esimene number on kalibreerimise ajal määratud „võrdlusväärtus”. Teine väärtus on viimane mõõdetud väärtus ja kolmas väärtus on viimase 32 mõõtmise keskmine.

Need kolm väärtust peaksid olema enam-vähem samad (minu testides kuni 1000). Keskmine peaks olema enam-vähem stabiilne.

Esialgse seadistuse alustamiseks ei tohiks mähise läheduses olla metalli.

Nüüd tuleks pingejagurit (häälestustakistit) reguleerida nii, et kaks alumist väärtust seatakse maksimaalseks, säilitades samal ajal stabiilse näidu. On kriitiline seadistus, kus keskmine hakkab andma kummalisi näitu. Stabiilsete väärtuste taastamiseks keerake trimmerit.

Võib juhtuda, et ekraan hangub. Lihtsalt vajutage lähtestamisnuppu ja alustage uuesti.

Minu konfiguratsiooni jaoks (mähis: 18 pööret\20 cm) on stabiilne väärtus umbes 630-650. Pärast installimist vajutage lähtestamisnuppu, seade kalibreerub uuesti ja kõik kolm väärtust jäävad samasse vahemikku. Kui metall nüüd mähise lähedusse tuua, peaks Arduino plaadil (D13) süttima LED. Kaasasolev kõlar teeb paar klõpsu (lähtekoodis on arenguruumi).

Suurte ootuste vältimiseks:

Detektor tuvastab mõned asjad, kuid see jääb väga lihtsaks ja piiratud.

Võimalustest aimu andmiseks võrdlesin mõnda teist detektorit enda omaga. Tulemused on 8 välise elemendiga detektori puhul siiski üsna muljetavaldavad, kuid ei vasta professionaalsetele seadmetele.

Skeemi ja programmi vaadates näen palju arenguruumi. Takisti väärtused valiti kogemuste põhjal, impulsi aeg 250 ms valiti juhuslikult, samuti pooli parameetrid.

Failid

5. samm: 16x2 ekraani ühendamine



Testimise käigus mõistsin, et I2C OLED-ekraanide teek kulutab liiga palju ressursse, mistõttu otsustasin kasutada 16x2-ekraani koos I2C-muunduriga.

Olen kohandanud programmi LCD-ekraani jaoks, lisades mõned kasulikud funktsioonid. Ekraani esimene rida näitab nüüd võimaliku näidu signaali taset. Teine rida näitab nüüd kahte väärtust. Esimene näitab praeguse signaali kõrvalekallet võrreldes kalibreerimisväärtusega. See väärtus peaks olema "0". Kui see väärtus on pidevalt negatiivne või positiivne, tuleb detektor kalibreerida, vajutades lähtestusnuppu. Positiivsed väärtused näitavad metalli mähise lähedal.

Teine väärtus näitab vähenemiskõvera tegelikku viivitusväärtust. See väärtus ei ole tavaliselt nii huvitav, kuid see on vajalik detektori esialgseks seadistamiseks.

Programm võimaldab nüüd jälgida mitut impulsi kestust järjest (see on vahend katsetamiseks/jõudluse parandamiseks). Kuid ma ei saanud mingit läbimurret, seega on vaikimisi seatud üks impulsi laius.

Esialgne detektori seadistamine

Detektori seadistamisel on oluline teise rea teine ​​väärtus (esimest võib ignoreerida). Esialgu võib väärtus olla "ebastabiilne" (vt pilti). Keerake trimmerit, kuni väärtus saavutab stabiilse näidu. Seejärel pöörake seda, et suurendada väärtust maksimaalse stabiilse väärtuseni. Uuesti kalibreerimiseks vajutage lähtestusnuppu ja detektor on kasutamiseks valmis.

Mulle jäi mulje, et pärast maksimaalse stabiilse väärtuse määramist kaotasin tundlikkuse värviliste metallide suhtes. Seega tasub selle parandamiseks seadetega katsetada.

Rullid

Impulssmetallidetektori ahela edasiseks testimiseks tegin 3 mähist:

  • 1 -> 18 pööret/ 200 mm
  • 2 -> 25 pööret/100 mm
  • 3 -> 48 pööret/100 mm

Huvitaval kombel töötasid kõik poolid üsna hästi, peaaegu sama jõudlusega (rubla münt 40-50 mm kõrgusel õhus). See võib olla väga subjektiivne tähelepanek.