Sisällysluettelo:

Arduino -käänteisen magneettoanturin lukema: 3 vaihetta
Arduino -käänteisen magneettoanturin lukema: 3 vaihetta

Video: Arduino -käänteisen magneettoanturin lukema: 3 vaihetta

Video: Arduino -käänteisen magneettoanturin lukema: 3 vaihetta
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Marraskuu
Anonim
Arduinon käänteinen magneettoanturin lukema
Arduinon käänteinen magneettoanturin lukema

Osana meneillään olevaa hankettani, joka dokumentoi uraani jatkuvan edistymisen Ultra High Vacuum -hiukkasfysiikan maailmaan, se tuli projektin osaan, joka vaati jonkin verran elektroniikkaa ja koodausta.

Ostin ylimääräisen MKS -sarjan 903 IMT -kylmäkatodin tyhjiömittarin ilman ohjainta tai lukemaa. Joissakin tapauksissa erittäin korkeat tyhjiöjärjestelmät tarvitsevat erilaisia anturivaiheita, jotta voidaan mitata oikein kaasujen puute kammiossa. Kun saat yhä vahvemman tyhjiön, sitä monimutkaisempi tämä mittaus päättyy.

Alhaisessa tai karkeassa tyhjiössä yksinkertaiset termoparimittarit voivat tehdä työn, mutta kun poistat yhä enemmän kammiosta, tarvitset jotain, joka on samanlainen kuin kaasun ionisaatiomittari. Kaksi yleisintä menetelmää ovat kuuma- ja kylmäkatodimittarit. Kuumat katodimittarit toimivat kuten monet tyhjiöputket, joissa niissä on filamentti, joka kiehuu vapaista elektroneista, jotka kiihdytetään kohti verkkoa. Kaikki tiellä olevat kaasumolekyylit ionisoivat ja laukaisivat anturin. Kylmät katodimittarit käyttävät suurjännitettä ilman hehkulankaa magnetronin sisällä elektroniradan tuottamiseksi, joka myös ionisoi paikallisia kaasumolekyylejä ja laukaisee anturin.

Mittarini tunnetaan MKS: n tekemänä käänteisenä magnetronianturimittarina, joka integroi ohjauselektroniikan itse mittarin laitteistoon. Lähtö on kuitenkin lineaarinen jännite, joka on sama kuin tyhjiön mittaamiseen käytetty logaritminen asteikko. Tätä me ohjelmoimme arduinoamme tekemään.

Vaihe 1: Mitä tarvitaan?

Mitä tarvitaan?
Mitä tarvitaan?
Mitä tarvitaan?
Mitä tarvitaan?
Mitä tarvitaan?
Mitä tarvitaan?
Mitä tarvitaan?
Mitä tarvitaan?

Jos olet kuin minä, yrität rakentaa tyhjiöjärjestelmän halvalla, saat mitä tahansa mittaria, jonka voit tyytyä. Onneksi monet mittarivalmistajat rakentavat mittareita tällä tavalla, jossa mittari antaa jännitteen, jota voidaan käyttää omassa mittausjärjestelmässäsi. Tätä ohjeistusta varten tarvitset kuitenkin:

  • 1 MKS HPS -sarjan 903 AP IMT kylmäkatodin tyhjiöanturi
  • 1 arduino uno
  • 1 tavallinen 2x16 LCD -merkkinäyttö
  • 10k ohmin potentiometri
  • naaras DSUB-9-liitin
  • sarjakaapeli DB-9
  • jännitteenjakaja

Vaihe 2: Koodi

Koodi!
Koodi!

Joten minulla on jonkin verran kokemusta arduino -ohjelmasta, kuten sekoittamisesta 3D -tulostimeni RAMPS -kokoonpanoon, mutta minulla ei ollut kokemusta koodin kirjoittamisesta alusta lähtien, joten tämä oli ensimmäinen todellinen projektini. Olen tutkinut paljon anturiohjaimia ja muokannut niitä ymmärtämään, kuinka voisin käyttää niitä anturini kanssa. Aluksi ajatuksena oli käyttää hakutaulukkoa, kuten olen nähnyt muita antureita, mutta päädyin käyttämään arduinon liukulukuominaisuutta suorittamaan log/lineaarinen yhtälö MKS: n käsikirjassa olevan muuntotaulukon perusteella.

Alla oleva koodi asettaa yksinkertaisesti A0: n liukulukuyksiköksi jännitteelle, joka on 0-5v jännitteenjakajasta. Sitten se lasketaan takaisin 10 V: n asteikkoon ja interpoloidaan käyttäen yhtälöä P = 10^(v-k), jossa p on paine, v on jännite 10 V: n asteikolla ja k on yksikkö, tässä tapauksessa torr, jota edustaa 11 000. Se laskee sen liukulukuna ja näyttää sen sitten nestekidenäytöllä tieteellisessä merkinnässä dtostre -toiminnolla.

#include #include // alustaa kirjaston liitäntätappien numeroilla LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // asennusohjelma suoritetaan kerran, kun painat reset: void setup () {/ / alustaa sarjaliikenne nopeudella 9600 bittiä sekunnissa: Serial.begin (9600); pinMode (A0, INPUT); // A0 on asetettu tuloksi #define PRESSURE_SENSOR A0; lcd. alku (16, 2); lcd.print ("MKS Instruments"); lcd.setCursor (0, 1); lcd.print ("IMT -kylmäkatodi"); viive (6500); lcd.clear (); lcd.print ("Mittaripaine:"); } // silmukkarutiini jatkuu yhä uudelleen ja uudelleen ikuisesti: void loop () {float v = analogRead (A0); // v on tulojännite, joka on asetettu liukulukuyksiköksi analogRead v = v * 10.0 /1024; // v on 0–5 V: n jakajajännite 0–1024 laskettuna 0–10 V: n asteikolla kelluva p = pow (10, v - 11.000); // p on paine torreina, jota edustaa k yhtälössä [P = 10^(vk)], joka on - // - 11.000 (K = 11.000 Torr, 10.875 mbar, 8.000 mikronia, 8.875 Pascal) Serial.print (v); hiili paineE [8]; dtostre (p, paineE, 1, 0); // tieteellinen muoto 1 desimaalin tarkkuudella lcd.setCursor (0, 1); lcd.print (paineE); lcd.print ("Torr"); }

Vaihe 3: Testaus

Image
Image
Testaus
Testaus

Tein testit ulkoisella virtalähteellä, 0-5v: n välein. Suoritin sitten laskelmat manuaalisesti ja varmistin, että ne sopivat näytettyyn arvoon. Näyttää siltä, että se luetaan hieman pois hyvin pienellä määrällä, mutta tämä ei ole oikeastaan tärkeää, koska se on tarvittavien tietojeni sisällä.

Tämä projekti oli valtava ensimmäinen koodiprojekti minulle, enkä olisi lopettanut sitä, ellei se olisi fantastinen arduino -yhteisö: 3

Lukemattomat oppaat ja anturiprojektit auttoivat todella selvittämään, miten tämä tehdään. Siellä oli paljon kokeiluja ja virheitä, ja paljon jumissa. Mutta loppujen lopuksi olen erittäin tyytyväinen siitä, miten tämä tuli ulos, ja rehellisesti sanottuna kokemus siitä, että saamasi koodi teki sen, mitä sen pitäisi tehdä ensimmäistä kertaa, on melko mahtavaa.

Suositeltava: