Სარჩევი:

Arduino დაფუძნებული პულსის ინდუქციური დეტექტორი - LC -Trap: 3 ნაბიჯი
Arduino დაფუძნებული პულსის ინდუქციური დეტექტორი - LC -Trap: 3 ნაბიჯი

ვიდეო: Arduino დაფუძნებული პულსის ინდუქციური დეტექტორი - LC -Trap: 3 ნაბიჯი

ვიდეო: Arduino დაფუძნებული პულსის ინდუქციური დეტექტორი - LC -Trap: 3 ნაბიჯი
ვიდეო: Marlin Firmware 2.0.x Explained 2024, ნოემბერი
Anonim
არდუინოზე დაფუძნებული პულსის ინდუქციური დეტექტორი - LC -Trap
არდუინოზე დაფუძნებული პულსის ინდუქციური დეტექტორი - LC -Trap

არდინოს პულსის ინდუქციური ლითონის დეტექტორის შემდგომი იდეების ძიებისას, მხოლოდ ერთი ძაბვის ძაბვით, მე წავაწყდი Teemo– ს მთავარ გვერდს:

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

მან შექმნა პულსის ინდუქციის მარტივი დეტექტორი LC-Trap პრინციპით. მსგავსი სქემები აქ გამოქვეყნდა Instructable– ზე TechKiwiGadgets– ით. დადასტურებულია, რომ Teemo ჩართვა იყენებს PIC მიკროკონტროლის შიდა შედარებს, რაც საჭიროებს ნაკლებ გარე კომპონენტებს

ასე რომ, მე დამიპირისპირდა ამ სქემატური სქემისათვის გამოვიყენო Arduino PIC- კონტროლერის ნაცვლად და ვნახო, რამდენად შორს შემიძლია.

ნაბიჯი 1: სქემატური

სქემატური
სქემატური
სქემატური
სქემატური
სქემატური
სქემატური

არდუინოს სქემა ცოტა უფრო რთულია, რადგან არდუინო არ იძლევა შიდა ანალოგური სიგნალის შეყვანის შეყვანის საშუალებას. ეს დასძენს ორ კომპონენტს მარტივი ძაბვის გამავრცელებლისთვის. ეს იწვევს დიზაინს 12 გარე კომპონენტით (სპიკერისა და 16x2 LCD ეკრანის გამოტოვებით), ვიდრე Flip Coil დიზაინის 9.

სქემატური მუშაობის პრინციპი ძალიან კარგად არის ახსნილი Teemo– ს ვებ – გვერდზე. ძირითადად კოჭა იკვებება და შემდეგ გამორთულია. გათიშვის შემდეგ, კოჭა და კონდენსატორი პარალელურად შექმნის ნესტიან რხევას. რხევის სიხშირეზე და დაშლაზე გავლენას ახდენს ლითონი კოჭის სიახლოვეს. მიკროსქემის დამატებითი დეტალებისთვის იხილეთ Teemo– ს ან TechKiwi– ს გვერდი აქ ინსტრუქციებში.

როგორც Flip Coil Pulse Induction დეტექტორში, მე ვიყენებ შიდა შედარებასა და შესაძლებლობას, რომ გამოიწვიოს შეფერხება კოჭისგან სიგნალის მოსაპოვებლად.

ამ შემთხვევაში მე მივიღებ მრავალჯერად შეწყვეტას, რადგან ძაბვა მოძრაობს შედარებისას მითითებული ძაბვის გარშემო. რხევების ბოლოს, ძაბვა კოჭაზე დადგება 5 ვ -ის გარშემო, მაგრამ ზუსტად არა. მე ავირჩიე ძაბვის გამანაწილებელი 200 Ohm და 10k Ohm ძაბვის მისაღებად დაახლოებით 4.9 ვოლტი

სქემების სირთულის შესამცირებლად გამოვიყენე D4 და D5 GND (10k რეზისტორისთვის) და 5V (220 Ohm რეზისტორისთვის). ქინძისთავები დაყენებულია დეტექტორის დაწყებისას.

ამ ვერსიაში მე დავამატე დინამიკის კავშირი ხმის კონტროლირებადი მრავალ ტონიანი აპარატის გამოყენებით, როგორც ეს აღწერილია სტატიაში როგორ დავგეგმოთ არდუინოზე დაფუძნებული ლითონის დეტექტორი. ეს იძლევა სამიზნე თვისებების დიფერენცირების საშუალებას, ასევე სიგნალის სიძლიერის განცდას. სპიკერი შეიძლება დაკავშირებული იყოს დამატებით 5 პინიან სათაურთან. სათაურის დარჩენილი 3 პინი გამოყენებული იქნება ღილაკებისთვის (განსახორციელებელია).

ნაბიჯი 2: პროგრამირება

პროგრამირება
პროგრამირება
პროგრამირება
პროგრამირება
პროგრამირება
პროგრამირება

ახლა, როდესაც სქემა შექმნილია და პროტოტიპი აშენებულია, დროა ვიპოვოთ ლითონის გამოვლენის შესაბამისი მიდგომა.

1. პულსის დათვლა

რხევების იმპულსების დათვლა, სანამ ის სრულად არ დაიშლება, ერთი იდეაა.

თუ გრაგნილის მახლობლად არის ლითონი, რხევის რაოდენობა მცირდება. ამ შემთხვევაში შედარების ძაბვა უნდა დადგინდეს იმ დონეზე, რომ ბოლო პულსი ძლივს განისაზღვროს. ასე რომ, თუ რაიმე გამოვლინდა, ეს პულსი მაშინვე ქრება. ეს იყო ცოტა პრობლემატური.

რხევის თითოეული ტალღა ქმნის ორ წყვეტს. ერთი დაბლა ასვლისას და ერთი უკან დაბრუნება. საცნობარო ძაბვის ზუსტად დასადგენად რხევის ტალღის მწვერვალზე, დაცემასა და აღმავალს შორის დრო უნდა იყოს რაც შეიძლება მოკლე (იხ. სურათი). სამწუხაროდ აქ არდუინოს გარე ტვირთი ქმნის პრობლემებს.

შეწყვეტის თითოეული გამომწვევი ზარი ამ კოდს:

ISR (ANALOG_COMP_vect) {

Toggle1 = Toggle0 // ბოლო მნიშვნელობის შენახვა Toggle0 = TCNT1; // მიიღეთ ახალი მნიშვნელობა}

ამ კოდს გარკვეული დრო სჭირდება (თუ სწორად მახსოვს, დაახლოებით 78 სასწავლო ციკლის ჯადოქარი არის დაახლოებით 5 მიკროწამი @ 16 MHz). ამრიგად, მინიმალურ დასადგენად მანძილი ორ იმპულსს შორის არის ზუსტად ის დრო, რაც ამ კოდს სჭირდება, თუ ორ გამშვებელს შორის დრო შემცირდება (იხილეთ სურათი), ის შეუმჩნეველი დარჩება, რადგან კოდი სრულად არის შესრულებული მეორე შეწყვეტის გამოვლენამდე

ეს იწვევს მგრძნობელობის დაკარგვას. ამავდროულად, მე შევნიშნე, რომ რხევების დაქვეითება ძალიან მგრძნობიარეა ნებისმიერი გარე გავლენის მიმართ, რითაც ეს მიდგომა სულ უფრო რთულია.

2. სიხშირის გაზომვა

ლითონის გამოვლენის კიდევ ერთი გზა არის რხევის სიხშირის გაზომვა. ამას აქვს დიდი უპირატესობა რხევების დაქვეითების გაზომვასთან შედარებით, რადგან სიხშირის ცვლილება ლითონის დისკრიმინაციის საშუალებას იძლევა. იმ შემთხვევაში, თუ კოჭის მახლობლად არის შავი მასალა, სიხშირე შენელდება, თუ კოჭის მახლობლად ძვირფასი ლითონია, სიხშირე გაიზრდება.

სიხშირის გაზომვის უმარტივესი გზაა პულსის რაოდენობის გაზომვა მას შემდეგ, რაც კოჭები იწყებენ რხევას. დაწყების დრო და ბოლო პულსი შორის გაყოფილი გაზომილი იმპულსების საერთო რაოდენობა არის სიხშირე. სამწუხაროდ, ბოლო რხევები საკმაოდ არასიმეტრიულია. ვინაიდან ლითონის არსებობა ასევე გავლენას ახდენს რხევის დაშლაზე, ბოლო რხევები კიდევ უფრო არასიმეტრიულია, კითხვების ინტერპრეტაცია რთულია. სურათზე ეს ნაჩვენებია გადაკვეთით 1 -დან 1 'და 2 -დან 2'.

ამრიგად, უკეთესი გზაა სიხშირის გასაზომად გამოვიყენოთ ადრინდელი პულსი. ტესტირებისას, საინტერესო აღმოჩნდა, რომ ზოგიერთი პულსი უფრო მგრძნობიარეა, ვიდრე სხვები. სადღაც 2/3 რხევებზე არის კარგი წერტილი მონაცემების მოსაპოვებლად.

მონაცემების დამუშავება

საწყისი კოდი დაფუძნებულია მარყუჟზე (), რომელიც ითხოვს პულსის () ფუნქციას, რათა გააკეთოს კოჭის დრო. მიუხედავად იმისა, რომ შედეგები არ იყო ცუდი, მე მქონდა სურვილი გავაუმჯობესო დრო. ამის გასაკეთებლად, მე შევქმენი სრულად ტაიმერზე დაფუძნებული კოდი, რასაც მივყავართ ცალკე ინსტუქტურად როგორ დავგეგმო არდუინოზე დაფუძნებული ლითონის დეტექტორი. ეს ინსტრუქცია დეტალურად განმარტავს დროს, მონაცემების დამსხვრევის LCD გამომავალს და ა

1. LCD

პირველი მიდგომა იყო 10 პულსის გაზომვა და შემდეგ LCD ეკრანზე მნიშვნელობების ჩვენება. როგორც გავარკვიე I2C მონაცემთა გადაცემა იყო ძალიან ნელი, მე შევცვალე კოდი, რომ განვაახლო მხოლოდ ერთი სიმბოლო პულსისთვის.

2. მინიმალური ღირებულების მიდგომა

კითხვების სტაბილურობის გასაუმჯობესებლად მე დავწერე სერიული გამომავალი რუტინა, რათა უკეთ შევიგრძნო გაზომილი მონაცემები. იქ აშკარა გახდა, რომ მიუხედავად იმისა, რომ კითხვების უმეტესობა გარკვეულწილად სტაბილური იყო, ზოგი არა! რამოდენიმე რხევის პულსის ზოგიერთი წაკითხვა იმდენად შორს იყო ერთმანეთისგან, რომ ის გაანადგურებდა ყველა მიდგომას სიხშირის ცვლის გასაანალიზებლად.

ამის კომპენსაციისთვის მე შევქმენი "საზღვარი", რომლის ფარგლებშიც ღირებულება იყო სანდო. I. ე. როდესაც ღირებულებები იყო 35 -ზე მეტი ციკლი ქრონომეტრი 1 დაშორებული მოსალოდნელი მნიშვნელობიდან, ეს მნიშვნელობები იგნორირებული იყო (დეტალურად განმარტებულია ინსტრუქციულ ინსტრუქციაში "როგორ დავგეგმოთ არდუინოზე დაფუძნებული ლითონის დეტექტორი")

ეს მიდგომა აღმოჩნდა ძალიან სტაბილური.

3. ძაბვა

Teemo– ს ორიგინალური დიზაინი იკვებება 5 ვოლტზე დაბლა. ვინაიდან ჩემი ვარაუდები იყო "მეტი ვოლტი = მეტი ენერგია = მეტი მგრძნობელობა" მე ერთეულს ვამუშავებდი თავიდან 12 ვ. ამან გამოიწვია MOSFET- ის გათბობა. შემდეგ ამ გათბობამ გამოიწვია გაზომილი მნიშვნელობების ზოგადი დრიფტი, რაც იწვევს დეტექტორის ხშირ ბალანსირებას. ძაბვის 5 ვ -მდე შემცირებით MOSFET- ის სითბოს გამომუშავება შეიძლება შემცირდეს იმ დონემდე, სადაც თითქმის არ შეინიშნება წაკითხვის გადაადგილება. ამან უფრო გაამარტივა წრე, რადგან არდუინოს ბორტზე ძაბვის რეგულატორი აღარ იყო საჭირო.

MOSFET– ისთვის მე ავირჩიე IRL540. ეს MOSFET არის ლოგიკურ დონეზე თავსებადი, მაგრამ აქვს მაქსიმალური ძაბვის მაჩვენებელი 100V. მე ვიმედოვნებდი უკეთესი შესრულების შეცვლას IRL640 200V რეიტინგით. სამწუხაროდ, შედეგები იგივე იყო. ასე რომ, ან IRL540 ან IRL640 შეასრულებს საქმეს.

ნაბიჯი 3: საბოლოო შედეგები

საბოლოო შედეგები
საბოლოო შედეგები
საბოლოო შედეგები
საბოლოო შედეგები
საბოლოო შედეგები
საბოლოო შედეგები

დეტექტორის უპირატესობა ის არის, რომ ის ახდენს დისკრიმინაციას ძვირფას და ფერადი მასალებს შორის. მინუსი ის არის, რომ ამ მარტივი სქემატური მგრძნობელობა არც ისე კარგია. შესრულების შესადარებლად გამოვიყენე იგივე მითითებები, როგორც Flip-Coil დეტექტორისთვის. ალბათ კარგია გარკვეული დასაზუსტებლად, მაგრამ დიდი იმედგაცრუება რეალური ძიებისთვის.

აქ PIC კონტროლერის ორიგინალური დიზაინი შეიძლება იყოს უფრო მგრძნობიარე, რადგან ის მუშაობს 32 MHz– ზე და 16 MHz– ის ნაცვლად, რაც უზრუნველყოფს უფრო მაღალ გარჩევადობას სიხშირის ცვლის აღმოსაჩენად.

შედეგები მიღწეულია კოჭის გამოყენებით 48 შემობრუნებით @ 100 მმ.

როგორც ყოველთვის, ღიაა გამოხმაურებისთვის

გირჩევთ: