Përmbajtje:

Detektor i induksionit të impulsit të bazuar në Arduino - LC -Trap: 3 hapa
Detektor i induksionit të impulsit të bazuar në Arduino - LC -Trap: 3 hapa

Video: Detektor i induksionit të impulsit të bazuar në Arduino - LC -Trap: 3 hapa

Video: Detektor i induksionit të impulsit të bazuar në Arduino - LC -Trap: 3 hapa
Video: Mos e bëni më këtë gabim: Ja pse këto elektroshtëpiake harxhojnë dyfish energji elektrike 2024, Nëntor
Anonim
Detektor i induksionit të impulsit të bazuar në Arduino - LC -Trap
Detektor i induksionit të impulsit të bazuar në Arduino - LC -Trap

Ndërsa kërkoja ide të mëtejshme për një detektor të thjeshtë Ardino Pulse Induction me vetëm një tension të furnizimit, hasa në faqen kryesore të Teemo:

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

Ai krijoi një detektor të thjeshtë të induksionit të pulsit duke përdorur parimin LC-Trap. Qarqe të ngjashme u postuan këtu në Instructable by TechKiwiGadgets. Ekzekutohet se qarku Teemo përdor krahasuesit e brendshëm të një mikrokontrolluesi PIC, kështu që kanë nevojë për më pak përbërës të jashtëm

Kështu që unë u sfidova të përdor Arduino në vend të një PIC-Controller për këtë skemë dhe të shikoj sa larg mund të arrij.

Hapi 1: Skematike

Skematike
Skematike
Skematike
Skematike
Skematike
Skematike

Skema Arduino është pak më e komplikuar pasi Arduino nuk lejon të përcjellë një sinjal analog të brendshëm në hyrjen e krahasuesit. Kjo shton dy përbërës për një ndarës të thjeshtë të tensionit. Kjo çon në një dizajn me 12 përbërës të jashtëm (duke lënë jashtë altoparlantin dhe LCD 16x2), krahasuar me 9 të modelit të Flip Coil.

Parimi i punës i skemës shpjegohet shumë mirë në faqen e internetit të Teemo. Në thelb spiralja mundësohet dhe më pas fiket. Pas fikjes, spiralja dhe kondensatori paralelisht do të krijojnë një lëkundje të shuar. Frekuenca dhe prishja e lëkundjes ndikohet nga metali në afërsi të spirales. Për detaje të mëtejshme të qarkut shihni faqen e Teemo ose të TechKiwi këtu në Instructables.

Ashtu si në detektorin e induksionit të impulsit të spirales, unë përdor krahasuesin e brendshëm dhe mundësinë për të shkaktuar një ndërprerje për të marrë sinjalin nga spiralja.

Në këtë rast do të marr ndërprerje të shumta pasi voltazhi po lëkundet rreth tensionit referent të vendosur në krahasues. Në fund të lëkundjes, tensioni në spirale do të vendoset rreth 5V, por jo saktësisht. Zgjodha një ndarës të tensionit me 200 Ohm dhe 10k Ohm për të marrë një tension prej rreth 4.9 volt

Për të zvogëluar kompleksitetin e skemave kam përdorur D4 dhe D5 për të siguruar GND (për Rezistencën 10k) dhe 5V (për rezistencën 220 Ohm). Kunjat vendosen në fillimin e detektorit.

Në këtë version, shtova një lidhje altoparlanti duke përdorur aparatin me shumë ton të kontrolluar nga vëllimi siç përshkruhet në Si të programoni një detektor metalik të bazuar në Arduino. Kjo lejon diferencimin e vetive të objektivit, si dhe për të marrë një ndjenjë për fuqinë e sinjalit. Altoparlanti mund të lidhet me kokën shtesë 5 pin. 3 kunjat e mbetura të kokës do të përdoren për butonat shtytës (do të zbatohen).

Hapi 2: Programimi

Programimi
Programimi
Programimi
Programimi
Programimi
Programimi

Tani që qarku është projektuar dhe prototipi është ndërtuar, është koha për të gjetur një qasje të përshtatshme për zbulimin e metaleve.

1. Numërimi i impulseve

Numërimi i impulseve të lëkundjes derisa të prishet plotësisht është një ide.

Nëse ka metal pranë spirales, sasia e lëkundjes zvogëlohet. Në këtë rast, tensioni referues i krahasuesit duhet të vendoset në një nivel që pulsi i fundit mezi matet ende. Pra, në rast se zbulohet diçka, ky puls menjëherë zhduket. Kjo ishte pak problematike.

Çdo valë e lëkundjes krijon dy ndërprerje. Një ndërsa zbret dhe një kthehet lart. Për të vendosur tensionin referues saktësisht në kreshtën e valës së lëkundjes, koha midis zbritjes dhe ngritjes duhet të jetë sa më e shkurtër (shiko figurën). Fatkeqësisht këtu lartësia e mjedisit Arduino krijon probleme.

Çdo shkaktar i thirrjeve të ndërprerjes bën thirrje për këtë kod:

ISR (ANALOG_COMP_vect) {

Toggle1 = Toggle0 // ruani vlerën e fundit Toggle0 = TCNT1; // merrni vlerë të re}

Ky kod kërkon ca kohë (nëse më kujtohet mirë, rreth 78 cikle udhëzimi shtriga është rreth 5 mikrosekonda @ 16MHz). Prandaj distanca minimale e zbulueshme midis dy impulseve është pikërisht koha që merr ky kod, Nëse koha midis dy nxitësve bëhet më e shkurtër (shiko foton), ajo nuk do të zbulohet, pasi kodi është ekzekutuar plotësisht para zbulimit të një ndërprerjeje të dytë

Kjo çon në një humbje të ndjeshmërisë. Në të njëjtën kohë, vura re, se amortizimi i lëkundjeve është shumë i ndjeshëm ndaj ndikimeve të jashtme, duke e bërë kështu këtë qasje në përgjithësi pak të vështirë.

2. Matja e frekuencës

Një mënyrë tjetër për të zbuluar metalin është matja e frekuencës së lëkundjes. Ky ka një avantazh të madh në krahasim me matjen e prishjes së lëkundjes pasi ndryshimi i frekuencës lejon diskriminimin e metalit. Në rast se ka material me ngjyra pranë spirales, frekuenca do të ngadalësohet, në rast se ka metal të çmuar pranë spirales, frekuenca do të rritet.

Mënyra më e lehtë për të matur frekuencën është matja e sasisë së impulseve pasi mbështjelljet fillojnë të lëkunden. Periudha kohore midis fillimit dhe pulsit të fundit të ndarë me sasinë totale të impulseve të matura është frekuenca. Fatkeqësisht luhatjet e fundit janë mjaft josimetrike. Meqenëse prania e metaleve gjithashtu ndikon në prishjen e lëkundjes, lëkundjet e fundit janë edhe më josimetrike, leximet janë të vështira për t'u interpretuar. Në foto kjo është treguar me kryqëzimin 1 me 1’dhe 2 me 2’.

Prandaj, një mënyrë më e mirë është përdorimi i disa impulseve të mëparshme për të matur frekuencën. Gjatë testimit, në mënyrë interesante zbulova se disa pulsione janë më të ndjeshëm se të tjerët. Diku në 2/3 e lëkundjeve është një pikë e mirë për të marrë të dhënat.

Përpunimi i të dhënave

Kodi fillestar i bazuar në lak () që bën thirrje për një funksion impuls () për të bërë kohën e spirales. Ndërsa rezultatet nuk ishin të këqija, unë kisha dëshirën për të përmirësuar kohën. Për ta bërë këtë, unë krijova një kod të bazuar plotësisht në kohëmatës, duke çuar në mënyrën e veçantë instuctable Si të programoni një detektor metali të bazuar në Arduino. Ky udhëzues shpjegon kohën, daljen e të dhënave në daljen LCD etj në detaje

1. LCD

Qasja e parë ishte matja e 10 impulseve dhe më pas shfaqja e vlerave në LCD. Ndërsa zbulova se transferimi i të dhënave I2C ishte shumë i ngadalshëm, ndryshova në kod për të azhurnuar vetëm një karakter për impuls.

2. Qasja e vlerës minimale

Për të përmirësuar më tej qëndrueshmërinë e leximeve, unë shkrova një rutinë dalëse serike për të marrë një ndjenjë më të mirë për të dhënat e matura. Atje u bë e qartë se, megjithëse shumica e leximeve ishin disi të qëndrueshme, disa jo! Disa lexime të pulsit "të njëjtë" të lëkundjes ishin aq larg saqë do të shkatërronte çdo qasje për të analizuar një ndryshim në frekuencë.

Për të kompensuar këtë, unë krijova një "kufi" brenda të cilit vlerat ishin të besueshme. I. e. kur vlerat ishin më shumë se 35 cikle të kohëmatësit1 larg vlerës së pritshme, këto vlera u injoruan (shpjegohen në detaje në Udhëzuesin "Si të Programoni një Detektor Metalik të Bazuar në Arduino")

Kjo qasje u tregua shumë e qëndrueshme.

3. Tensioni

Dizajni origjinal i Teemo mundësohet nën 5 volt. Meqenëse supozimet e mia ishin "më shumë volt = më shumë energji = më shumë ndjeshmëri" e fuqizova njësinë në fillim me 12V. Kjo rezultoi në ngrohjen e MOSFET. Ky nxehje më pas rezultoi në një zhvendosje të përgjithshme të vlerave të matura, duke çuar në një balancim të shpeshtë të detektorit. Duke ulur tensionin në 5V, gjenerimi i nxehtësisë i MOSFET mund të minimizohet në një nivel ku pothuajse asnjë lëvizje e leximeve nuk është vërejtur. Kjo e bëri qarkun edhe më të thjeshtë, pasi rregullatori i tensionit në bord i Arduino nuk ishte më i nevojshëm.

Për një MOSFET zgjodha fillimisht IRL540. Ky MOSFET është i pajtueshëm me nivelin logjik, por ka një vlerësim të tensionit maksimal nga 100V. Unë shpresoja për një performancë më të mirë duke ndryshuar në një IRL640 me vlerësime 200V. Fatkeqësisht rezultatet ishin të njëjta. Pra, ose një IRL540 ose një IRL640 do të bëjë punën.

Hapi 3: Rezultatet Finale

Rezultatet Finale
Rezultatet Finale
Rezultatet Finale
Rezultatet Finale
Rezultatet Finale
Rezultatet Finale

Avantazhi i detektorit është se ai bën dallimin midis materialit të çmuar dhe atij me ngjyrë. Disavantazhi është se ndjeshmëria me këtë skemë të thjeshtë nuk është aq e mirë. Për të krahasuar performancën kam përdorur të njëjtat referenca si për detektorin Flip-Coil. Ndoshta e mirë për një përcaktim të saktë, por ka shumë të ngjarë zhgënjyese për kërkimin e vërtetë.

Këtu dizajni origjinal me kontrolluesin PIC mund të jetë më i ndjeshëm pasi funksionon në 32MHz në vend të 16MHz të therfor duke siguruar një rezolucion më të lartë për zbulimin e ndërrimeve në frekuencë.

Rezultatet u arritën duke përdorur spiralen me 48 kthesa @ 100mm.

Si gjithmonë, e hapur për reagime

Recommended: