Indholdsfortegnelse:

Arduino omvendt Magnetron -transduceraflæsning: 3 trin
Arduino omvendt Magnetron -transduceraflæsning: 3 trin

Video: Arduino omvendt Magnetron -transduceraflæsning: 3 trin

Video: Arduino omvendt Magnetron -transduceraflæsning: 3 trin
Video: $93 Cheapest room on japan overnight sleeper ferry 😴🛳 12 hours boat trip|Osaka to Beppu| 2024, November
Anonim
Arduino omvendt Magnetron -transduceraflæsning
Arduino omvendt Magnetron -transduceraflæsning

Som en del af et igangværende projekt her, der dokumenterede det igangværende fremskridt i mit strejf i verden med ultrahøj vakuumpartikelfysik, kom det til den del af projektet, der krævede noget elektronik og kodning.

Jeg købte en overskydende MKS -serie 903 IMT kold katode vakuummåler, uden controller eller aflæsning. For en vis baggrund har ultrahøjvakuumsystemer brug for forskellige sensortrin for korrekt at måle manglen på gasser i et kammer. Når du får et stærkere og stærkere vakuum, jo mere kompliceret ender denne måling.

Ved lavt vakuum eller groft vakuum kan enkle termoelementmålere gøre jobbet, men efterhånden som du fjerner mere og mere fra kammeret, har du brug for noget, der ligner en gasioniseringsmåler. De to mest almindelige metoder er varme katoder og kolde katodemålere. Varme katodemålere fungerer som mange vakuumrør, hvor de har et filament, der koger af frie elektroner, som accelereres mod et gitter. Eventuelle gasmolekyler i vejen vil ionisere og trippe sensoren. Kolde katodemålere bruger en højspænding uden filament inde i en magnetron til at producere en elektronsti, der også ioniserer lokale gasmolekyler og udløser sensoren.

Min måler er kendt som en inverteret magnetron -transducermåler, fremstillet af MKS, som integrerede kontrolelektronikken med selve målerens hardware. Udgangen er imidlertid en lineær spænding, der falder sammen med en logaritmisk skala, der bruges til måling af vakuum. Dette er, hvad vi vil programmere vores arduino til at gøre.

Trin 1: Hvad er der brug for?

Hvad skal der til?
Hvad skal der til?
Hvad skal der til?
Hvad skal der til?
Hvad skal der til?
Hvad skal der til?
Hvad skal der til?
Hvad skal der til?

Hvis du er som mig, forsøger du at bygge et vakuumsystem til en billig pris, og du får hvad som helst du kan nøjes med. Heldigvis producerer mange måleinstrumenter konstruktionsmålere på denne måde, hvor måleren udsender en spænding, der kan bruges i dit eget målesystem. Til dette instruerbare specifikt skal du dog:

  • 1 MKS HPS serie 903 AP IMT kold katode vakuum sensor
  • 1 arduino uno
  • 1 standard 2x16 LCD -tegnvisning
  • 10k ohm potentiometer
  • kvindelig DSUB-9 stik
  • serielt DB-9-kabel
  • spændingsdeler

Trin 2: Kode

Kode!
Kode!

Så jeg har lidt erfaring med arduino, som at rode med mine 3d -printeres RAMPS -konfiguration, men jeg havde ikke erfaring med at skrive kode fra bunden, så dette var mit første rigtige projekt. Jeg studerede en masse sensorguider og ændrede dem for at forstå, hvordan jeg kunne bruge dem med min sensor. I første omgang var tanken at gå med et opslagstabel, som jeg har set andre sensorer, men jeg endte med at bruge arduinoens flydende punkts evne til at udføre en log/lineær ligning baseret på den konverteringstabel, der blev leveret af MKS i manualen.

Koden herunder sætter simpelthen A0 som et flydende punkt for spænding, som er 0-5v fra spændingsdeleren. Derefter beregnes det tilbage op til en 10v skala og interpoleres ved hjælp af ligningen P = 10^(v-k) hvor p er tryk, v er spænding på en 10v skala og k er enheden, i dette tilfælde torr, repræsenteret med 11.000. Det beregner det i flydende punkt og viser det derefter på en LCD -skærm i videnskabelig notation ved hjælp af dtostre.

#include #include // initialiser biblioteket med numrene på grænsefladestifterne LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // installationsrutinen kører en gang, når du trykker på reset: void setup () {/ / initialisere seriel kommunikation med 9600 bit pr. sekund: Serial.begin (9600); pinMode (A0, INPUT); // A0 er indstillet som input #define PRESSURE_SENSOR A0; lcd.begin (16, 2); lcd.print ("MKS Instruments"); lcd.setCursor (0, 1); lcd.print ("IMT kold katode"); forsinkelse (6500); lcd.clear (); lcd.print ("Gauge Pressure:"); } // loop -rutinen kører igen og igen for altid: void loop () {float v = analogRead (A0); // v er indgangsspænding indstillet som flydende punktenhed på analogRead v = v * 10,0 /1024; // v er 0-5v divider spænding målt fra 0 til 1024 beregnet til 0v til 10v skala float p = pow (10, v - 11.000); // p er tryk i torr, som er repræsenteret ved k i ligningen [P = 10^(vk)], som er- // -11.000 (K = 11.000 for Torr, 10.875 for mbar, 8.000 for mikron, 8.875 for Pascal) Serial.print (v); kultryk E [8]; dtostre (p, tryk E, 1, 0); // videnskabeligt format med 1 decimaler lcd.setCursor (0, 1); lcd.print (trykE); lcd.print ("Torr"); }

Trin 3: Test

Image
Image
Test
Test

Jeg udførte testene ved hjælp af en ekstern strømforsyning, i trin 0-5v. Jeg udførte derefter beregningerne manuelt og sørgede for, at de stemte overens med den viste værdi. Det ser ud til at læse lidt af med en meget lille mængde, men dette er ikke rigtig vigtigt, da det er inden for min nødvendige specifikation.

Dette projekt var et stort første kodeprojekt for mig, og jeg ville ikke have afsluttet det, hvis det ikke var for det fantastiske arduino -fællesskab: 3

De utallige guider og sensorprojekter hjalp virkelig med at finde ud af, hvordan man gør dette. Der var en masse forsøg og fejl, og en masse blev hængende. Men i sidste ende er jeg ekstremt glad for, hvordan dette kom ud, og ærligt talt er oplevelsen af at se kode, du fik gjort, hvad den skulle for første gang, temmelig fantastisk.

Anbefalede: