Talaan ng mga Nilalaman:

Arduino Batay sa Pulse Induction Detector - LC-Trap: 3 Mga Hakbang
Arduino Batay sa Pulse Induction Detector - LC-Trap: 3 Mga Hakbang

Video: Arduino Batay sa Pulse Induction Detector - LC-Trap: 3 Mga Hakbang

Video: Arduino Batay sa Pulse Induction Detector - LC-Trap: 3 Mga Hakbang
Video: how to make pulse induction metal detector using arduino board in easy way, can detect up to 25 cm . 2024, Nobyembre
Anonim
Arduino Batay sa Pulse Induction Detector - LC-Trap
Arduino Batay sa Pulse Induction Detector - LC-Trap

Habang naghahanap ng karagdagang mga ideya para sa isang simpleng Ardino Pulse Induction metal detector na may isang boltahe lamang ng suplay naabutan ko ang homepage ng Teemo:

www.digiwood.ee/8-electronic-projects/2-metal-detector-circuit

Lumikha siya ng isang simpleng detektor ng Pulse Induction na gumagamit ng prinsipyo ng LC-Trap. Ang mga katulad na circuit ay na-post dito sa Instructable ng TechKiwiGadgets. Exept na ang circuit ng Teemo ay gumagamit ng panloob na paghahambing ng isang PIC microcontroller, kaya nangangailangan ng mas kaunting panlabas na mga bahagi

Kaya't hinamon akong gamitin ang Arduino sa halip na isang PIC-Controller para sa eskematiko na ito at tingnan kung hanggang saan ako makakakuha.

Hakbang 1: Skematika

Skematika
Skematika
Skematika
Skematika
Skematika
Skematika

Ang eskematiko ng Arduino ay medyo mas kumplikado dahil hindi pinapayagan ng Arduino na mag-ruta ng isang panloob na analog signal sa input ng kumpare. Nagdaragdag ito ng dalawang bahagi para sa isang simpleng boltahe deviderr. Ito ay humahantong sa isang disenyo na may 12 panlabas na mga bahagi (iwanan ang nagsasalita at ang 16x2 LCD), kumpara sa 9 ng disenyo ng Flip Coil.

Ang prinsipyo ng pagtatrabaho ng eskematiko ay ipinaliwanag nang napakahusay sa website ng Teemo. Karaniwan ang coil ay pinapagana at pagkatapos ay pinatay. Matapos patayin, ang likaw at ang pampalapot sa kahanay ay lilikha ng isang basang oscillation. Ang dalas at pagkabulok ng oscillation ay naiimpluwensyahan ng metal sa kalapitan ng coil. Para sa karagdagang mga detalye ng circuit tingnan ang pahina ng Teemo o ng TechKiwi dito sa Mga Instructable.

Tulad ng sa Flip Coil Pulse Induction detector ginagamit ko ang panloob na kumpare at ang posibilidad na mag-agaw ng isang makagambala upang makuha ang signal mula sa coil.

Sa kasong ito makakakuha ako ng maraming mga nakakagambala habang ang boltahe ay oscillating sa paligid ng sanggunian na boltahe na itinakda sa kumpare. Sa pagtatapos ng pag-oscillation, ang boltahe sa likaw ay tatahimik sa paligid ng 5V, ngunit hindi eksakto. Pinili ko ang isang voltner devider na may 200 Ohm at 10k Ohm upang makakuha ng boltahe na mga 4.9 volts

Upang mabawasan ang pagiging kumplikado ng mga eskematiko ginamit ko ang D4 at D5 upang magbigay ng GND (para sa 10k Resistor) at 5V (para sa resistor ng 220 Ohm). Ang mga pin ay nakatakda sa pagsisimula ng detektor.

Sa bersyon na ito, nagdagdag ako ng isang koneksyon ng speaker gamit ang dami ng kinokontrol na multi tone appraoch tulad ng inilarawan sa Paano Mag-Program ng isang Arduino Batay sa Metal Detector. Pinapayagan nito ang pagkakaiba-iba ng mga katangian ng target pati na rin upang makakuha ng isang pakiramdam para sa lakas ng signal. Ang speaker ay maaaring konektado sa header ng addiononal 5 pin. Ang natitirang 3 mga pin ng header ay gagamitin para sa mga push-button (na ipapatupad).

Hakbang 2: Programming

Programming
Programming
Programming
Programming
Programming
Programming

Ngayon na ang circuit ay dinisenyo at ang prototype ay binuo, oras na upang makahanap ng naaangkop na diskarte para sa pagtuklas ng metal.

1. Nagbibilang ng mga pulso

Ang pagbibilang ng mga pulso ng oscillation hanggang sa ganap na mabulok ay isang ideya.

Kung mayroong metal malapit sa likid ang halaga ng oscillation ay bumababa. Sa kasong ito ang boltahe ng sanggunian ng kumpare ay dapat itakda sa isang antas na ang huling pulso ay halos hindi pa nasusukat. Kaya kung sakaling may mapansin, agad na nawala ang pulso na ito. Medyo may problemang ito.

Ang bawat alon ng oscillation ay lumilikha ng dalawang mga nakakagambala. Isa habang pababa at isang babalik. Upang maitakda ang boltahe ng sanggunian nang eksakto sa tuktok ng isang alon ng pag-oscillation, ang oras sa pagitan ng pagbaba at pag-akyat ay dapat na maikli hangga't maaari (tingnan ang larawan). Sa kasamaang palad narito ang overhead ng Arduino na kapaligiran ay lumilikha ng mga problema.

Ang bawat pag-trigger ng mga nakakagambalang tawag para sa code na ito:

ISR (ANALOG_COMP_vect) {

Toggle1 = Toggle0 // save last value Toggle0 = TCNT1; // makakuha ng bagong halaga}

Ang code na ito ay tumatagal ng ilang oras (kung natatandaan ko ng tama, tungkol sa 78 na pagtuturo ng mga witch cycle ay tungkol sa 5 microseconds @ 16MHz). Samakatuwid ang pinakamaliit na natukoy na distansya sa pagitan ng dalawang pulso ay eksaktong oras na tumatagal ng code na ito, Kung ang oras sa pagitan ng dalawang pag-trigger ay nagiging mas maikli (tingnan ang larawan), hindi na ito matukoy, dahil ang code ay ganap na naisakatuparan bago makita ang pangalawang abala

Ito ay humahantong sa isang pagkawala ng pagiging sensitibo. Sa parehong oras, napansin ko, na ang pamamasa ng mga oscillation ay napaka-sensitibo sa anumang panlabas na impluwensya, kaya't ginagawang medyo mahirap ang diskarte na ito.

2. Pagsukat sa dalas

Ang isa pang paraan upang makita ang metal ay ang pagsukat ng dalas ng oscillation. Ito ay may malaking kalamangan kumpara sa pagsukat sa pamamasa ng oscillation dahil ang pagbabago sa dalas ay nagbibigay-daan sa diskriminasyon ng metal. Kung sakaling may ferrous material malapit sa coil, mabagal ang dalas, kung sakaling may mahalagang metal malapit sa coil, tataas ang dalas.

Ang pinakamadaling paraan upang masukat ang dalas ay upang masukat ang dami ng mga pulso pagkatapos magsimulang mag-oscillate ang mga coil. Ang tagal ng oras sa pagitan ng pagsisimula at huling pulso na hinati ng kabuuang halaga ng mga sinusukat na pulso ay ang dalas. Sa kasamaang palad ang huling ilang mga oscillation ay medyo hindi simetriko. Tulad ng pagkakaroon ng metal ay nakakaimpluwensya rin sa pagkabulok ng oscillation ang huling mga oscillation ay mas hindi simetriko, ang mga pagbasa ay mahirap bigyang kahulugan. Sa larawan ito ay ipinapakita kasama ang pagtawid ng 1 hanggang 1’at 2 hanggang 2’.

Samakatuwid ang isang mas mahusay na paraan ay ang paggamit ng ilang mga naunang pulso upang masukat ang dalas. Habang sumusubok, nang kawili-wili ko nalaman na ang ilang mga pulso na pulso ay mas sensitibo kaysa sa iba. Sa isang lugar sa 2/3 ng mga oscillation ay isang magandang punto upang makuha ang data.

Pinoproseso ang data

Ang paunang code batay sa loop () na tumatawag para sa isang function na pulso () upang gawin ang tiyempo ng coil. Habang ang mga resulta ay hindi masama, nagkaroon ako ng pagnanasa na mapagbuti ang tiyempo. Upang magawa ito, gumawa ako ng isang buong batay sa code, na humahantong sa magkakahiwalay na instuctable Paano Mag-Program ng isang Arduino Batay sa Metal Detector. Ang itinuturo na ito ay nagpapaliwanag ng tiyempo, data crunching LCD output atbp sa detalye

1. Ang LCD

Ang unang diskarte ay upang masukat ang 10 pulso at pagkatapos ay upang ipakita ang mga halaga sa LCD. Tulad ng nalaman kong ang paglipat ng data ng I2C ay masyadong mabagal, nagbago ako sa code upang mai-update lamang ang isang character bawat pulso.

2. Pinakamababang diskarte sa halaga

Upang mapabuti ang katatagan ng mga pagbabasa sa karagdagang nagsulat ako ng isang serial routine na output upang makakuha ng isang mas mahusay na pakiramdam para sa sinusukat na data. Doon ay naging maliwanag, na kahit na ang karamihan sa mga pagbasa ay medyo matatag, ang ilan ay hindi! Ang ilang mga pagbasa ng "pareho" na oscillation pulse ay napakalayo na nasisira nito ang bawat diskarte upang pag-aralan ang isang shift sa dalas.

Upang mabayaran ito, gumawa ako ng isang "hangganan" na mapagkakatiwalaan ang halaga. I. e. kapag ang mga halaga ay higit sa 35 mga siklo ng timer1 ang layo mula sa inaasahang halaga, ang mga halagang ito ay hindi pinansin (ipinaliwanag nang detalyado sa Instructable na "Paano Mag-Program ng isang Arduino Batay sa Metal Detector")

Ang pamamaraang ito ay napatunayan na napakatatag.

3. Ang boltahe

Ang orihinal na disenyo ng Teemo ay pinalakas sa ibaba 5 volts. Tulad ng aking mga palagay ay "mas maraming volts = mas maraming lakas = mas maraming pagiging sensitibo" Pinagana ko ang yunit sa simula sa 12V. Nagresulta ito sa pag-init ng MOSFET. Ang pagpainit na ito ay nagresulta sa isang pangkalahatang naaanod ng mga sinusukat na halaga, na humahantong sa madalas na muling pagbabalanse ng detector. Sa pamamagitan ng pagbawas ng boltahe sa 5V ang pagbuo ng init ng MOSFET ay maaaring mabawasan sa isang antas kung saan halos walang naaanod na mga pagbabasa ang naobserbahan. Ginawa nitong mas simple ang circuit, dahil ang on-board voltage regulator ng Arduino ay hindi na kailangan.

Para sa isang MOSFET pinili ko una ang IRL540. Ang MOSFET na ito ay katugma sa antas ng lohika, ngunit mayroong isang maximum na rating ng boltahe ov 100V. Inaasahan kong mas mahusay ang pagbabago ng pagganap sa isang IRL640 na may 200V na mga rating. Sa kasamaang palad ang mga resulta ay pareho. Kaya't alinman sa isang IRL540 o isang IRL640 ang gagawa ng trabaho.

Hakbang 3: Pangwakas na Mga Resulta

Pangwakas na Resulta
Pangwakas na Resulta
Pangwakas na Resulta
Pangwakas na Resulta
Pangwakas na Resulta
Pangwakas na Resulta

Ang bentahe ng detektor ay na kinikilala nito ang pagitan ng mahalagang at ferrous na materyal. Ang kawalan ay, na ang pagkasensitibo sa simpleng iskema na ito ay hindi gaanong maganda. Upang ihambing ang pagganap ginamit ko ang parehong mga sanggunian tulad ng para sa Flip-Coil detector. Marahil ay mabuti para sa ilang mga pinpointing, ngunit malamang na bigo para sa tunay na paghahanap.

Dito ang orihinal na disenyo na may PIC controller ay maaaring maging mas sensitibo dahil tumatakbo ito sa 32MHz sa halip na 16MHz ng therfor na nagbibigay ng isang mas mataas na resolusyon para sa pagtuklas ng mga pagbabago sa dalas.

Ang mga resulta ay nakamit sa pamamagitan ng paggamit ng coil na may 48 liko @ 100mm.

Tulad ng dati, buksan para sa feedback

Inirerekumendang: