Բովանդակություն:

Arduino- ի վրա հիմնված իմպուլսային ինդուկցիայի դետեկտոր - LC -Trap: 3 քայլ
Arduino- ի վրա հիմնված իմպուլսային ինդուկցիայի դետեկտոր - LC -Trap: 3 քայլ

Video: Arduino- ի վրա հիմնված իմպուլսային ինդուկցիայի դետեկտոր - LC -Trap: 3 քայլ

Video: Arduino- ի վրա հիմնված իմպուլսային ինդուկցիայի դետեկտոր - LC -Trap: 3 քայլ
Video: How to use up to 10 push button switch with 1 Arduino input pin ANPB-V1 2024, Նոյեմբեր
Anonim
Arduino- ի վրա հիմնված իմպուլսային ինդուկցիայի դետեկտոր - LC -Trap
Arduino- ի վրա հիմնված իմպուլսային ինդուկցիայի դետեկտոր - LC -Trap

Պարզապես Ardino Pulse Induction մետաղական դետեկտորի համար լրացուցիչ գաղափարներ փնտրելիս, միայն մեկ մատակարարման լարմամբ, ես հանդիպեցի Teemo- ի գլխավոր էջին.

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

Նա ստեղծեց պարզ Pulse Induction դետեկտոր ՝ օգտագործելով LC-Trap սկզբունքը: Նմանատիպ սխեմաները տեղադրվել են այստեղ Instructable by TechKiwiGadgets կայքում: Հաշվի առնելով, որ Teemo- ի սխեման օգտագործում է PIC միկրոկառավարիչի ներքին համեմատիչները, ուստի ավելի քիչ արտաքին բաղադրիչների կարիք ունի

Այսպիսով, ինձ մարտահրավեր նետեցին այս սխեմատիկ պատկերի համար օգտագործել Arduino- ն PIC- վերահսկիչի փոխարեն և տեսնել, թե որքան հեռու կարող եմ հասնել:

Քայլ 1: Սխեմատիկ

Սխեմատիկ
Սխեմատիկ
Սխեմատիկ
Սխեմատիկ
Սխեմատիկ
Սխեմատիկ

Arduino- ի սխեման մի փոքր ավելի բարդ է, քանի որ Arduino- ն թույլ չի տալիս ներքին անալոգային ազդանշանը ուղարկել համեմատիչի մուտքին: Սա ավելացնում է երկու բաղադրիչ `պարզ լարման բաժանարարի համար: Սա հանգեցնում է 12 արտաքին բաղադրիչներով դիզայնի (բաց թողնելով բարձրախոսը և 16x2 LCD- ը) ՝ Flip Coil- ի դիզայնի 9 -ի համեմատ:

Սխեմատիկայի աշխատանքի սկզբունքը շատ լավ բացատրված է Teemo- ի կայքում: Հիմնականում կծիկն սնվում է, այնուհետև անջատվում: Անջատվելուց հետո կծիկն ու կոնդենսատորը զուգահեռ կստեղծեն թուլացած տատանում: Տատանման հաճախականությունը և քայքայումը կախված են մետաղից ՝ կծիկի հարևանությամբ: Շղթայի լրացուցիչ մանրամասների համար տե՛ս Teemo- ի կամ TechKiwi- ի էջը ՝ այստեղ ՝ Instructables:

Ինչպես Flip Coil Pulse Induction դետեկտորում, ես օգտագործում եմ ներքին համադրիչը և հնարավորությունը ՝ անջատիչ հրահրելու համար ՝ կծիկից ազդանշան ստանալու համար:

Այս դեպքում ես կստանամ բազմաթիվ ընդհատումներ, քանի որ լարումը տատանվում է համեմատիչում տեղադրված հղման լարման շուրջ: Տատանման վերջում կծիկի լարումը կկարգավորվի 5 Վ -ի սահմաններում, բայց ոչ ճշգրիտ: Ես ընտրեցի 200 Օմ և 10 Կ Օմ լարման անջատիչ ՝ մոտ 4,9 վոլտ լարման հասնելու համար

Սխեմաների բարդությունը նվազեցնելու համար ես օգտագործել եմ D4 և D5 ՝ GND (10k Resistor- ի համար) և 5V (220 Օմ դիմադրության համար) ապահովելու համար: Կապերը տեղադրվում են դետեկտորի գործարկման սկզբում:

Այս տարբերակում ես ավելացրեցի բարձրախոսների միացում ՝ օգտագործելով ձայնի վերահսկման բազմաշերտ գնահատիչը, ինչպես նկարագրված է Ինչպես ծրագրավորել Arduino- ի վրա հիմնված մետաղական դետեկտորը: Սա թույլ է տալիս տարբերակել թիրախի հատկությունները, ինչպես նաև զգալ ազդանշանի ուժի նկատմամբ: Բարձրախոսը կարող է միացվել լրացուցիչ 5 փին վերնագրին: Վերնագրի մնացած 3 կապերը կօգտագործվեն սեղմման կոճակների համար (պետք է իրականացվեն):

Քայլ 2: mingրագրավորում

Ծրագրավորում
Ծրագրավորում
Ծրագրավորում
Ծրագրավորում
Ծրագրավորում
Ծրագրավորում

Այժմ, երբ շղթան նախագծված է և նախատիպը կառուցված է, ժամանակն է գտնել մետաղը հայտնաբերելու համապատասխան մոտեցում:

1. Իմպուլսների հաշվարկ

Տատանումների իմպուլսների հաշվարկը մինչև այն ամբողջությամբ քայքայելը մեկ գաղափար է:

Եթե կծիկին մոտ մետաղ կա, ապա տատանումների քանակը նվազում է: Այս դեպքում համեմատիչի լարման լարումը պետք է սահմանվի այնպիսի մակարդակի, որ վերջին զարկերակը հազիվ թե դեռ չափված լինի: Այսպիսով, ինչ -որ բան հայտնաբերելու դեպքում այս զարկերակն անմիջապես անհետանում է: Սա մի փոքր խնդրահարույց էր:

Տատանման յուրաքանչյուր ալիք ստեղծում է երկու ընդհատում: Մեկը իջնելիս և մեկը վեր բարձրանալիս: Տատանման ալիքի գագաթնակետին հղումային լարումը ճշգրտորեն սահմանելու համար իջնելու և բարձրանալու միջև ընկած ժամանակը պետք է լինի հնարավորինս կարճ (տես նկարը): Unfortunatelyավոք, այստեղ Arduino միջավայրի գերբեռնվածությունը խնդիրներ է ստեղծում:

Այս կոդի համար ընդմիջման յուրաքանչյուր ձգան զանգում է.

ISR (ANALOG_COMP_vect) {

Toggle1 = Toggle0 // պահպանել վերջին արժեքը Toggle0 = TCNT1; // ստանալ նոր արժեք}

Այս կոդը որոշ ժամանակ է պահանջում (եթե ճիշտ եմ հիշում, մոտ 78 հրահանգների ցիկլը կախարդը կազմում է մոտ 5 միկրովայրկյան @ 16 ՄՀց): Հետևաբար, երկու իմպուլսի միջև նվազագույն հայտնաբերելի հեռավորությունը հենց այս կոդի տևողությունն է: Եթե երկու գործարկիչների միջև ընկած ժամանակահատվածը կարճանա (տես նկարը), այն աննկատ կմնա, քանի որ ծածկագիրը ամբողջությամբ կատարված է մինչև երկրորդ ընդհատումը հայտնաբերելը:

Սա հանգեցնում է զգայունության կորստի: Միևնույն ժամանակ, ես նկատեցի, որ տատանումների թուլացումը շատ զգայուն է ցանկացած արտաքին ազդեցության նկատմամբ, դրանով իսկ ընդհանուր առմամբ մի փոքր դժվարացնելով այս մոտեցումը:

2. Հաճախականության չափում

Մետաղի հայտնաբերման մեկ այլ եղանակ է տատանումների հաճախականության չափումը: Սա մեծ առավելություն ունի տատանումների թուլացումը չափելու համեմատ, քանի որ հաճախականության փոփոխությունը թույլ է տալիս մետաղի խտրականություն դնել: Այն դեպքում, երբ կծիկի մոտ կա գունավոր նյութ, հաճախականությունը կդանդաղի, եթե կծիկի մոտ թանկարժեք մետաղ կա, հաճախականությունը կաճի:

Հաճախականությունը չափելու ամենահեշտ ձևն այն է, որ կծիկներն սկսեն տատանվելուց հետո չափել իմպուլսների քանակը: Սկզբի և վերջին զարկերակի միջև ընկած ժամանակահատվածը, որը բաժանված է չափված իմպուլսների ընդհանուր քանակով, հաճախականությունն է: Unfortunatelyավոք, վերջին մի քանի տատանումները բավականին անհամաչափ են: Քանի որ մետաղի առկայությունը նույնպես ազդում է տատանումների քայքայման վրա, վերջին տատանումները նույնիսկ ավելի անհամաչափ են, ընթերցումները դժվար է մեկնաբանել: Նկարում սա ցուցադրվում է 1 -ից 1 'և 2 -ից 2' խաչմերուկներով:

Հետևաբար, ավելի լավ միջոց է օգտագործել որոշ ավելի վաղ իմպուլսներ `հաճախականությունը չափելու համար: Փորձարկման ընթացքում, հետաքրքիր է, ես պարզեցի, որ որոշ իմպուլսային իմպուլսներ ավելի զգայուն են, քան մյուսները: Տատանումների 2/3 -ում ինչ -որ տեղ լավ կետ է տվյալների ձեռքբերման համար:

Տվյալների մշակում:

Սկզբնական ծածկագիրը հիմնված է օղակի () վրա, որը պահանջում է իմպուլս () ֆունկցիա ՝ կծիկի ժամանակը որոշելու համար: Թեև արդյունքները վատը չէին, ես ցանկություն ունեի բարելավել ժամանակը: Որպեսզի դա անեմ, ես ստեղծեցի լիովին ժամանակաչափի վրա հիմնված կոդ, որը հանգեցրեց առանձին անստույտիկ Ինչպես ծրագրավորել Arduino- ի վրա հիմնված մետաղական դետեկտոր: Այս հրահանգը մանրամասն բացատրում է ժամանակը, տվյալների ճռճռման LCD ելքը և այլն

1. LCD- ը

Առաջին մոտեցումը 10 իմպուլսի չափումն էր, այնուհետև LCD- ի արժեքների ցուցադրումը: Երբ պարզեցի, որ I2C տվյալների փոխանցումը չափազանց դանդաղ էր, ես փոխեցի ծածկագիրը ՝ մեկ զարկերակին միայն մեկ նիշ թարմացնելու համար:

2. Նվազագույն արժեքի մոտեցում

Ընթերցումների կայունությունը հետագայում բարելավելու համար ես գրեցի հաջորդական ելքային ռեժիմ `չափված տվյալների նկատմամբ ավելի լավ զգալու համար: Այնտեղ ակնհայտ դարձավ, որ չնայած ընթերցումների մեծ մասը որոշ չափով կայուն էին, որոշները `ոչ: «Նույն» տատանումների զարկերակի որոշ ընթերցումներ այնքան հեռու էին միմյանցից, որ դա կփլուներ յուրաքանչյուր մոտեցում ՝ հաճախականության փոփոխությունը վերլուծելու համար:

Սա փոխհատուցելու համար ես ստեղծեցի «սահման», որի սահմաններում արժեքը վստահելի էր: I. ե. երբ արժեքները ակնկալվող արժեքից ավելի քան 35 ցիկլ ժամանակաչափ 1 հեռու էին, այդ արժեքներն անտեսվում էին (մանրամասն բացատրվում է «Ինչպես ծրագրավորել Arduino- ի վրա հիմնված մետաղական դետեկտորը» հրահանգով)

Այս մոտեցումն ապացուցեց, որ շատ կայուն է:

3. Լարման

Teemo- ի օրիգինալ դիզայնը սնուցվում է 5 վոլտից ցածր: Քանի որ իմ ենթադրությունները «ավելի շատ վոլտ = ավելի շատ ուժ = ավելի զգայունություն» էին, ես սկզբում միացրեցի սարքը 12 Վ լարման միջոցով: Սա հանգեցրեց MOSFET- ի տաքացմանը: Այս տաքացումն այնուհետև հանգեցրեց չափված արժեքների ընդհանուր շեղման, ինչը հանգեցրեց դետեկտորի հաճախակի հավասարակշռման: 5V- ի լարման իջեցման միջոցով MOSFET- ի ջերմային արտադրությունը հնարավոր կլինի նվազագույնի հասցնել այնպիսի մակարդակի, որտեղ ընթերցումների գրեթե ոչ մի շեղում չի նկատվում: Սա էլ ավելի պարզեցրեց միացումը, քանի որ Arduino- ի ինքնաթիռի լարման կարգավորիչն այլևս անհրաժեշտ չէր:

MOSFET- ի համար ես սկզբում ընտրեցի IRL540- ը: Այս MOSFET- ը տրամաբանական մակարդակի հետ համատեղելի է, բայց ունի առավելագույն լարման գնահատական ov 100V- ից: Ես հույս ունեի, որ ավելի լավ կատարում կփոխվի IRL640- ի ՝ 200 Վ վարկանիշով: Unfortunatelyավոք, արդյունքները նույնն էին: Այսպիսով, կամ IRL540- ը, կամ IRL640- ը կանի այդ աշխատանքը:

Քայլ 3: Վերջնական արդյունքներ

Վերջնական արդյունքներ
Վերջնական արդյունքներ
Վերջնական արդյունքներ
Վերջնական արդյունքներ
Վերջնական արդյունքներ
Վերջնական արդյունքներ

Դետեկտորի առավելությունն այն է, որ այն տարբերակում է թանկարժեք և գունավոր նյութերը: Թերությունն այն է, որ այս պարզ սխեմատիկայով զգայունությունն այնքան էլ լավը չէ: Կատարումը համեմատելու համար ես օգտագործեցի նույն հղումները, ինչ Flip-Coil դետեկտորի դեպքում: Հավանաբար լավ է որոշ ճշգրիտ որոշումների համար, բայց, ամենայն հավանականությամբ, հիասթափեցնող է իրական որոնման համար:

Այստեղ PIC կարգավորիչի բնօրինակը կարող է ավելի զգայուն լինել, քանի որ այն աշխատում է 32 ՄՀց հաճախականությամբ, փոխարենը 16 ՄՀց հաճախականությամբ, որն ապահովում է հաճախականության փոփոխությունների հայտնաբերման ավելի բարձր լուծաչափ:

Արդյունքները հասել են 48 պտույտ @ 100 մմ պտույտ օգտագործելով:

Ինչպես միշտ, բաց է հետադարձ կապի համար

Խորհուրդ ենք տալիս: