Sen erikoisuus on, että laite on valmistettu käsineen muodossa, siinä on sekä elektroninen osa että hakukela. Metallinpaljastin luotiin etsimään talosta kadonneita pieniä metalliesineitä, kuten korvakoruja, sormuksia ja muuta. Tämän järjestelmän perusteella voit kuitenkin tehdä klassisen metallinpaljastimen ulkotöihin. Laitteen valmistamiseksi tarvitset vähintään materiaaleja, leijonanosan tehtävistä ratkaisee Arduino-mikrokontrolleri.

Metallinpaljastimen teho on pieni, mutta kotikäyttöön se riittää.


Materiaalit ja työkalut valmistukseen:
- Arduino UNO mikrokontrolleri;
- 28 gaugen lanka (halkaisija 0,32 mm);
- yksi kytkin;
- pietsosummeri;
- kaksi 10K vastusta;
- yksi 1,2K vastus;
- kaksi 100n kondensaattoria;
- kaksi 22n kondensaattoria;
- yksi transistori tyyppi BC547;
- 9V akku;
- rakennushanskat.

Tarvitset myös vaneria, puuliimaa, juotoskolvia juotteella, lankaa, leipälautaa ja muita pieniä asioita.

Metallinpaljastimen valmistusprosessi:

Ensimmäinen askel. Kelan tekeminen
Kelan valmistamiseksi sinun on leikattava pohja, runko. Kirjoittaja leikkaa koneella vanerin kelan, jonka halkaisija on 6 tuumaa. Tuloksena on kaksi rengasta, jotka liimataan sitten yhteen puuliimalla. Kuivumisen jälkeen kela käsitellään huolellisesti hiekkapaperilla, jotta se on sileä. Alustan valmistuksen jälkeen lanka voidaan kelata siihen. Kaiken kaikkiaan sinun on tehtävä 30 kierrosta lankaa, jolloin pää on vähintään 5 tuumaa pitkä liittämistä varten. Sinun on kelattava lanka tiukasti, tämä varmistaa kelan laadukkaan toiminnan. Kela voidaan kääriä sähköteipillä tai teipillä langan päälle paremman kiinnityksen varmistamiseksi.





Vaihe kaksi. Piirin kokoaminen leipälevylle
Varmistaaksesi, että kela on koottu oikein ja koko järjestelmä toimii oikein, se on ensin koottava leipälaudalle ja vasta sitten juotettava. Kytkentäjärjestys ei ole tärkeä, kirjoittaja aloitti transistorilla, sitten tuli vastukset ja kondensaattorit. Tämän jälkeen Arduino-levyn "uros- ja naaras" liittimet yhdistettiin.












Tämän jälkeen voit kytkeä kelan. Koska lankassa on lakkapinnoite, se on kaavittava päistään hiekkapaperilla tai terävällä veitsellä. Sinun on saavutettava hyvä kontakti. Käämi on kytketty "uros- ja naarasliittimillä". Kun kaikki elementit on asennettu ohjaimeen, voit ladata laiteohjelmiston ja tarkistaa, kuinka kaikki toimii käytännössä.

Vaihe kolme. Laiteohjelmiston asennus ja järjestelmän tarkistaminen
Seuraavaksi sinun on ladattava laiteohjelmisto ohjaimeen. Saatat myös joutua tekemään joitain muutoksia koodiin, jotta metallinpaljastin toimisi oikein. Kun koodi on ladattu, voit aloittaa testauksen. Sinun on kytkettävä 9 V virtalähde järjestelmään ja sammutettava kytkin. Jos metallinpaljastin toimii, voit aloittaa kaikkien levyn elementtien juottamisen.


Vaihe neljä. Piirin juottaminen
Kaikki kootaan piirilevyn päälle, koskettimet juotetaan yhteen lankapaloilla. Tarvittaessa voit tehdä laitteelle erityisen levyn etsausmenetelmällä. Voit nähdä tarkemmin, kuinka piiri kootaan kuvassa.





Vaihe viisi. Kokoamisen viimeinen vaihe
Laudan kiinnittämiseen kirjoittaja käyttää vaneria. Sen tulee olla mitoitettu sopimaan Arduino-ohjaimeen ja painettuun piirilevyyn. Reunat on hiottava, jotta ne ovat sileitä. Elementtien liimaamiseksi vaneriin voit käyttää kaksipuolista teippiä. Myös liima ja muut kiinnitysmenetelmät toimivat.

Uudelleensuunniteltu versio tunnetusta pulssimetallinpaljastimesta - "Pirate", mutta Arduinossa. Sillä on hyvä herkkyys jopa pienille kolikoille. Vakaa lämpötilasta ja akun latauksesta riippumatta. Kaava on yksinkertaistettu niin paljon kuin mahdollista.

Yksi haitoista on kyvyttömyys määrittää metallityyppiä. Vain metallinpaljastimet, joissa on radiosäteilyn tunnistusperiaate, voivat määrittää tyypin (ne ovat rakenteeltaan monimutkaisia ​​ja vaativat tarkan virityksen). Pulssimetallinilmaisin puolestaan ​​toimii metallin indusoituneiden virtojen magneettisessa havaitsemisessa. Haun aikana tapahtuvaa induktiota ei voida erottaa rauta- ja ei-rautametallien osalta.

Muuten, on olemassa kolmannen tyyppinen metallinilmaisin - taajuusilmaisin. Tehoton ja hyvin yksinkertainen rakenne, joka perustuu magneettipiirin värähtelygeneraattoriin, joka on herkkä kelan induktion suuruuden muutoksille. Emme ota sitä huomioon alhaisen herkkyyden vuoksi. Henkilökohtaiset kokeet tällaisen suunnittelun kehittämiseksi mahdollistivat parhaimmillaan paistinpannun havaitsemisen 20 cm:n syvyydeltä. Hän reagoi kolikoihin vain tyhjällä alueella. Melkein turha juttu. Siksi hän kieltäytyi välittömästi.


Pulssimetallinilmaisinpiirissämme on useita pääkomponentteja. Arduino tuottaa pulsseja, niitä vahvistaa kenttätransistor (virtakytkin), joka puolestaan ​​indusoi pulsseja kelan magneettikentässä. Magneettipulssi siirtyy haluttuun metalliin ja indusoi siihen virran ja sitten paluumagneettikentän signaalin. Tämä käänteinen magneettivuo palaa lyhyen viiveen jälkeen takaisin metallinilmaisinkelaan ja tuottaa pulssin. Signaali kulkee diodiparin ohi (diodeja tarvitaan jännitteen rajoittamiseen 1 volttiin) ja menee operaatiovahvistimen tuloon. Vahvistettu signaali tulee arduinoon, jossa "putoava häntä" lasketaan sen jälkeen, kun kela on sammutettu virtakytkimellä. Nuo. vain vastaus halutusta metalliesineestä. Vaimenemisajasta riippuen voimme arvioida kohteen koon tai etäisyyden. Indikaattori näyttää tämän arvon 8 indikaattoritasolla.

Rullasta puheen ollen. Sen tulee olla halkaisijaltaan 20 cm ja 20 kierrosta lankaa 0,4 - 0,8 mm. Myös langan paksuus vaikuttaa koko kelan induktioon. Voimakas poikkeama langan paksuudesta johtaa laitteen herkkyyden heikkenemiseen. Kierukka työnnetään PVC-vesiputkeen, eikä siinä ole ylimääräisiä metalliliitoksia.



Ohjelmaluonnos sisältää pulssigeneraattorin ja algoritmin vahvistimesta tulevan signaalin käsittelemiseksi.

Int ss0 = 0; int ss1 = 0; int ss2 = 0; pitkä c0 = 0; pitkä c1 = 0; pitkä c2 = 0; tavu i = 0; int sss0 = 0; int sss1 = 0; int sss2 = 0; int s0 = 0; int s1 = 0; int s2 = 0; void setup() ( DDRB = 0xFF; // portti B - kaikki ulos DDRD = 0xFF; // portti D - kaikki ulos for (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); viive(1); sss0 = 0; sss1 = 0; sss2 = 0; ) )






Tästä ohjeesta opit valmistamaan kotitekoisen metallinpaljastimen kotona. Erilaisten metalliesineiden löytäminen on hieno harrastus, joka pitää sinut ulkona, löytää uusia paikkoja ja ehkä löytää jotain mielenkiintoista. Ennen kuin opit valmistamaan metallinpaljastimen itse, tarkista paikallisista laeista, kuinka käsitellä mahdollisia löytöjä, erityisen vaarallisia esineitä, arkeologisia jäänteitä tai esineitä, joilla on merkittävää taloudellista tai emotionaalista arvoa.

Internetissä on melko paljon ohjeita ei-rautametallien voimakkaiden metallinpaljasinten kotitekoiseen kokoamiseen omilla käsilläsi, mutta tämän ohjeen erikoisuus on, että Arduinon lisäksi tarvitaan vain muutama komponentti : tavallinen kondensaattori, vastus ja diodi, jotka muodostavat sydämen yhdessä hakukelan kanssa, joka koostuu 20 sähköä johtavan kaapelin käämistä. LED, kaiutin ja/tai kuulokkeet. Lisäetuna on se, että kaikki saa virtaa 5 V:sta, mikä riittää 2000 mAh:n kokonaisteholle.

Signaalin tulkitsemiseksi ja sen ymmärtämiseksi, mitä materiaaleja ja esineiden muotoja ilmaisin voi havaita, on syytä syventyä fysiikkaan. Nyrkkisäännön mukaan ilmaisin on herkkä kohteille, jotka ovat enintään kelan säteen etäisyydellä tai syvyydellä. Se on herkin kohteille, joissa virta voi kulkea kelan tasossa. Siten kelan tasossa oleva metallilevy tuottaa paljon voimakkaamman vasteen kuin sama metallilevy kohtisuorassa kelaan nähden. Esineen painolla ei ole suurta merkitystä. Ohut alumiinifolio, joka on suunnattu käämin tasoon, tuottaa paljon voimakkaamman vasteen kuin raskasmetallipultti.

Vaihe 1: Toimintaperiaate

Kun sähkö alkaa kulkea kelan läpi, se luo magneettikentän. Faradayn induktiolain mukaan muuttuva magneettikenttä johtaa sähkökenttään, joka vastustaa muuttuvaa magneettikenttää. Siten käämin yli kehittyy jännite, joka vastustaa virran kasvua. Tätä vaikutusta kutsutaan itseinduktanssiksi ja induktanssin yksikkö on Henry, jossa 1 Henryn kela kehittää 1 V:n potentiaalieron, kun virta muuttuu 1 ampeerilla sekunnissa. Kelan, jossa on N käämiä ja säde R, induktanssi on noin 5 µH x N^2 x R, R metreinä.

Metalliesine kelan lähellä muuttaa sen induktanssia. Metallityypistä riippuen induktanssi voi kasvaa tai pienentyä. Ei-magneettiset metallit, kuten kupari ja alumiini kelan lähellä, vähentävät induktanssia, koska muuttuva magneettikenttä indusoi esineeseen pyörrevirtoja, jotka vähentävät paikallisen magneettikentän voimakkuutta.

Ferromagneettiset materiaalit, kuten rauta lähellä kelaa, lisäävät induktanssia, koska indusoidut magneettikentät ovat kohdakkain ulkoisen magneettikentän kanssa.

Näin ollen kelan induktanssia mittaamalla voidaan havaita metallien läsnäolo läheisyydessä. Arduinolla, kondensaattorilla, diodilla ja vastuksella voit mitata kelan induktanssia näin: Kun kela tehdään osaksi ylipäästöistä LR-suodatinta ja syötetään siihen aaltolohkoilla, syntyy lyhyitä purskeita jokainen siirtymä. Näiden purskeiden kesto on verrannollinen kelan induktanssiin. Itse asiassa LR-suodattimen ominaisaika on tau = L/R. Kaksikymmentä kierrosta sisältävälle kelalle, jonka halkaisija on 10 cm, L ~ 5muH x 20^2 x 0,05 = 100 µH.

Arduinon suojaamiseksi ylivirralta vähimmäisvastus on 200 ohmia. Joten odotamme pulsseja, joiden pituus on noin 0,5 mikrosekuntia. Näitä on vaikea mitata suoraan suurella tarkkuudella, koska Arduinon kellotaajuus on 16 MHz.

Sen sijaan nousevaa pulssia voidaan käyttää kondensaattorin lataamiseen, jonka voi sitten lukea Arduinon analogia-digitaalimuuntimella (ADC). Odotettu varaus 25 mA:n pulssista, joka kestää 0,5 mikrosekuntia, on 12,5 nK, mikä antaisi 1,25 V 10 nF:n kondensaattorille. Jännitteen pudotus diodin yli pienentää tätä arvoa. Jos pulssi toistetaan useita kertoja, kondensaattorin varaus kasvaa ~2 V. Nämä parametrit voidaan saada Arduino ADC: llä analogRead(:lla). Kondensaattori voidaan sitten purkaa nopeasti muuttamalla sensoriliitin lähtöön ja asettamalla se 0 V:iin muutamaksi mikrosekunniksi.

Kaikki mittaukset vievät noin 200 mikrosekuntia, 100 kondensaattorin lataamiseen ja nollaukseen ja 100 ADC:n muuntamiseen. Tarkkuutta voidaan parantaa merkittävästi toistamalla mittaus ja laskemalla tuloksen keskiarvo: keskimäärin 256 mittausta kestää 50 ms ja parantaa tarkkuutta kertoimella 16. Siten 10-bittinen ADC saavuttaa 14-bittisen ADC:n tarkkuuden.

Koska saadut parametrit ovat erittäin epälineaarisia kelan induktanssin kanssa, emme voi tietää induktion todellista arvoa. Metallien havaitsemiseen olemme kuitenkin kiinnostuneita vain vähäisistä muutoksista kelan induktiivuudessa, joka johtuu metallien läsnäolosta lähellä, ja tähän menetelmä on ihanteellinen.

Mittausten kalibrointi voidaan suorittaa automaattisesti ohjelmiston avulla. Jos kelan lähellä ei ole metallia suurimman osan ajasta, poikkeama keskiarvosta osoittaa metalliesineen läsnäolon lähellä.

Käyttämällä eri värisiä lamppuja ja ääniä voit myös nähdä eron - induktio kasvaa tai vähenee.

Vaihe 2: Luettelo vaadituista komponenteista

Sähköinen pohja:

  • Arduino UNO R3 + kehityslevy tai Arduino Nano 5x7cm kehityslevyllä
  • 10nF kondensaattori
  • Pieni signaalidiodi, esimerkiksi 1N4148
  • 220 ohmin vastus

Ruoaksi:

  • Kannettava laturi USB-kaapelilla

Visuaalista tulosta varten:

  • 2 eriväristä LEDiä, esimerkiksi sininen ja vihreä
  • 2 220 ohmin vastusta virranrajoitukseen

Äänen toistaminen:

  • Passiivinen summeri
  • Mikrokytkin mykistystä varten

Kuulokkeiden ulostulolle:

  • Kuulokeliitäntä
  • Vastus 1 kOhm
  • Kuulokkeet

Voit helposti liittää/irrottaa hakukelan seuraavasti:

  • 2-napainen ruuviliitin (liitin)

Hakukelalle:

  • ~ 5 metriä ohutta sähkökaapelia

Kelan suunnittelu. Pitäisi olla jäykkä, mutta ei pyöreä. Rakentamiseen: Noin 1 metri - puinen, muovinen tai selfie-tikku.

Vaihe 3: Hakukela

Hakukelaa varten kiedoin noin 4 metriä kierrettyä lankaa halkaisijaltaan 9 cm:n pahvisylinterin ympärille, jolloin tuloksena oli 18 kierrosta. Kaapelityypillä ei ole väliä, kunhan resistanssi on vähintään kymmenen kertaa pienempi kuin RL-suodattimen R-arvo, joten varmista, että se pysyy alle 20 ohmin. Mittasin sen ja se tuli 1 ohmiin, joten se on turvallista. Myös 10 metrin rulla liitoslankaa, jonka päät ovat haarautunut, sopii.

Vaihe 4: Rakenna prototyyppi




Koska ulkoisia komponentteja on vähän, on täysin mahdollista koota piiri pienelle koepalalevylle. Lopputulos on kuitenkin melko iso eikä kovin luotettava. Siksi on parempi käyttää Arduino nanoa ja juotetta lisäkomponenteilla 5x7cm prototyyppipaneelissa (katso seuraava vaihe)

Metallintunnistus käyttää vain kahta Arduino-nastaa, joista toinen antaa pulsseja LR-suodattimelle ja toinen kondensaattorin jännitteen tunnistamiseen. Pulssi voidaan tehdä mistä tahansa lähtönastasta, mutta lukeminen on suoritettava jollakin analogisista nastoista A0-A5. Kolmea muuta nastaa käytetään kahdelle LEDille ja äänilähtöön.

Kokoamisjärjestys:

  1. Kytke koepalevyllä 220 ohmin vastus, kondensaattori ja diodi sarjaan negatiivisen liittimen (musta viiva) kanssa kondensaattoriin.
  2. Kytke A0 vastukseen (pää ei ole kytketty diodiin)
  3. Kytke A1 diodin ja kondensaattorin leikkauskohtaan
  4. Kytke käämin toinen pää vastuksen ja diodin leikkauskohtaan
  5. Kytke käämin toinen pää maahan
  6. Yhdistä yksi LED positiivisella liittimellä nastaan ​​D12 ja sen negatiivinen napa 220 ohmin vastuksen kautta maahan
  7. Yhdistä toinen LED positiivisella liittimellä nastaan ​​D11 ja sen negatiivinen napa 220 ohmin vastuksen kautta maahan
  8. Liitä halutessasi kuulokkeet tai kaiuttimet nastan 10 ja maan väliin. Kondensaattori tai vastus voidaan lisätä sarjaan äänenvoimakkuuden vähentämiseksi.

Siinä kaikki!

Vaihe 5: Laitteen lopullisen version tekeminen


Jotta metallinpaljasinta voidaan käyttää ulkona, kaikki komponentit on juotettava kunnolla. Tavallinen 7x5cm leipälauta sopii täydellisesti Arduino nanon ja kaikkien muiden komponenttien kanssa. Käytä samaa kuviota kuin edellisessä vaiheessa. Päätin myös lisätä kytkimen sarjaan summerin kanssa, jotta voin sammuttaa äänen, kun sitä ei tarvita. Ruuvipuristimen avulla voit nopeasti kokeilla erilaisia ​​keloja ilman, että sinun tarvitsee juottaa uudelleen. Kaikki virta syötetään Arduino Nanon 5 V mini- tai microUSB-portin kautta.

Vaihe 6: Ohjelmisto

Voit ladata Arduino-luonnoksen alta. Lataa ja suorita se. Käytin Arduino 1.6.12 IDE:tä. On suositeltavaa suorittaa debug = true alussa pulssien lukumäärän säätämiseksi mittausta kohti. On parasta, että ADC-lukema on välillä 200-300. Lisää tai vähennä pulssien määrää, jos kela antaa täysin erilaisen lukeman.

Luonnos suorittaa jonkin verran itsekalibrointia. Riittää, kun asetat kelan hetkeksi pois metalleista. Pieniä muutoksia induktiivuudessa havaitaan, mutta äkilliset suuret muutokset eivät vaikuta pitkän ajan keskiarvoon.

Tiedostot

Vaihe 7: Suojaa laite


Todennäköisesti et halua etsiä aarteita lattialla ryömiessäsi, joten on parempi asentaa koko rakenne tikun päähän. Selfie-tikku on täydellinen; se on kevyt, taitettava ja säädettävä. Kannettava akku sopii kepille täydellisesti. Levy voidaan kiinnittää nippusiteillä ja kelalla samalla tavalla kiinnittämällä se akkuun tai selfie-tikkuun.

Vaihe 8: Käyttöohjeet

Viitearvon määrittämiseksi riittää, kun siirrät kotitekoista metallinilmaisinta pois metalleista noin 5 sekunnin ajaksi. Sitten, kun kela lähestyy metallia, vihreä tai sininen LED alkaa vilkkua ja kuuluu myös äänimerkkejä.

Siniset välähdykset ja matalataajuiset piippaukset osoittavat ei-ferromagneettisten metallien läsnäolon. Vihreät välähdykset ja korkeataajuiset piippaukset osoittavat ferromagneettisten metallien läsnäolon. Huomaa, että kun kela on metallin lähellä yli 5 sekuntia, tuloksena olevaa arvoa pidetään vertailuarvona, ja kun siirrät ilmaisimen pois metallista, kuuluu äänimerkki, joka sammuu muutaman sekunnin kuluttua. sekuntia. Vilkkuvien diodien ja äänisignaalien taajuus riippuu signaalin voimakkuudesta.

Kerran, kun olen rakentanut omin käsin useita eri suorituskykyisiä metallinilmaisimia, halusin tutkia, kuinka Arduino-piiri toimii tähän suuntaan.

On olemassa useita hyviä esimerkkejä metallinpaljastimen kokoamisesta omin käsin. Yleensä ne kuitenkin vaativat melko paljon ulkoisia komponentteja analogisen signaalin käsittelemiseksi tai lähtöherkkyys on melko heikko.

Kun ajattelemme pulssimetallinilmaisimia, pääaiheena on kuinka havaita pienet jännitteen muutokset hakukelaan liittyvissä signaaleissa. Nämä muutokset ovat yleensä hyvin pieniä. Ilmeisin tapa on käyttää ATmega328 analogisia tuloja. Mutta teknisiä tietoja tarkasteltaessa on kaksi pääongelmaa: ne ovat enimmäkseen hitaita ja resoluutio on (useimmissa tapauksissa) alhainen.

Toisaalta mikrokontrolleripohjainen metallinpaljastin toimii 16 MHz:llä ja sillä on melko hyvät ajoitusominaisuudet, nimittäin 0,0625 µs:n resoluutio kellotaajuutta käytettäessä. Joten analogisen tulon käyttämisen sijaan yksinkertaisin tapa havaita pieniä dynaamisia jännitteen muutoksia on verrata jännitehäviön muutosta ajan kuluessa kiinteällä vertailujännitteellä.

Tätä tarkoitusta varten ATmega328:ssa on sopivat sisäiset vertailuominaisuudet D6:n ja D7:n välillä. Tämä vertailija pystyy laukaisemaan keskeytyksen, mikä mahdollistaa tapahtumien tarkan käsittelyn. Käyttämällä tätä yhdessä siististi koodattujen ajastusrutiinien, kuten millis() ja micos() kanssa, ja käyttämällä ATmega328:n paljon korkeamman resoluution sisäistä ajastinta, Arduino on erinomainen perusta tällaiselle metallinpaljastimelle.

Joten lähdekoodista puheen ollen - hyvä alku olisi ohjelmoida sisäinen vertailija "kääntämään" tulojen napaisuutta ja käyttää sisäistä laskuria mahdollisimman nopeasti muutosten taajuuden muuttamiseksi.

Lopullinen koodi Arduinolle:

// Kaikkien vaadittujen esimuuttujien määrittäminen jne. ja asetetaan rekisterit unsigned char clockSelectBits = _BV(CS10); // ei esiskaalaa, full xtal void setup() ( pinMode(6,INPUT); // + vertailusta - asettamalla ne INPUT-asetuksiksi, ne // asetetaan korkeaimpedanssiin pinMode(7,INPUT); // - vertailijasta - asettamalla ne INPUT:ksi, ne // asetetaan korkeaimpedanssiin cli(); // pysäyttää keskeytykset TCCR1A = 0; // asettaa koko TCCR1A-rekisterin arvoon 0 TCCR1B = 0; // sama TCCR1B:lle TCNT1 = 0 ; // alusta laskurin arvo 0:ksi; TCCR1B |= clockSelectBits; // asettaa esiskaalaimen ja käynnistää kellon TIMSK1 = _BV(TOIE1); // asettaa ajastimen ylivuotokeskeytyksen enable bitin sei(); //salli keskeytykset 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 }

Tämä ajatus ei tietenkään ole täysin uusi. Suurin osa tästä koodista voi olla erilainen. Kokeile etsiä muita lähteitä, kuten TPIMD.

Vaihe 1: Arduino-induktioilmaisimen idea - Flip Coil


Ajatuksena on käyttää Arduinoa pulssi-induktioilmaisimena, aivan kuten TPIMD:tä, koska vaimenemiskäyrä-idea näyttää toimivan erittäin hyvin. Pulssi-induktioilmaisimien ongelmana on, että ne vaativat yleensä erilaisia ​​jännitteitä toimiakseen. Yksi jännite kelaa varten ja erillinen jännite vaimennuskäyrän käsittelyyn. Nämä kaksi jännitelähdettä vaikeuttavat aina pulssi-induktioilmaisimien rakentamista.

Ottaen huomioon PI-ilmaisimen kelajännitteen tuloksena oleva käyrä voidaan jakaa kahteen eri vaiheeseen. Ensimmäinen vaihe on itse pulssi, joka antaa virran kelalle ja luo magneettikentän (1). Toinen vaihe on jännitteen vaimenemiskäyrä, joka alkaa jännitehuipusta ja muuttuu sitten nopeasti "ei-teho" -kelajännitteeksi (2).

Ongelmana on, että kela muuttaa napaisuuttaan pulssin jälkeen. Jos pulssi on positiivinen (muuttuja 1. oheisessa kuvassa), vaimennuskäyrä on negatiivinen. Jos pulssi on negatiivinen, vaimennuskäyrä on positiivinen (muuttuja 2. oheisessa kuvassa).

Tämän perusongelman ratkaisemiseksi kela on "käännettävä" elektronisesti pulssin jälkeen. Tässä tapauksessa pulssi voi olla positiivinen ja vaimenemiskäyrä pysyy myös positiivisena.

Tätä varten kela on eristettävä Vcc:stä ja GND:stä pulssin jälkeen. Tässä vaiheessa snubber-vastuksen läpi kulkee vain virta. Tämä eristetty käämi ja vaimennusvastusjärjestelmä voidaan "kohdistaa" mihin tahansa referenssijännitteeseen. Tämä luo teoriassa yhdistetyn positiivisen käyrän (katso piirustuksen alaosa).

Vertailija voi käyttää tätä positiivista käyrää määrittääkseen ajankohdan, jolloin vaimennusjännite "risteää" vertailujännitteen kanssa. Jos aarre on lähellä käämiä, vaimennuskäyrä ja vertailujännitteen muutoksen aikaleikkaus muuttuvat. Tämä muutos voidaan havaita.

Pienen kokeilun jälkeen päädyin seuraavaan kaavioon:

Piiri koostuu Arduino Nano -moduulista. Tämä moduuli ohjaa kahta MOSFETiä, jotka syöttävät käämiin (SV3:ssa) D10:n kautta. Kun pulssi D10:n lopussa päättyy, molemmat MOSFETit eristävät kelan 12 V:stä ja GND:stä.

Kelaan varastoitu energia vapautetaan vastuksen R2 (220 ohmia) kautta. Samanaikaisesti vastus R1 (560 ohmia) yhdistää kelan ensimmäisen positiivisen puolen GND:hen. Tämä muuttaa vastuksen R5 (330 ohmia) poikki negatiivisen vaimennuskäyrän positiiviseksi. Diodit suojaavat Arduinon tulonastaa.

R7 on noin 0,04 V:n jännitteenjakaja. Nyt vaimenemiskäyrästä D7:llä tulee negatiivisempi kuin 0,04:stä D6:lla, keskeytys laukeaa ja pulssin päättymisen jälkeinen kesto säilyy.

Käämin lähellä olevan metallin tapauksessa vaimenemiskäyrä kestää pidempään ja pulssin lopun ja katkaisun välinen aika pitenee.

Vaihe 2: Ilmaisimen rakentaminen (asettelu)






Ilmaisimen rakentamisprosessi on melko yksinkertainen. Tämä voidaan tehdä joko leipälevyllä (alkuperäiseen kaavioon kiinni pitäen) tai juottamalla osia piirilevylle.

Arduino Nano -levyn D13 LED -valoa käytetään metalliosoittimena.

Leipälaudan käyttö on nopein tapa tehdä toimiva ilmaisin. Jotkin johdotukset on tehtävä, mutta tämä voidaan tehdä erillisellä pienellä koelautailulla. Kuvissa tämä näkyy kolmessa vaiheessa, kun Arduino ja MOSFET piilottavat osan johtimista. Testauksen aikana sammutin diodit vahingossa huomaamattani heti. Tämä ei erityisesti vaikuttanut ilmaisimen toimintaan. Jätin ne PCB-versioon.

Kuvat eivät näytä kytkentöjä 0,96 OLED-näyttöön. Tämä näyttö on kytketty seuraavasti:

Vcc - 5V (Arduino-nastassa, ei virtalähteessä!)
GND - GND
SCL - A5
SDA-A4

Tämä OLED-näyttö tarvitaan ilmaisimen alkukalibrointiin. Tämä tehdään asettamalla oikea jännite Arduinon PIN6:een. Tämän jännitteen tulee olla noin 0,04 V. Näyttö auttaa sinua asettamaan oikean jännitteen.

Prototyyppiversio toimii erittäin hyvin, vaikka se ei todennäköisesti sovellu kenttäkäyttöön.

Vaihe 3: Piirilevyn suunnittelu




Mitä juottamiseen tulee, en todellakaan pidä kaksipuolisesta huippuluokan piirilevystä, joten muutin piiriä yksipuoliseksi.

Seuraavat muutokset on tehty:

  1. Diodit jätettiin pois.
  2. MOSFET-koskettimiin on lisätty 10 ohmin vastus.
  3. Jännitteenjakajan syöttöjännite D6:ssa asetetaan D8:n korkean tason signaalilla
  4. MOSFET-ajurin nasta on vaihdettu.

Tällä tavalla voidaan luoda yksipuolinen piirilevy, joka voidaan juottaa yleispiirilevylle. Tällä piirillä saat toimivan PI-ilmaisimen, jossa on 8-10 ulkoista komponenttia (riippuen siitä, käytetäänkö OLED-näyttöä ja/tai kaiutinta).

Vaihe 4: Määritä ja käytä ilmaisinta




Jos ilmaisin on rakennettu oikein ja ohjelma on kirjoitettu Arduinolla, helpoin (ellei ainoa) tapa määrittää laite on käyttää OLED-näyttöä. Näyttö on kytketty 5V, GND, A4, A5. Näytössä pitäisi näkyä "kalibrointi", kun laite on kytketty päälle. Muutaman sekunnin kuluttua pitäisi sanoa "kalibrointi valmis" ja näytössä pitäisi näkyä kolme numeroa.

Ensimmäinen numero on kalibroinnin aikana määritetty "viitearvo". Toinen arvo on viimeisin mitattu arvo ja kolmas arvo on viimeisten 32 mittauksen keskiarvo.

Näiden kolmen arvon pitäisi olla suurin piirtein samat (jopa 1000 testeissäni). Keskiarvon pitäisi olla enemmän tai vähemmän vakaa.

Alkuasennuksen aloittamiseksi kelan lähellä ei saa olla metallia.

Nyt jännitteenjakaja (viritysvastus) tulee säätää niin, että kaksi alinta arvoa asetetaan maksimiarvoon säilyttäen samalla vakaan lukeman. On kriittinen asetus, jossa keskiarvo alkaa antaa outoja lukemia. Käännä trimmeriä saadaksesi vakaat arvot uudelleen.

Saattaa käydä niin, että näyttö jäätyy. Paina vain nollauspainiketta ja aloita uudelleen.

Omassa kokoonpanossani (kela: 18 kierrosta\20 cm) vakaa arvo on noin 630-650. Paina asennuksen jälkeen nollauspainiketta, laite kalibroi uudelleen ja kaikki kolme arvoa ovat samalla alueella. Jos metalli tuodaan nyt kelan lähelle, Arduino-levyn (D13) LEDin pitäisi syttyä. Mukana oleva kaiutin tekee muutaman napsautuksen (lähdekoodissa on parantamisen varaa).

Suurten odotusten välttämiseksi:

Ilmaisin havaitsee joitain asioita, mutta se on hyvin yksinkertainen ja rajoitettu.

Jotta voisin saada käsityksen ominaisuuksista, vertasin joitain muita ilmaisimia omaani. Tulokset ovat edelleen varsin vaikuttavia 8 ulkoisella elementillä varustetulla ilmaisimella, mutta ne eivät vastaa ammattilaitteita.

Tarkasteltaessani suunnitelmaa ja ohjelmaa näen paljon parantamisen varaa. Vastusarvot valittiin kokemuksen perusteella, pulssiaika 250 ms valittiin satunnaisesti, samoin kuin kelan parametrit.

Tiedostot

Vaihe 5: 16x2-näytön liittäminen



Testauksen aikana ymmärsin, että I2C OLED -näyttökirjasto kulutti liikaa resursseja, joten päätin käyttää 16x2-näyttöä I2C-muuntimella.

Olen mukauttanut ohjelman LCD-näytölle ja lisännyt joitain hyödyllisiä ominaisuuksia. Näytön ensimmäisellä rivillä näkyy nyt mahdollisen ilmaisun signaalitaso. Toisella rivillä näkyy nyt kaksi arvoa. Ensimmäinen osoittaa nykyisen signaalin poikkeaman kalibrointiarvoon verrattuna. Tämän arvon tulee olla "0". Jos tämä arvo on jatkuvasti negatiivinen tai positiivinen, ilmaisin on kalibroitava painamalla nollauspainiketta. Positiiviset arvot osoittavat metallia kelan lähellä.

Toinen arvo näyttää vaimenemiskäyrän todellisen viivearvon. Tämä arvo ei yleensä ole niin mielenkiintoinen, mutta se on välttämätön ilmaisimen alkuasennuksessa.

Ohjelman avulla voit nyt seurata useita pulssien kestoja peräkkäin (keino kokeiluun/suorituskyvyn parantamiseen). Mitään läpimurtoa en kuitenkaan saanut, joten oletusarvoksi on asetettu yksi pulssinleveys.

Ilmaisimen alkuasetus

Ilmaisinta asennettaessa toisen rivin toinen arvo on tärkeä (ensimmäinen voidaan jättää huomiotta). Aluksi arvo voi olla "epävakaa" (katso kuva). Käännä trimmeriä, kunnes arvo saavuttaa vakaan lukeman. Pyöritä sitten sitä suurentaaksesi arvoa vakaan enimmäisarvoonsa. Paina nollauspainiketta kalibroidaksesi uudelleen ja ilmaisin on käyttövalmis.

Sain vaikutelman, että kun olen asettanut suurimman vakaan arvon, menetin herkkyyteni ei-rautametalleille. Joten saattaa olla syytä kokeilla asetuksia tämän korjaamiseksi.

Kelat

Tein 3 kelaa pulssimetallinilmaisinpiirin lisätestausta varten:

  • 1 -> 18 kierrosta/ 200 mm
  • 2 -> 25 kierrosta/100 mm
  • 3 -> 48 kierrosta/100 mm

Mielenkiintoista on, että kaikki kelat toimivat melko hyvin, lähes samalla suorituskyvyllä (ruplakolikko 40-50 mm ilmassa). Tämä voi olla hyvin subjektiivinen havainto.