Inhaltsverzeichnis:

Arduino Inverted Magnetron Transducer Auslesen - Gunook
Arduino Inverted Magnetron Transducer Auslesen - Gunook

Video: Arduino Inverted Magnetron Transducer Auslesen - Gunook

Video: Arduino Inverted Magnetron Transducer Auslesen - Gunook
Video: Timer Interrupt ISR + Examples | Arduino101 | Set Registers & Modes 2024, November
Anonim
Arduino invertierter Magnetron-Wandler-Anzeige
Arduino invertierter Magnetron-Wandler-Anzeige

Als Teil eines laufenden Projekts von mir hier, das den fortlaufenden Fortschritt meines Streifzuges in die Welt der Ultrahochvakuum-Teilchenphysik dokumentierte, kam es zu dem Teil des Projekts, der etwas Elektronik und Codierung erforderte.

Ich habe ein überschüssiges Kaltkathoden-Vakuummeter MKS Serie 903 IMT ohne Controller oder Anzeige gekauft. Aus irgendeinem Hintergrund benötigen Ultrahochvakuumsysteme verschiedene Sensorstufen, um den Gasmangel in einer Kammer richtig zu messen. Je stärker das Vakuum wird, desto komplizierter wird diese Messung.

Bei niedrigem Vakuum oder grobem Vakuum können einfache Thermoelement-Messgeräte die Arbeit erledigen, aber wenn Sie immer mehr aus der Kammer entfernen, benötigen Sie so etwas wie ein Gasionisationsmessgerät. Die beiden gebräuchlichsten Methoden sind Heißkathoden- und Kaltkathoden-Messgeräte. Heißkathodenmessgeräte funktionieren wie viele Vakuumröhren, in denen sie einen Faden haben, der freie Elektronen abkocht, die in Richtung eines Gitters beschleunigt werden. Alle Gasmoleküle im Weg ionisieren und lösen den Sensor aus. Kaltkathodenmessgeräte verwenden eine Hochspannung ohne Filament in einem Magnetron, um einen Elektronenpfad zu erzeugen, der auch lokale Gasmoleküle ionisiert und den Sensor auslöst.

Mein Messgerät ist als invertiertes Magnetron-Messgerät von MKS bekannt, das die Steuerelektronik in die Messgerätehardware selbst integriert. Der Ausgang ist jedoch eine lineare Spannung, die mit einer logarithmischen Skala übereinstimmt, die zum Messen des Vakuums verwendet wird. Dafür werden wir unser Arduino programmieren.

Schritt 1: Was wird benötigt?

Was wird benötigt?
Was wird benötigt?
Was wird benötigt?
Was wird benötigt?
Was wird benötigt?
Was wird benötigt?
Was wird benötigt?
Was wird benötigt?

Wenn Sie wie ich versuchen, ein Vakuumsystem billig zu bauen, werden Sie sich mit jedem Messgerät zufrieden geben, das Sie können. Glücklicherweise bauen viele Messgerätehersteller Messgeräte auf diese Weise, bei denen das Messgerät eine Spannung ausgibt, die in Ihrem eigenen Messsystem verwendet werden kann. Für dieses anweisbare speziell benötigen Sie jedoch:

  • 1 MKS HPS Serie 903 AP IMT Kaltkathoden-Vakuumsensor
  • 1 arduino uno
  • 1 Standard-LCD-Display mit 2x16 Zeichen
  • 10k Ohm Potentiometer
  • weiblicher DSUB-9-Anschluss
  • serielles DB-9-Kabel
  • Spannungsteiler

Schritt 2: Code

Code!
Code!

Also, ich habe einige Erfahrung mit Arduino, wie das Herumspielen mit der RAMPS-Konfiguration meiner 3D-Drucker, aber ich hatte keine Erfahrung mit dem Schreiben von Code von Grund auf, also war dies mein erstes echtes Projekt. Ich habe viele Sensoranleitungen studiert und sie modifiziert, um zu verstehen, wie ich sie mit meinem Sensor verwenden kann. Zuerst war die Idee, eine Nachschlagetabelle zu verwenden, da ich andere Sensoren gesehen habe, aber am Ende habe ich die Gleitkommafähigkeit des Arduino verwendet, um eine logarithmische / lineare Gleichung basierend auf der von MKS im Handbuch bereitgestellten Umrechnungstabelle durchzuführen.

Der folgende Code legt einfach A0 als Gleitkommaeinheit für die Spannung fest, die 0-5 V vom Spannungsteiler beträgt. Dann wird es auf eine 10-V-Skala zurückgerechnet und unter Verwendung der Gleichung P=10^(v-k) interpoliert, wobei p der Druck ist, v die Spannung auf einer 10-V-Skala und k die Einheit ist, in diesem Fall Torr, dargestellt durch 11.000. Es berechnet dies in Gleitkommazahlen und zeigt es dann in wissenschaftlicher Notation mit dtostre auf einem LCD-Bildschirm an.

#include #include // Initialisieren der Bibliothek mit den Nummern der Schnittstellenpins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // die Setup-Routine wird einmal ausgeführt, wenn Sie Reset drücken: void setup() { / / serielle Kommunikation mit 9600 Bits pro Sekunde initialisieren: Serial.begin(9600); PinMode (A0, EINGANG); //A0 wird als Eingang gesetzt #define PRESSURE_SENSOR A0; lcd.begin(16, 2); lcd.print ("MKS-Instrumente"); lcd.setCursor(0, 1); lcd.print("IMT-Kaltkathode"); Verzögerung (6500); lcd.clear(); lcd.print ("Manometerdruck:"); } // die Schleifenroutine läuft immer und immer wieder: void loop() { float v = analogRead(A0); // v ist die Eingangsspannung, die auf analogRead als Gleitkommaeinheit eingestellt ist v = v * 10.0 / 1024; // v ist 0-5 V Teilerspannung, gemessen von 0 bis 1024, berechnet auf 0 V bis 10 V Skala float p = pow (10, v - 11.000); //p ist der Druck in Torr, der durch k in der Gleichung [P=10^(vk)] dargestellt wird, die- // -11.000 (K = 11.000 für Torr, 10.875 für mbar, 8.000 für Mikrometer, 8.875 für Pascal) Serial.print (v); Verkohlungsdruck E[8]; dtostre(p, DruckE, 1, 0); // Wissenschaftliches Format mit 1 Nachkommastelle lcd.setCursor(0, 1); lcd.print (DruckE); lcd.print("Torr"); }

Schritt 3: Testen

Image
Image
Testen
Testen

Ich habe die Tests mit einem externen Netzteil in Schritten von 0-5 V durchgeführt. Ich habe dann die Berechnungen manuell durchgeführt und sichergestellt, dass sie mit dem angezeigten Wert übereinstimmen. Es scheint sich um einen sehr kleinen Betrag leicht abzulesen, dies ist jedoch nicht wirklich wichtig, da es innerhalb meiner benötigten Spezifikation liegt.

Dieses Projekt war ein riesiges erstes Code-Projekt für mich, und ich hätte es nicht beendet, wenn es nicht die fantastische Arduino-Community gegeben hätte:3

Die unzähligen Anleitungen und Sensorprojekte haben dabei sehr geholfen, herauszufinden, wie das geht. Es gab eine Menge von Versuch und Irrtum und eine Menge Steckenbleiben. Aber am Ende bin ich sehr glücklich darüber, wie das herausgekommen ist, und ehrlich gesagt, die Erfahrung, dass Code, den Sie erstellt haben, zum ersten Mal tut, was er soll, ist ziemlich großartig.

Empfohlen: