Obsah:
Video: Pulzní indukční detektor na bázi Arduina - LC -Trap: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
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 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í
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
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:
Světelný senzor/detektor na bázi LDR: 3 kroky
Světelný senzor/detektor na bázi LDR: Světelné senzory a detektory jsou mimořádně užitečné pro mikrokontroléry a vestavěné systémy a je třeba také provádět monitorování intenzity. Jedním z nejjednodušších a nejlevnějších z těchto senzorů jsou LDR. Rezistory LDR nebo světlo závislé lze snadno použít s
Detektor úniku plynu na bázi IOT: 4 kroky
Detektor úniku plynu na bázi IOT: Požadavky1 - Nodemcu (ESP8266) 2 - Kouřový senzor (MQ135) 3 - Propojovací vodiče (3)
DIY Arduino pulzní indukční detektor kovů: 5 kroků
DIY Arduino Pulse Indukční detektor kovů: Jedná se o relativně jednoduchý detektor kovů s vynikajícím výkonem
Pulzní indukční detektor na bázi Arduina - překlápěcí cívka: 5 kroků (s obrázky)
Pulzní indukční detektor na bázi Arduino - Flip Coil: Idea Když jsem v minulosti postavil několik detektorů kovů s různými výsledky, chtěl jsem prozkoumat možnosti Arduina v tomto směru. Existuje několik dobrých příkladů, jak pomocí Arduina postavit detektory kovů, některé zde podle pokynů
Indukční měřič pomocí Arduina: 12 kroků
Indukční měřič pomocí Arduina: Tady budeme stavět indukční měřič pomocí mikrokontroléru Arduino. Pomocí této metody jsme schopni vypočítat indukčnost asi 80 uH až 15 000 uH, ale měla by fungovat pro induktory o něco menší nebo mnohem větší