Obsah:

Pulzní indukční detektor na bázi Arduina - LC -Trap: 3 kroky
Pulzní indukční detektor na bázi Arduina - LC -Trap: 3 kroky

Video: Pulzní indukční detektor na bázi Arduina - LC -Trap: 3 kroky

Video: Pulzní indukční detektor na bázi Arduina - LC -Trap: 3 kroky
Video: Detektor kovu 2024, Červenec
Anonim
Pulzní indukční detektor na bázi Arduina - LC -Trap
Pulzní indukční detektor na bázi Arduina - LC -Trap

Při hledání dalších nápadů na jednoduchý indukční detektor kovů Ardino Pulse s pouze jedním napájecím napětím jsem narazil na domovskou stránku Teemo:

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

Vytvořil jednoduchý pulzní indukční detektor na principu LC-Trap. Podobné obvody zde byly zveřejněny na Instructable od TechKiwiGadgets. Kromě toho, že obvod Teemo používá interní komparátory mikrokontroléru PIC, takže potřebuje méně externích komponent

Takže jsem byl vyzván, abych použil Arduino namísto PIC-Controller pro toto schéma a podíval se, jak daleko se mohu dostat.

Krok 1: Schéma

Schéma
Schéma
Schéma
Schéma
Schéma
Schéma

Schéma Arduina je trochu komplikovanější, protože Arduino neumožňuje směrovat interní analogový signál na vstup komparátoru. Tím se přidají dvě složky pro jednoduchý deviderr napětí. To vede k designu s 12 externími komponentami (vynecháním reproduktoru a 16x2 LCD) ve srovnání s 9 designem Flip Coil.

Princip fungování schématu je velmi dobře vysvětlen na webových stránkách společnosti Teemo. Cívka je v zásadě napájena a poté vypnuta. Po vypnutí vytvoří cívka a kondenzátor paralelně tlumené kmitání. Kmitočet a rozpad oscilace je ovlivněn kovem v blízkosti cívky. Další podrobnosti o okruhu naleznete na stránce Teemo nebo TechKiwi zde na Instructables.

Stejně jako v indukčním detektoru Flip Coil Pulse používám interní komparátor a možnost spustit přerušení pro získání signálu z cívky.

V tomto případě dostanu několik přerušení, protože napětí osciluje kolem referenčního napětí nastaveného na komparátoru. Na konci oscilace se napětí na cívce usadí kolem 5V, ale ne přesně. Vybral jsem napěťový dělič s 200 ohmy a 10 k ohmy, abych získal napětí asi 4,9 voltů

Aby se snížila složitost schémat, použil jsem D4 a D5 k zajištění GND (pro odpor 10k) a 5V (pro odpor 220 Ohm). Piny jsou nastaveny při spuštění detektoru.

V této verzi jsem přidal připojení reproduktoru pomocí multitónového ovládání s ovládáním hlasitosti, jak je popsáno v Jak programovat detektor kovů na bázi Arduina. To umožňuje odlišit vlastnosti cíle a také získat pocit síly signálu. Reproduktor lze připojit k dalšímu 5kolíkovému konektoru. Zbývající 3 piny záhlaví budou použity pro tlačítka (budou implementována).

Krok 2: Programování

Programování
Programování
Programování
Programování
Programování
Programování

Nyní, když je obvod navržen a prototyp je sestaven, je na čase najít vhodný přístup k detekci kovu.

1. Počítání impulsů

Počítání pulsů oscilace, dokud se plně nerozpadne, je jedna myšlenka.

Pokud je v blízkosti cívky kov, množství oscilace klesá. V tomto případě by mělo být referenční napětí komparátoru nastaveno na úroveň, při které je poslední impuls sotva stále měřen. Takže v případě, že je něco detekováno, tento puls okamžitě zmizí. To bylo trochu problematické.

Každá vlna oscilace vytváří dvě přerušení. Jeden při sestupu a jeden při návratu nahoru. Pro nastavení referenčního napětí přesně na vrchol oscilační vlny by měla být doba mezi sestupem a stoupáním co nejkratší (viz obrázek). Bohužel zde režie prostředí Arduino vytváří problémy.

Každý spouštěč přerušení volá pro tento kód:

ISR (ANALOG_COMP_vect) {

Toggle1 = Toggle0 // uložení poslední hodnoty Toggle0 = TCNT1; // získat novou hodnotu}

Tento kód nějakou dobu trvá (pokud si dobře pamatuji, asi 78 instrukčních cyklů, což je asi 5 mikrosekund @ 16 MHz). Minimální detekovatelná vzdálenost mezi dvěma impulsy je tedy přesně čas, který tento kód zabere. Pokud se doba mezi dvěma spouštěmi zkrátí (viz obrázek), zůstane nezjištěna, protože kód je plně proveden před detekováním druhého přerušení

To vede ke ztrátě citlivosti. Současně jsem si všiml, že tlumení oscilací je velmi citlivé na jakékoli vnější vlivy, takže je tento přístup celkem obtížný.

2. Měření frekvence

Dalším způsobem detekce kovu je měření frekvence kmitání. To má velkou výhodu ve srovnání s měřením tlumení oscilace, protože změna frekvence umožňuje diskriminaci kovu. V případě, že je v blízkosti cívky železný materiál, frekvence se zpomalí, v případě, že je v blízkosti cívky drahý kov, frekvence se zvýší.

Nejjednodušší způsob, jak měřit frekvenci, je změřit množství impulzů poté, co cívky začnou oscilovat. Frekvence je časový úsek mezi začátkem a posledním impulzem dělený celkovým množstvím naměřených impulsů. Bohužel posledních několik oscilací je docela nesymetrických. Jelikož přítomnost kovu také ovlivňuje rozpad oscilací, jsou poslední kmity ještě nesymetrickější, takže hodnoty lze obtížně interpretovat. Na obrázku je to znázorněno křížením 1 až 1 ‘a 2 až 2‘.

Lepším způsobem je proto použít k měření frekvence některé dřívější impulzy. Při testování jsem zajímavě zjistil, že některé impulsy jsou citlivější než jiné. Někde na 2/3 oscilací je dobrým bodem pro získání dat.

Zpracování dat

Počáteční kód založený na smyčce (), která volá funkci pulse () k načasování cívky. I když výsledky nebyly špatné, měl jsem nutkání zlepšit načasování. Abych to mohl udělat, vytvořil jsem kód plně založený na časovači, což vedlo k samostatnému instuctable How to Program a Arduino Based Metal Detector. Tento pokyn podrobně vysvětluje načasování, výstup dat křupavých LCD atd

1. LCD

První přístup byl změřit 10 pulzů a poté zobrazit hodnoty na LCD. Jak jsem zjistil, že přenos dat I2C byl příliš pomalý, změnil jsem na kód, abych aktualizoval pouze jeden znak na puls.

2. Přístup minimální hodnoty

Aby se dále zlepšila stabilita odečtů, napsal jsem rutinu sériového výstupu, abych měl lepší pocit z naměřených dat. Tam vyšlo najevo, že ačkoli většina měření byla poněkud stabilní, některá nebyla! Některá měření „stejného“oscilačního impulsu byla tak daleko od sebe, že by to zničilo každý přístup k analýze posunu frekvence.

Abych to kompenzoval, vytvořil jsem „hranici“, ve které byla hodnota důvěryhodná. Tj. když byly hodnoty vzdáleny více než 35 cyklů časovače1 od očekávané hodnoty, byly tyto hodnoty ignorovány (podrobně vysvětleno v Instructable „How to Program an Arduino Based Metal Detector“)

Tento přístup se ukázal jako velmi stabilní.

3. Napětí

Původní design Teemo je napájen pod 5 voltů. Protože moje předpoklady byly „více voltů = větší výkon = větší citlivost“, napájel jsem jednotku na začátku 12V. Výsledkem bylo zahřátí MOSFETu. Toto zahřátí pak mělo za následek obecný posun naměřených hodnot, což vedlo k častému vyvažování detektoru. Snížením napětí na 5 V bylo možné minimalizovat generování tepla MOSFET na úroveň, kde nebyl pozorován téměř žádný posun odečtů. Tím byl obvod ještě jednodušší, protože palubní regulátor napětí Arduina již nebyl potřeba.

Pro MOSFET jsem původně vybral IRL540. Tento MOSFET je kompatibilní s logickou úrovní, ale má maximální jmenovité napětí 100 V. Doufal jsem, že se lepší výkon změní na IRL640 s hodnocením 200V. Bohužel výsledky byly stejné. Takže buď IRL540 nebo IRL640 bude dělat svou práci.

Krok 3: Konečné výsledky

Konečné výsledky
Konečné výsledky
Konečné výsledky
Konečné výsledky
Konečné výsledky
Konečné výsledky

Výhodou detektoru je, že rozlišuje mezi vzácným a železným materiálem. Nevýhodou je, že citlivost u tohoto jednoduchého schématu není tak dobrá. Pro srovnání výkonu jsem použil stejné reference jako pro detektor Flip-Coil. Pravděpodobně dobré pro nějaké přesné určení, ale s největší pravděpodobností zklamáním pro skutečné hledání.

Zde může být původní design s ovladačem PIC citlivější, protože běží na 32 MHz místo na 16 MHz, takže poskytuje vyšší rozlišení pro detekci posunů frekvence.

Výsledky byly dosaženy použitím cívky se 48 otáčkami @ 100 mm.

Jako vždy, otevřeno pro zpětnou vazbu

Doporučuje: