INHOUDSOPGAWE:

Arduino Omgekeerde Magnetron -transducer -uitlees: 3 stappe
Arduino Omgekeerde Magnetron -transducer -uitlees: 3 stappe

Video: Arduino Omgekeerde Magnetron -transducer -uitlees: 3 stappe

Video: Arduino Omgekeerde Magnetron -transducer -uitlees: 3 stappe
Video: Anti-diefstalalarm maken met magnetische sensor | REED SCHAKELAAR 2024, November
Anonim
Arduino Omgekeerde Magnetron -transducervoorlesing
Arduino Omgekeerde Magnetron -transducervoorlesing

As deel van 'n lopende projek van my hier, wat die voortgesette vordering van my inval in die wêreld van Ultra High Vacuum -deeltjiesfisika beskryf, het dit by die deel van die projek gekom wat elektronika en kodering vereis het.

Ek het 'n oortollige MKS -reeks 903 IMT koue katode vakuummeter gekoop, sonder kontroleerder of uitlees. Vir 'n agtergrond benodig stelsels met 'n baie hoë vakuum verskillende sensorstappe om die gebrek aan gasse in 'n kamer behoorlik te meet. Namate u 'n sterker en sterker vakuum kry, hoe meer ingewikkeld word hierdie meting.

By lae vakuum of growwe vakuum kan eenvoudige termokoppelaars die werk doen, maar namate u meer en meer uit die kamer verwyder, benodig u iets soortgelyk aan 'n gasioniseringsmeter. Die twee mees algemene metodes is warm katode en koue katode meters. Warm katodemeters werk soos baie vakuumbuise waarin hulle 'n filament het wat vrye elektrone afkook, wat versnel word na 'n rooster. Enige gasmolekules in die pad sal die sensor ioniseer en laat struikel. Koue katodemeters gebruik 'n hoogspanning sonder filament in 'n magnetron om 'n elektronpaadjie te produseer wat ook plaaslike gasmolekules ioniseer en die sensor uitstoot.

My meter staan bekend as 'n omgekeerde magnetron -omskakelingsmeter, gemaak deur MKS, wat die elektronika van die kontrole met die meetapparatuur self geïntegreer het. Die uitset is egter 'n lineêre spanning wat saamval met 'n logaritmiese skaal wat gebruik word vir die meting van vakuum. Dit is wat ons ons arduino gaan programmeer.

Stap 1: Wat is nodig?

Wat is nodig?
Wat is nodig?
Wat is nodig?
Wat is nodig?
Wat is nodig?
Wat is nodig?
Wat is nodig?
Wat is nodig?

As u net soos ek is, en u probeer om 'n vakuumstelsel goedkoop te bou, dan kry u alles wat u kan. Gelukkig vervaardig baie meters boumeters op hierdie manier, waar die meter 'n spanning lewer wat in u eie meetstelsel gebruik kan word. Vir hierdie instruksies spesifiek, benodig u egter:

  • 1 MKS HPS reeks 903 AP IMT koue katode vakuum sensor
  • 1 arduino uno
  • 1 standaard 2x16 LCD -karakterskerm
  • 10k ohm potensiometer
  • vroulike DSUB-9-aansluiting
  • seriële DB-9-kabel
  • spanningsverdeler

Stap 2: Kodeer

Kode!
Kode!

Ek het dus ondervinding met arduino, soos om met die RAMPS -konfigurasie van my 3D -drukkers te rommel, maar ek het nie ondervinding van die begin af nie, dus dit was my eerste werklike projek. Ek het baie sensorgidse bestudeer en aangepas om te verstaan hoe ek dit met my sensor kan gebruik. Aanvanklik was die idee om 'n opzoektabel te gebruik, soos ek ander sensors gesien het, maar ek het uiteindelik die arduino se dryfpuntvermoë gebruik om 'n log/lineêre vergelyking uit te voer op grond van die omskakelingstabel wat MKS in die handleiding verskaf.

Die onderstaande kode stel A0 eenvoudig as 'n dryfpunt-eenheid vir spanning, wat 0-5v van die spanningsverdeler af is. Dan word dit terug bereken tot 'n 10v-skaal en geïnterpoleer met behulp van die vergelyking P = 10^(v-k) waar p druk is, v spanning op 'n 10v-skaal is en k die eenheid is, in hierdie geval torr, verteenwoordig deur 11.000. Dit bereken dit in drywende punt, en vertoon dit dan op 'n LCD -skerm in wetenskaplike notasie met behulp van dtostre.

#include #include // initialiseer die biblioteek met die nommers van die koppelvlakpenne LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // die opstelroetine loop een keer as u op reset druk: void setup () {/ / initialiseer seriële kommunikasie teen 9600 bis per sekonde: Serial.begin (9600); pinMode (A0, INVOER); // A0 word as invoer gestel #define PRESSURE_SENSOR A0; lcd.begin (16, 2); lcd.print ("MKS Instruments"); lcd.setCursor (0, 1); lcd.print ("IMT koue katode"); vertraging (6500); lcd.clear (); lcd.print ("Gauge Pressure:"); } // die lusroetine loop vir altyd oor en oor: void lus () {float v = analogRead (A0); // v is ingangsspanning ingestel as dryfpunt -eenheid op analoog Lees v = v * 10.0 /1024; // v is 0-5v verdelerspanning gemeet van 0 tot 1024 bereken tot 0v tot 10v skaal float p = pow (10, v - 11.000); // p is druk in torr, wat voorgestel word deur k in die vergelyking [P = 10^(vk)] wat- // -11.000 (K = 11.000 vir Torr, 10.875 vir mbar, 8.000 vir mikron, 8.875 vir Pascal) Serial.print (v); char drukE [8]; dtostre (p, druk E, 1, 0); // wetenskaplike formaat met 1 desimale plekke lcd.setCursor (0, 1); lcd.print (drukE); lcd.print ("Torr"); }

Stap 3: Toets

Image
Image
Toets
Toets

Ek het die toetse uitgevoer met behulp van 'n eksterne kragtoevoer, in stappe van 0-5v. Ek het die berekeninge dan handmatig uitgevoer en seker gemaak dat dit ooreenstem met die getoonde waarde. Dit lyk asof dit met 'n baie klein hoeveelheid effens afgeneem word, maar dit is nie regtig belangrik nie, aangesien dit binne my vereiste spesifikasie is.

Hierdie projek was vir my 'n groot eerste kode -projek, en ek sou dit nie voltooi het as dit nie vir die fantastiese arduino -gemeenskap was nie: 3

Die tallose gidse en sensorprojekte het werklik gehelp om uit te vind hoe u dit moet doen. Daar was baie beproewing en fout, en baie het vasgesteek. Maar uiteindelik is ek baie tevrede met hoe dit uitgekom het, en eerlik, die ervaring om kode wat u vir die eerste keer moes doen, te sien doen, is ongelooflik.

Aanbeveel: