Inhoudsopgave:

Arduino Inverted Magnetron Transducer Uitlezing - Ajarnpa
Arduino Inverted Magnetron Transducer Uitlezing - Ajarnpa

Video: Arduino Inverted Magnetron Transducer Uitlezing - Ajarnpa

Video: Arduino Inverted Magnetron Transducer Uitlezing - Ajarnpa
Video: Amazing arduino project 2024, November
Anonim
Arduino Inverted Magnetron Transducer Uitlezing
Arduino Inverted Magnetron Transducer Uitlezing

Als onderdeel van een lopend project van mij hier, dat de voortdurende voortgang van mijn zoektocht naar de wereld van ultrahoogvacuümdeeltjesfysica documenteert, kwam het tot het deel van het project dat wat elektronica en codering vereiste.

Ik heb een overtollige MKS-serie 903 IMT-vacuümmeter met koude kathode gekocht, zonder controller of uitlezing. Voor sommige achtergronden hebben ultrahoogvacuümsystemen verschillende sensorstadia nodig om het gebrek aan gassen in een kamer goed te meten. Naarmate je een sterker en sterker vacuüm krijgt, wordt deze meting ingewikkelder.

Bij laag vacuüm of ruw vacuüm kunnen eenvoudige thermokoppelmeters het werk doen, maar naarmate je meer en meer uit de kamer verwijdert, heb je iets nodig dat lijkt op een gasionisatiemeter. De twee meest voorkomende methoden zijn hete-kathode- en koude-kathodemeters. Hete kathodemeters werken zoals veel vacuümbuizen, waarin ze een gloeidraad hebben die vrije elektronen kookt, die worden versneld naar een rooster. Alle gasmoleculen in de weg zullen ioniseren en de sensor uitschakelen. Koude-kathodemeters gebruiken een hoge spanning zonder gloeidraad in een magnetron om een elektronenpad te produceren dat ook lokale gasmoleculen ioniseert en de sensor uitschakelt.

Mijn meter staat bekend als een omgekeerde magnetrontransducermeter, gemaakt door MKS, die de besturingselektronica integreerde in de meterhardware zelf. De output is echter een lineaire spanning die samenvalt met een logaritmische schaal die wordt gebruikt voor het meten van vacuüm. Dit is wat we onze Arduino gaan programmeren om te doen.

Stap 1: Wat is nodig?

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

Als je net als ik bent en probeert om goedkoop een vacuümsysteem te bouwen, zal je genoegen nemen met elke meter die je kunt. Gelukkig bouwen veel meterfabrikanten op deze manier meters, waarbij de meter een spanning afgeeft die in uw eigen meetsysteem kan worden gebruikt. Voor deze instructable heb je echter specifiek nodig:

  • 1 MKS HPS serie 903 AP IMT koude kathode vacuümsensor
  • 1 arduino uno
  • 1 standaard 2x16 LCD-tekendisplay
  • 10k ohm potentiometer
  • vrouwelijke DSUB-9-connector
  • seriële DB-9 kabel
  • spanningsdeler

Stap 2: Codeer

Code!
Code!

Dus ik heb wat ervaring met Arduino, zoals knoeien met de RAMPS-configuratie van mijn 3D-printers, maar ik had geen ervaring met het schrijven van code vanaf het begin, dus dit was mijn eerste echte project. Ik heb veel sensorgidsen bestudeerd en ze aangepast om te begrijpen hoe ik ze met mijn sensor kon gebruiken. In eerste instantie was het idee om met een opzoektabel te gaan, zoals ik andere sensoren heb gezien, maar uiteindelijk gebruikte ik de drijvende-kommamogelijkheid van de arduino om een log/lineaire vergelijking uit te voeren op basis van de conversietabel die door MKS in de handleiding wordt verstrekt.

De onderstaande code stelt A0 eenvoudig in als een drijvende-kommaeenheid voor spanning, die 0-5v is van de spanningsdeler. Vervolgens wordt het terugberekend tot een 10v-schaal en geïnterpoleerd met behulp van de vergelijking P=10^(v-k) waarbij p de druk is, v de spanning op een 10v-schaal en k de eenheid is, in dit geval torr, weergegeven door 11.000. Het berekent dat in drijvende komma en geeft het vervolgens weer op een LCD-scherm in wetenschappelijke notatie met dtostre.

#include #include // initialiseer de bibliotheek met de nummers van de interface-pinnen LiquidCrystal lcd (12, 11, 5, 4, 3, 2);// de setup-routine wordt één keer uitgevoerd wanneer u op reset drukt: void setup() { / / initialiseer seriële communicatie met 9600 bits per seconde: Serial.begin (9600); pinMode (A0, INGANG); // A0 is ingesteld als invoer #define PRESSURE_SENSOR A0; lcd.begin (16, 2); lcd.print("MKS Instruments"); lcd.setCursor(0, 1); lcd.print("IMT Koude Kathode"); vertraging (6500); lcd.wissen(); lcd.print("Overdruk:"); }// de lusroutine wordt voor altijd herhaald: void loop() { float v = analogRead(A0); //v is de ingangsspanning ingesteld als drijvende-kommaeenheid op analogRead v = v * 10.0 / 1024; // v is 0-5v delerspanning gemeten van 0 tot 1024 berekend tot 0v tot 10v schaal float p = pow (10, v - 11.000); //p is de druk in torr, die wordt weergegeven door k in de vergelijking [P=10^(vk)] die is- // -11.000 (K = 11.000 voor Torr, 10.875 voor mbar, 8.000 voor micron, 8.875 voor Pascal) Serial.print(v); verkolingsdrukE[8]; dtostre(p, drukE, 1, 0); // wetenschappelijk formaat met 1 decimalen lcd.setCursor (0, 1); lcd.print(drukE); lcd.print(" Torr"); }

Stap 3: Testen

Image
Image
Testen
Testen

Ik heb de tests uitgevoerd met een externe voeding, in stappen van 0-5v. Vervolgens heb ik de berekeningen handmatig uitgevoerd en ervoor gezorgd dat ze overeenkwamen met de weergegeven waarde. Het lijkt een heel klein beetje af te lezen, maar dit is niet echt belangrijk, omdat het binnen mijn benodigde specificaties valt.

Dit project was een enorm eerste codeproject voor mij, en ik zou het niet hebben afgemaakt als het niet voor de fantastische arduino-gemeenschap was: 3

De talloze handleidingen en sensorprojecten hebben echt geholpen om uit te zoeken hoe je dit moet doen. Er was veel vallen en opstaan, en veel vastlopen. Maar uiteindelijk ben ik erg blij met hoe dit uitkwam, en eerlijk gezegd, de ervaring om code die je voor het eerst hebt gemaakt te zien doen wat het moet doen, is best geweldig.

Aanbevolen: