Satura rādītājs:
Video: Arduino bāzes impulsa indukcijas detektors - LC -Trap: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Meklējot papildu idejas vienkāršam Ardino impulsa indukcijas metāla detektoram ar tikai vienu barošanas spriegumu, es nonācu Teemo mājas lapā:
www.digiwood.ee/8-electronic-projects/2-metal-detectorcircuit
Viņš izveidoja vienkāršu impulsa indukcijas detektoru, izmantojot LC-Trap principu. Līdzīgas shēmas šeit vietnē Instructable ievietoja TechKiwiGadgets. Izņemot to, ka Teemo shēmā tiek izmantoti PIC mikrokontrollera iekšējie salīdzinātāji, tāpēc ir nepieciešami mazāk ārējo komponentu
Tāpēc man bija izaicinājums šai shēmai izmantot Arduino, nevis PIC kontrolieri, un paskatīties, cik tālu es varu nokļūt.
1. darbība. Shēma
Arduino shēma ir nedaudz sarežģītāka, jo Arduino neļauj novirzīt iekšējo analogo signālu uz salīdzinātāja ieeju. Tas vienkāršajam sprieguma sadalītājam pievieno divas sastāvdaļas. Tas noved pie konstrukcijas ar 12 ārējiem komponentiem (izņemot skaļruni un 16x2 LCD), salīdzinot ar 9 Flip Coil dizainu.
Shēmas darbības princips ir ļoti labi izskaidrots Teemo tīmekļa vietnē. Būtībā spole tiek darbināta un pēc tam izslēgta. Pēc izslēgšanas spole un kondensators paralēli radīs slāpētu svārstību. Svārstību frekvenci un samazināšanos ietekmē metāls spoles tuvumā. Lai iegūtu sīkāku informāciju par ķēdi, skatiet Teemo vai TechKiwi lapu šeit Instructables.
Tāpat kā Flip Coil impulsa indukcijas detektorā, es izmantoju iekšējo salīdzinātāju un iespēju izraisīt pārtraukumu, lai iegūtu signālu no spoles.
Šajā gadījumā es saņemšu vairākus pārtraukumus, jo spriegums svārstās ap salīdzinājuma spriegumu. Svārstību beigās spriegums pie spoles nosēdīsies ap 5V, bet ne precīzi. Es izvēlējos sprieguma sadalītāju ar 200 omiem un 10 k omi, lai iegūtu aptuveni 4,9 voltu spriegumu
Lai samazinātu shēmu sarežģītību, es izmantoju D4 un D5, lai nodrošinātu GND (10 k rezistoram) un 5 V (220 omu rezistoram). Tapas ir uzstādītas detektora palaišanas laikā.
Šajā versijā es pievienoju skaļruņu savienojumu, izmantojot skaļuma regulējamu daudztoņu aproch, kā aprakstīts sadaļā Kā programmēt Arduino balstītu metāla detektoru. Tas ļauj diferencēt mērķa īpašības, kā arī izjust signāla stiprumu. Skaļruni var pievienot papildu 5 kontaktu galvenei. Atlikušās 3 galvenes tapas tiks izmantotas spiedpogām (jāievieš).
2. solis: programmēšana
Tagad, kad ķēde ir izstrādāta un prototips ir izveidots, ir pienācis laiks atrast piemērotu pieeju metāla noteikšanai.
1. Impulsu skaitīšana
Viena ideja ir svārstību impulsu skaitīšana līdz pilnīgai sabrukšanai.
Ja spoles tuvumā atrodas metāls, svārstību apjoms samazinās. Šajā gadījumā salīdzinātāja atskaites spriegums ir jāiestata tādā līmenī, lai pēdējais impulss tik tikko tiktu mērīts. Tātad, ja kaut kas tiek atklāts, šis impulss nekavējoties pazūd. Tas bija mazliet problemātiski.
Katrs svārstību vilnis rada divus pārtraukumus. Viens, ejot lejā, un otrs - augšup. Lai atskaites spriegumu iestatītu tieši svārstību viļņa virsotnei, laikam starp nolaišanos un pacelšanos jābūt pēc iespējas īsākam (skat. Attēlu). Diemžēl šeit Arduino vides piesārņojums rada problēmas.
Katrs pārtraukuma izraisītājs prasa šo kodu:
ISR (ANALOG_COMP_vect) {
Toggle1 = Pārslēgt0 // saglabāt pēdējo vērtību Toggle0 = TCNT1; // iegūt jaunu vērtību}
Šis kods prasa zināmu laiku (ja pareizi atceros, aptuveni 78 instrukciju cikli ir aptuveni 5 mikrosekundes @ 16MHz). Tāpēc minimālais nosakāmais attālums starp diviem impulsiem ir tieši tas laiks, kas nepieciešams šim kodam. Ja laiks starp diviem trigeriem kļūst īsāks (skat. Attēlu), tas netiks atklāts, jo kods ir pilnībā izpildīts pirms otrā pārtraukuma noteikšanas
Tas noved pie jutīguma zuduma. Tajā pašā laikā es pamanīju, ka svārstību slāpēšana ir ļoti jutīga pret jebkādām ārējām ietekmēm, tādējādi padarot šo pieeju nedaudz sarežģītu.
2. Frekvences mērīšana
Vēl viens veids, kā noteikt metālu, ir svārstību frekvences mērīšana. Tam ir liela priekšrocība salīdzinājumā ar svārstību slāpēšanas mērīšanu, jo frekvences izmaiņas ļauj diskriminēt metālu. Gadījumā, ja spoles tuvumā ir melnais materiāls, frekvence palēnināsies, ja spoles tuvumā atrodas dārgmetāls, frekvence palielināsies.
Vienkāršākais veids, kā izmērīt frekvenci, ir izmērīt impulsu daudzumu pēc tam, kad spoles sāk svārstīties. Laika periods starp sākuma un pēdējā impulsa dalīšanu ar kopējo izmērīto impulsu daudzumu ir frekvence. Diemžēl pēdējās svārstības ir diezgan nesimetriskas. Tā kā metāla klātbūtne ietekmē arī svārstību samazināšanos, pēdējās svārstības ir vēl nesimetriskākas, rādījumus ir grūti interpretēt. Attēlā tas ir redzams ar krustojumu 1 līdz 1 'un 2 līdz 2'.
Tāpēc labāks veids ir izmantot dažus agrākus impulsus, lai izmērītu frekvenci. Pārbaudot, interesanti uzzināju, ka daži impulsu impulsi ir jutīgāki nekā citi. Kaut kur 2/3 no svārstībām ir labs punkts datu iegūšanai.
Datu apstrāde
Sākotnējais kods, kura pamatā ir cilpa (), kas prasa impulsa () funkciju spoles laika noteikšanai. Lai gan rezultāti nebija slikti, man bija vēlme uzlabot laiku. Lai to izdarītu, es izveidoju uz taimeri balstītu kodu, kas noveda pie atsevišķa instuctable Kā programmēt Arduino bāzes metāla detektoru. Šī pamācība detalizēti izskaidro laiku, datu saspiešanas LCD izvadi utt
1. LCD
Pirmā pieeja bija izmērīt 10 impulsus un pēc tam rādīt vērtības LCD. Kā es uzzināju, ka I2C datu pārsūtīšana ir pārāk lēna, es nomainīju kodu, lai atjauninātu tikai vienu rakstzīmi vienā impulsā.
2. Minimālās vērtības pieeja
Lai vēl vairāk uzlabotu rādījumu stabilitāti, es uzrakstīju sērijveida izvades kārtību, lai iegūtu labāku sajūtu par izmērītajiem datiem. Tur kļuva skaidrs, ka, lai gan lielākā daļa rādījumu bija nedaudz stabili, daži nebija! Daži “tā paša” svārstību impulsa rādījumi bija tik tālu viens no otra, ka tas sagrautu katru pieeju, lai analizētu frekvences maiņu.
Lai to kompensētu, es izveidoju "robežu", kurā vērtība bija uzticama. I. e. ja vērtības bija vairāk nekā 35 taimera cikli1 prom no paredzamās vērtības, šīs vērtības tika ignorētas (detalizēti izskaidrots instrukcijā "Kā programmēt Arduino bāzes metāla detektoru")
Šī pieeja izrādījās ļoti stabila.
3. Spriegums
Teemo sākotnējais dizains tiek darbināts zem 5 voltiem. Tā kā mani pieņēmumi bija “vairāk voltu = lielāka jauda = lielāka jutība”, es sākumā baroju ierīci ar 12 V. Tā rezultātā tika uzkarsēts MOSFET. Šī uzsildīšana izraisīja vispārēju izmērīto vērtību novirzi, kā rezultātā detektors bieži tika līdzsvarots. Samazinot spriegumu līdz 5 V, MOSFET siltuma veidošanos var samazināt līdz līmenim, kurā gandrīz netika novērota rādījumu novirze. Tas padarīja ķēdi vēl vienkāršāku, jo Arduino borta sprieguma regulators vairs nebija vajadzīgs.
MOSFET es sākotnēji izvēlējos IRL540. Šis MOSFET ir saderīgs ar loģikas līmeni, bet tā maksimālais spriegums ir 100 V. Es cerēju uz labāku veiktspēju, mainot uz IRL640 ar 200 V nominālvērtību. Diemžēl rezultāti bija vienādi. Tātad darbu veiks IRL540 vai IRL640.
3. darbība. Galīgie rezultāti
Detektora priekšrocība ir tā, ka tas diskriminē dārgo un melno materiālu. Trūkums ir tāds, ka jutība ar šo vienkāršo shēmu nav tik laba. Lai salīdzinātu veiktspēju, es izmantoju tādas pašas atsauces kā Flip-Coil detektoram. Iespējams, tas noderēs dažiem precīziem, bet, visticamāk, vilties reālai meklēšanai.
Šeit sākotnējais dizains ar PIC kontrolieri varētu būt jutīgāks, jo tas darbojas 32 MHz, nevis termometra 16 MHz, nodrošinot augstāku izšķirtspēju frekvenču maiņu noteikšanai.
Rezultāti tika sasniegti, izmantojot spoli ar 48 pagriezieniem @ 100 mm.
Kā vienmēr, esiet atvērts atsauksmēm
Ieteicams:
Ultraskaņas indukcijas mūzikas kaste: 4 soļi
Ultraskaņas indukcijas mūzikas kaste: šajā darbā tiek izmantoti ultraskaņas sensori, lai radītu dažādas skaņas, un ar pogām, lai radītu dažādu mūziku un harmoniju
IOT bāzes gāzes noplūdes detektors: 4 soļi
IOT bāzes gāzes noplūdes detektors: Prasības1 - Nodemcu (ESP8266) 2 - Dūmu sensors (MQ135) 3 - Džempera vadi (3)
Automātiska indukcijas nakts gaisma: 5 soļi
Automātiskā indukcijas nakts gaisma: šī automātiskā indukcijas nakts gaisma ir balstīta uz vietni https: //www.instructables.com/id/Arduino-Light-Th … Es mainīju gaismas diodes skaitu un gaismas spilgtuma prasību iedegties. Es arī pievienoju vairāk gaismas diodes ar dažādām krāsām
DIY Arduino bāzes impulsa indukcijas metāla detektors: 5 soļi
DIY uz Arduino bāzes impulsa indukcijas metāla detektors: Šis ir salīdzinoši vienkāršs metāla detektors ar lielisku sniegumu
Arduino bāzes impulsa indukcijas detektors - pagrieziena spole: 5 soļi (ar attēliem)
Arduino bāzes impulsa indukcijas detektors - Flip Coil: ideja. Iepriekš izveidojot dažus metāla detektorus ar atšķirīgiem rezultātiem, es vēlējos izpētīt Arduino iespējas šajā virzienā. Ir daži labi piemēri, kā izveidot metāla detektorus ar Arduino, daži šeit kā pamācāms