Índice:

Leitura do Transdutor Magnetron Invertido do Arduino: 3 etapas
Leitura do Transdutor Magnetron Invertido do Arduino: 3 etapas

Vídeo: Leitura do Transdutor Magnetron Invertido do Arduino: 3 etapas

Vídeo: Leitura do Transdutor Magnetron Invertido do Arduino: 3 etapas
Vídeo: Transistores na Prática! - Identificando, Medindo e Testando o Transistor 2024, Julho
Anonim
Leitura do transdutor magnetron invertido Arduino
Leitura do transdutor magnetron invertido Arduino

Como parte de um projeto em andamento meu aqui, documentando o progresso contínuo de minha incursão no mundo da física de partículas de Ultra Alto Vácuo, chegou à parte do projeto que exigia alguns eletrônicos e codificação.

Eu comprei um vacuômetro de cátodo frio IMT série 903 da MKS excedente, sem controlador ou leitura. Para alguns antecedentes, os sistemas de ultra-alto vácuo precisam de vários estágios de sensor para medir adequadamente a falta de gases em uma câmara. À medida que você obtém um vácuo cada vez mais forte, mais complicada se torna essa medição.

Em vácuo baixo, ou vácuo bruto, medidores de termopar simples podem fazer o trabalho, mas conforme você remove mais e mais da câmara, você precisa de algo semelhante a um medidor de ionização de gás. Os dois métodos mais comuns são medidores de cátodo quente e catodo frio. Os medidores de cátodo quente funcionam como muitos tubos de vácuo, nos quais eles têm um filamento que evapora os elétrons livres, que são acelerados em direção a uma grade. Quaisquer moléculas de gás no caminho irão ionizar e disparar o sensor. Os medidores de cátodo frio usam uma alta tensão sem nenhum filamento dentro de um magnetron para produzir um caminho de elétrons que também ioniza as moléculas de gás locais e aciona o sensor.

Meu medidor é conhecido como um medidor de transdutor magnetron invertido, feito pela MKS, que integrou a eletrônica de controle com o próprio hardware do medidor. No entanto, a saída é uma tensão linear que coincide com uma escala logarítmica usada para medir o vácuo. É para isso que programaremos nosso arduino.

Etapa 1: O que é necessário?

O que é preciso?
O que é preciso?
O que é preciso?
O que é preciso?
O que é preciso?
O que é preciso?
O que é preciso?
O que é preciso?

Se você for como eu, tentar construir um sistema de vácuo com baixo custo, obter qualquer medidor que puder é o que você vai se contentar. Felizmente, muitos fabricantes de medidores constroem medidores dessa maneira, onde o medidor produz uma tensão que pode ser usada em seu próprio sistema de medição. Para este instrutível especificamente, no entanto, você precisará:

  • 1 MKS HPS série 903 AP IMT sensor de vácuo de cátodo frio
  • 1 arduino uno
  • 1 display de caracteres LCD 2x16 padrão
  • Potenciômetro de 10k ohm
  • conector DSUB-9 fêmea
  • cabo serial DB-9
  • divisor de tensão

Etapa 2: Código

Código!
Código!

Então, eu tenho alguma experiência com o arduino, como mexer com a configuração RAMPS das minhas impressoras 3D, mas não tive experiência em escrever código do zero, então este foi meu primeiro projeto real. Estudei muitos guias de sensores e os modifiquei para entender como poderia usá-los com meu sensor. A princípio, a ideia era ir com uma tabela de consulta, pois já vi outros sensores, mas acabei usando o recurso de ponto flutuante do arduino para realizar uma equação log / linear baseada na tabela de conversão fornecida pelo MKS no manual.

O código abaixo simplesmente define A0 como uma unidade de ponto flutuante para tensão, que é 0-5 V do divisor de tensão. Em seguida, ele é calculado de volta para uma escala de 10v e interpolado usando a equação P = 10 ^ (v-k) onde p é a pressão, v é a tensão em uma escala de 10v ek é a unidade, neste caso torr, representada por 11.000. Ele calcula isso em ponto flutuante e, em seguida, exibe em uma tela LCD em notação científica usando dtostre.

#include #include // inicializa a biblioteca com os números dos pinos da interface LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // a rotina de configuração é executada uma vez quando você pressiona reset: void setup () {/ / inicializar a comunicação serial a 9600 bits por segundo: Serial.begin (9600); pinMode (A0, INPUT); // A0 é definido como entrada #define PRESSURE_SENSOR A0; lcd.begin (16, 2); lcd.print ("MKS Instruments"); lcd.setCursor (0, 1); lcd.print ("Cátodo frio IMT"); atraso (6500); lcd.clear (); lcd.print ("Pressão manométrica:"); } // a rotina de loop é executada indefinidamente: void loop () {float v = analogRead (A0); // v é a tensão de entrada definida como unidade de ponto flutuante em analogRead v = v * 10.0 / 1024; // v é a tensão do divisor de 0-5v medida de 0 a 1024 calculada para 0v a 10v escala float p = pow (10, v - 11.000); // p é a pressão em torr, que é representada por k na equação [P = 10 ^ (vk)] que é - // -11.000 (K = 11.000 para Torr, 10.875 para mbar, 8.000 para mícrons, 8.875 para Pascal) Serial.print (v); pressão do carvão vegetal E [8]; dtostre (p, pressão E, 1, 0); // formato científico com 1 casa decimal lcd.setCursor (0, 1); lcd.print (pressão E); lcd.print ("Torr"); }

Etapa 3: Teste

Image
Image
Testando
Testando

Realizei os testes usando uma fonte de alimentação externa, em incrementos de 0-5v. Em seguida, executei os cálculos manualmente e verifiquei se eles estavam de acordo com o valor exibido. Parece ter uma leitura um pouco fora de uma quantidade muito pequena, no entanto, isso não é realmente importante, pois está dentro da especificação necessária.

Este projeto foi um grande projeto de primeiro código para mim, e eu não o teria terminado se não fosse pela fantástica comunidade arduino: 3

Os incontáveis guias e projetos de sensores realmente ajudaram a descobrir como fazer isso. Houve muitas tentativas e erros, e muitos travamentos. Mas, no final, estou extremamente feliz com a forma como isso saiu e, honestamente, a experiência de ver o código que você fez fazer o que deveria pela primeira vez é incrível.

Recomendado: