Taula de continguts:

Lectura del transductor de magnetron invertit Arduino: 3 passos
Lectura del transductor de magnetron invertit Arduino: 3 passos

Vídeo: Lectura del transductor de magnetron invertit Arduino: 3 passos

Vídeo: Lectura del transductor de magnetron invertit Arduino: 3 passos
Vídeo: 8º Tutorial ONNautic Live: Prestaciones del SideScan o Barrido Lateral. Angulo de frecuencia. 2024, Juliol
Anonim
Lectura del transductor de magnetron invertit Arduino
Lectura del transductor de magnetron invertit Arduino

Com a part d’un projecte meu en curs aquí, que documenta el progrés continu de la meva incursió en el món de la física de partícules a ultra alt buit, es va arribar a la part del projecte que requeria una certa electrònica i codificació.

Vaig comprar un mesurador de buit de càtode fred de la sèrie MKS 903 IMT, sense controlador ni lectura. Per alguns antecedents, els sistemes de buit ultra alt necessiten diverses etapes del sensor per mesurar adequadament la manca de gasos en una cambra. A mesura que obtingueu un buit cada vegada més fort, més complicada serà aquesta mesura.

Al baix buit o al buit aspre, els mesuradors de termoparell senzills poden fer la feina, però a mesura que traieu cada vegada més de la cambra, necessiteu alguna cosa semblant a un indicador d’ionització de gas. Els dos mètodes més habituals són els indicadors de càtode calent i de càtode fred. Els indicadors de càtodes calents funcionen com molts tubs de buit, en què tenen un filament que bull els electrons lliures, que s’acceleren cap a una xarxa. Qualsevol molècula de gas que hi hagi en el camí ionitzarà i dispararà el sensor. Els mesuradors de càtodes freds utilitzen un voltatge alt sense filament dins d’un magnetró per produir un camí d’electrons que també ionitza les molècules de gas locals i dispara el sensor.

El meu indicador es coneix com un indicador de transductor de magnetrons invertit, fabricat per MKS, que integrava l'electrònica de control amb el propi maquinari de l'indicador. No obstant això, la sortida és una tensió lineal que coincideix amb una escala logarítmica utilitzada per mesurar el buit. Això és el que farem amb el nostre arduino.

Pas 1: què es necessita?

Què es necessita?
Què es necessita?
Què es necessita?
Què es necessita?
Què es necessita?
Què es necessita?
Què es necessita?
Què es necessita?

Si sou com jo, intentareu construir un sistema de buit a un preu econòmic, obtenir el que pugueu mesurar és el que us conformareu. Afortunadament, molts fabricants de calibres construeixen calibres d’aquesta manera, on el calibre genera una tensió que es pot utilitzar al vostre propi sistema de mesura. Per a aquesta instrucció específica, però, necessitareu:

  • 1 sensor de buit de càtode fred IMT sèrie 903 AP IMT sèrie 903
  • 1 arduino uno
  • 1 pantalla LCD de caràcters 2x16 estàndard
  • Potenciòmetre de 10 k ohmis
  • connector femella DSUB-9
  • cable sèrie DB-9
  • divisor de tensió

Pas 2: Codi

Codi!
Codi!

Per tant, tinc una mica d’experiència amb arduino, com ara embolicar-me amb la configuració RAMPS de les meves impressores 3D, però no tenia experiència escrivint codi des de la base, així que aquest va ser el meu primer projecte real. Vaig estudiar moltes guies de sensors i les vaig modificar per entendre com les podia utilitzar amb el meu sensor. Al principi, la idea era anar amb una taula de cerca, ja que he vist altres sensors, però vaig acabar utilitzant la capacitat de coma flotant de l’arduino per realitzar una equació de registre / lineal basada en la taula de conversió proporcionada per MKS al manual.

El codi següent simplement defineix A0 com a unitat de coma flotant per a la tensió, que és de 0-5v del divisor de tensió. A continuació, es calcula de nou a una escala de 10v i s’interpola mitjançant l’equació P = 10 ^ (v-k) on p és pressió, v és tensió en una escala de 10v i k és la unitat, en aquest cas torr, representada per 11.000. Calcula això en coma flotant, i després el mostra en una pantalla LCD en notació científica mitjançant dtostre.

#include #include // inicialitza la biblioteca amb els números dels pins de la interfície LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // la rutina de configuració s’executa una vegada quan prems reset: void setup () {/ / inicialitzar la comunicació serial a 9600 bits per segon: Serial.begin (9600); pinMode (A0, INPUT); // A0 s'estableix com a entrada #define PRESSURE_SENSOR A0; lcd.begin (16, 2); lcd.print ("MKS Instruments"); lcd.setCursor (0, 1); lcd.print ("Càtode fred IMT"); retard (6500); lcd.clear (); lcd.print ("Indicador de pressió:"); } // la rutina del bucle s'executa una i altra vegada per sempre: void loop () {float v = analogRead (A0); // v és el voltatge d’entrada establert com a unitat de coma flotant a analogRead v = v * 10.0 / 1024; // v és un voltatge divisor de 0-5v mesurat de 0 a 1024 calculat a una escala flotant de 0v a 10v p = pow (10, v - 11.000); // p és la pressió en torr, que es representa per k a l’equació [P = 10 ^ (vk)] que és- // -11.000 (K = 11.000 per Torr, 10.875 per mbar, 8.000 per micres, 8.875 per Pascal) Serial.print (v); pressió de char E [8]; dtostre (p, pressió E, 1, 0); // format científic amb 1 posició decimal lcd.setCursor (0, 1); impressió lcd (pressió E); lcd.print ("Torr"); }

Pas 3: proves

Image
Image
Proves
Proves

He realitzat les proves amb una font d'alimentació externa, en increments de 0-5v. Després he realitzat els càlculs manualment i m'he assegurat que concorden amb el valor mostrat. Sembla que es llegeix lleugerament per una quantitat molt petita, però això no és realment important, ja que està dins de les meves especificacions necessàries.

Aquest projecte va ser un gran projecte de primer codi per a mi, i no ho hauria acabat si no fos per la fantàstica comunitat arduino: 3

Els innombrables projectes de guies i sensors van ajudar realment a esbrinar com fer-ho. Hi va haver moltes proves i errors, i molt de bloqueig. Però, al final, estic molt content de com va sortir això i, sincerament, l’experiència de veure el codi que heu fet fer el que se suposa per primera vegada és bastant impressionant.

Recomanat: