Tartalomjegyzék:
Videó: Arduino alapú impulzusindukciós detektor - LC -csapda: 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Miközben további ötleteket kerestem egy egyszerű tápfeszültségű Ardino Pulse Indukciós fémdetektorhoz, a Teemo honlapján találkoztam:
www.digiwood.ee/8-electronic-projects/2-metal-detector-circuit
Egy egyszerű impulzusindukciós detektort készített az LC-Trap elvével. Hasonló áramköröket tett közzé itt az Instructable by TechKiwiGadgets. Kivéve, hogy a Teemo áramkör a PIC mikrokontroller belső összehasonlítóit használja, így kevesebb külső komponensre van szükség
Ezért kihívást kaptam, hogy az Arduino-t használjam PIC-vezérlő helyett ehhez a rajzhoz, és nézzem meg, meddig juthatok el.
1. lépés: Vázlatos
Az Arduino vázlata egy kicsit bonyolultabb, mivel az Arduino nem teszi lehetővé a belső analóg jel átirányítását az összehasonlító bemenetére. Ez két komponenst ad hozzá egy egyszerű feszültségosztóhoz. Ennek eredményeként 12 külső alkatrészből álló kivitel jön létre (kihagyva a hangszórót és a 16x2 -es LCD -t), szemben a Flip Coil 9 kivitelével.
A vázlat működési elve nagyon jól ismertetett a Teemo weboldalán. Alapvetően a tekercset bekapcsolják, majd kikapcsolják. Kikapcsolás után a tekercs és a kondenzátor párhuzamosan csillapított rezgést hoz létre. Az oszcilláció gyakoriságát és bomlását a tekercs közelében lévő fém befolyásolja. Az áramkör további részleteit lásd a Teemo vagy a TechKiwi oldalán, itt, az Instructables oldalon.
A Flip Coil impulzusindukciós érzékelőhöz hasonlóan én is a belső összehasonlítót és a megszakítás lehetőségét használom a tekercsből érkező jel felvételéhez.
Ebben az esetben több megszakítást kapok, mivel a feszültség az összehasonlítóban beállított referenciafeszültség körül ingadozik. Az oszcilláció végén a tekercs feszültsége 5 V körül rendeződik, de nem pontosan. 200 ohmos és 10 k ohmos feszültségosztót választottam, hogy körülbelül 4,9 voltos feszültséget kapjak
A sémák összetettségének csökkentése érdekében a D4 és a D5 segítségével GND -t (a 10 k -es ellenálláshoz) és 5 V -ot (a 220 ohmos ellenálláshoz) kaptam. A csapok az érzékelő indításakor vannak beállítva.
Ebben a verzióban hozzáadtam egy hangszórócsatlakozást a hangerő -szabályozott többhangú appraoch használatával, az Arduino alapú fémdetektor programozása című részben leírtak szerint. Ez lehetővé teszi a cél tulajdonságainak megkülönböztetését, valamint a jel erősségének érzékelését. A hangszóró csatlakoztatható az 5 pólusú fejléchez. A fejléc fennmaradó 3 csapja nyomógombokra lesz felhasználva (megvalósításra kerül).
2. lépés: Programozás
Most, hogy az áramkört megtervezték, és a prototípus elkészült, itt az ideje, hogy megfelelő módszert találjunk a fém észlelésére.
1. Impulzusszámlálás
Az egyik ötlet az oszcilláció impulzusainak számlálása a teljes bomlásig.
Ha fém van a tekercs közelében, akkor az oszcilláció csökken. Ebben az esetben az összehasonlító referenciafeszültségét olyan szintre kell állítani, hogy az utolsó impulzus alig mérhető. Tehát ha valamit észlel, ez az impulzus azonnal eltűnik. Ez kicsit problémás volt.
Az oszcilláció minden hulláma két megszakítást hoz létre. Az egyik lefelé menet, a másik visszafelé. Ahhoz, hogy a referenciafeszültséget pontosan az oszcillációs hullám csúcsára állítsa, a le- és felmenés közötti időnek a lehető legrövidebbnek kell lennie (lásd a képet). Sajnos itt az Arduino környezetének fejterhei problémákat okoznak.
A megszakítás minden triggerje ezt a kódot kéri:
ISR (ANALOG_COMP_vect) {
Toggle1 = Toggle0 // az utolsó érték mentése Toggle0 = TCNT1; // új értéket kap}
Ez a kód némi időt vesz igénybe (ha jól emlékszem, körülbelül 78 utasításciklus, körülbelül 5 mikroszekundum @ 16MHz). Ezért a két impulzus közötti minimális észlelhető távolság pontosan az az idő, amelyre ez a kód szükségeltetik. Ha a két trigger közötti idő lerövidül (lásd a képet), akkor a rendszer nem észleli, mivel a kód teljesen végrehajtásra kerül a második megszakítás észlelése előtt
Ez az érzékenység csökkenéséhez vezet. Ugyanakkor észrevettem, hogy az oszcillációk csillapítása nagyon érzékeny bármilyen külső hatásra, így ez a megközelítés összességében kissé megnehezíti.
2. A frekvencia mérése
A fém észlelésének másik módja az oszcilláció frekvenciájának mérése. Ennek nagy előnye van az oszcilláció csillapításának méréséhez képest, mivel a frekvenciaváltozás lehetővé teszi a fém megkülönböztetését. Ha vasanyag van a tekercs közelében, a frekvencia lelassul, ha nemesfém van a tekercs közelében, akkor a frekvencia nő.
A frekvencia mérésének legegyszerűbb módja az impulzusok mennyiségének mérése a tekercsek oszcillálása után. A kezdés és az utolsó impulzus közötti idő osztva a mért impulzusok teljes mennyiségével a gyakoriság. Sajnos az utolsó néhány oszcilláció meglehetősen aszimmetrikus. Mivel a fém jelenléte szintén befolyásolja az oszcilláció bomlását, az utolsó rezgések még aszimmetrikusabbak, a leolvasásokat nehéz értelmezni. A képen ez látható az 1: 1 'és 2: 2' kereszteződéssel.
Ezért jobb módszer néhány korábbi impulzus használata a frekvencia mérésére. A tesztelés során érdekes módon rájöttem, hogy egyes impulzus impulzusok érzékenyebbek, mint mások. Valahol az oszcillációk 2/3 -án jó pont az adatok megszerzésére.
Az adatok feldolgozása
A kezdeti kód a hurkon () alapul, amely impulzus () függvényt hív fel a tekercs időzítésére. Bár az eredmények nem voltak rosszak, késztetésem volt az időzítés javítására. Ennek érdekében létrehoztam egy teljesen időzítő alapú kódot, amely elvezetett az Arduino -alapú fémdetektor programozható külön programozható módjához. Ez az utasítás részletesen elmagyarázza az időzítést, az adatok ropogós LCD kimenetét stb
1. Az LCD
Az első módszer 10 impulzus mérése volt, majd az értékek megjelenítése az LCD -n. Amint rájöttem, hogy az I2C adatátvitel túl lassú, kódra váltottam, hogy impulzusonként csak egy karaktert frissítsek.
2. Minimális érték megközelítés
A leolvasások stabilitásának javítása érdekében soros kimeneti rutint írtam, hogy jobban érezzem a mért adatokat. Ott nyilvánvalóvá vált, hogy bár a legtöbb leolvasás némileg stabil volt, néhány nem! Az „ugyanazon” oszcillációs impulzus egyes leolvasásai olyan távol voltak egymástól, hogy minden módszert tönkretennének a frekvenciaváltozás elemzésére.
Ennek ellensúlyozására létrehoztam egy "határt", amelyen belül az érték megbízható. I. e. amikor az értékek több mint 35 időzítési cikluson1 voltak a várt értéktől, ezeket az értékeket figyelmen kívül hagyták (részletesen ismertetjük az "Arduino -alapú fémdetektor programozása" című utasításban)
Ez a megközelítés nagyon stabilnak bizonyult.
3. A feszültség
A Teemo eredeti kialakítása 5 volt alatt működik. Mivel feltételezéseim „több volt = nagyobb teljesítmény = nagyobb érzékenység” volt, az elején 12 V -ról tápláltam a készüléket. Ennek eredményeként a MOSFET felmelegedett. Ez a felmelegedés azután a mért értékek általános eltolódását eredményezte, ami az érzékelő gyakori újraegyensúlyozásához vezetett. A feszültség 5 V -ra történő csökkentésével a MOSFET hőtermelését olyan szintre lehet minimalizálni, hogy szinte semmilyen eltolódást nem észleltek. Ez még egyszerűbbé tette az áramkört, mivel az Arduino fedélzeti feszültségszabályozójára már nem volt szükség.
A MOSFET -hez először az IRL540 -et választottam. Ez a MOSFET logikai szintű kompatibilis, de maximális feszültsége ov 100V. Reméltem, hogy jobb teljesítményre váltok, 200V -os IRL640 -re. Sajnos az eredmények ugyanazok voltak. Tehát vagy egy IRL540 vagy egy IRL640 elvégzi a feladatot.
3. lépés: Végeredmények
Az érzékelő előnye, hogy megkülönbözteti az értékes és a vas anyagokat. Hátránya, hogy az érzékenység ezzel az egyszerű sémával nem túl jó. A teljesítmény összehasonlításához ugyanazokat a hivatkozásokat használtam, mint a Flip-Coil detektor esetében. Valószínűleg jó néhány pontosításhoz, de valószínűleg csalódást okoz a valódi kereséshez.
Itt az eredeti kialakítás a PIC vezérlővel érzékenyebb lehet, mivel 32 MHz -en működik a 16 MHz -es hő helyett, amely nagyobb felbontást biztosít a frekvenciaváltások észleléséhez.
Az eredményeket 48 tekercs 100 mm -es tekercs használatával értük el.
Mint mindig, nyitott a visszajelzésekre
Ajánlott:
Arduino alapú barkács játékvezérlő - Arduino PS2 játékvezérlő - Tekken lejátszása DIY Arduino játékpaddal: 7 lépés
Arduino alapú barkács játékvezérlő | Arduino PS2 játékvezérlő | Tekken játék a DIY Arduino Gamepad segítségével: Helló srácok, a játék mindig szórakoztató, de a saját, saját készítésű, egyedi játékvezérlővel való játék szórakoztatóbb. Tehát játékvezérlőt készítünk az arduino pro micro segítségével ebben az utasításban
Arduino alapú érintésmentes infravörös hőmérő - IR alapú hőmérő Arduino használatával: 4 lépés
Arduino alapú érintésmentes infravörös hőmérő | IR alapú hőmérő Arduino használatával: Sziasztok, ebben az útmutatóban, érintésmentes hőmérőt készítünk arduino segítségével. Mivel néha a folyadék/szilárd anyag hőmérséklete túl magas vagy alacsony, majd nehéz kapcsolatba lépni vele és elolvasni ilyenkor a hőmérséklet
Időjárás alapú zenegenerátor (ESP8266 alapú Midi generátor): 4 lépés (képekkel)
Időjárás alapú zenegenerátor (ESP8266 alapú Midi generátor): Szia, ma elmagyarázom, hogyan készíts saját kis időjárás alapú zenegenerátort. Ez egy ESP8266 -on alapul, ami olyan, mint egy Arduino, és reagál a hőmérsékletre, az esőre és fényintenzitás. Ne várd el, hogy teljes dalokat vagy akkordprogramokat készítsen
DIY Arduino alapú impulzusindukciós fémdetektor: 5 lépés
DIY Arduino alapú impulzusindukciós fémdetektor: Ez egy viszonylag egyszerű fémdetektor, kiváló teljesítménnyel
Arduino alapú impulzusindukciós érzékelő - flip tekercs: 5 lépés (képekkel)
Arduino alapú impulzusindukciós detektor - elfordítható tekercs: Az ötlet A múltban néhány fémdetektor építése változó eredménnyel Szerettem volna felfedezni az Arduino képességeit ebben az irányban. Van néhány jó példa arra, hogyan lehet fémdetektorokat építeni az Arduino segítségével. itt tanulságos