Dieses Projekt basiert auf dem von Dr. Oliver Happel für AATiS (Arbeitskreis Amateurfunk und Telekommunikation in der Schule) entwickelten Bausatz AS656 „Gaschromatograph“ (https://www.aatis.de/content/bausatz/AS656_Gaschromatograph). Dankenswerterweise hat mir Dr. Happel eine Trennsäule und andere Teile zukommen lassen, sodass für den finalen Aufbau nicht mehr allzuviel zu machen war. Da der AATiS-Bausatz AS656 leider vergriffen ist, müssen Interessenten zukünftig die Teile selbst besorgen oder herstellen. Günstige Trennsäulen können zum Beispiel hier beim AK Kappenberg bezogen werden: https://www.teachershelper.de/bestellseite
Zunächst zum Aufbau: Der Gaschromatograph besteht aus
- einer kleinen Luftpumpe
- einen Injektor (Messing T-Stück, Silikonseptum)
- einer Trennsäule bestehend aus Kieselgur und Paraffinöl
- einem Wärmeleitfähigkeitsdetektor (6V/40mA Glühbirne mit zerstoßenem Glaskörper)
- einer Wheatstonebrücke
- einem HX711 Analog-Digital-Wandler (ADC)
- einem Arduino Nano
- eine 1 mL-Spritze
- Gasproben, z.B. Feuerzeuggas
Hier eine kleine Übersicht der benötigten Teile:
Für den Wärmeleitfähigkeitsdetektor benötigt man eine 6V/40mA Miniaturglühbirne, dessen Glasgehäuse zerstoßen werden muss. Sie wird dann später in einer Wheatstonebrücke mit 2.5V Brückenspannung betrieben. Dabei fallen rund 1.25 V an ihr ab. Bei einer Spannung von 1.4V floß durch sie ein Strom von 17 mA, was einem Widerstand von 82 Ω entspricht. Wird die Glühbirne an Luft betrieben, so wird sie natürlich deutlich besser als im Vakuum der Glühbirne gekühlt und der Widerstand reduziert sich.
Der Wärmeleitfähigkeitsdetektor besitzt ein Gehäuse aus Plexiglas mit einer separaten Bohrung, um das Glasgehäuse behutsam mit einer Schraube zerstören zu können.
Als Pumpe verwende ich eine kleine 12V-Luftpumpe, welche mit nur 5V betrieben wird.
Der Injektor besteht aus einem Messing T-Stück. Als Septum verwende ich kleine Silikonzylinder, welche zusammen mit einer Beilagscheibe von der Überwurfmutter des T-Stücks fixiert werden. Mit einer 1 mL-Spritze injiziert man dann das zu untersuchende Gas. Der Injektor wird mittels Silikonschläuchen mit der Pumpe bzw. der Trennsäule verbunden.
Nun zur Elektronik. Die Glühbirne des Wärmeleitfähigkeitsdetektors ist Teil einer simplen Wheatstonebrücke. Diese wird mit ca. 2.5 V betrieben, wobei diese Spannung mittels LM317 aus der 5 V-Versorgungsspannung generiert wird. Mit einem 500 Ω-Spindeltrimmer kann die Spannung zwischen 1.25 V und 2.5 V eingestellt werden. Abgeglichen wird die Wheatstonebrücke mit einem 200 Ω-Spindeltrimmer. Wie wir oben gesehen haben, beträgt der Widerstand der Glühbirne bei einer Spannung von 1.4 V rund 82 Ω. Bei ca. halber Versorgungsspannung, also 1.25 V und geöffneten Glaskörper wird der Widerstand der Glühbirne etwas darunter liegen. Deshalb wähle ich für den Widerstand im Zweig der Glühbirne einen Wert von 82 Ω. Dadurch werden dann bei abgeglichener Brücke ca. 1V an der Glühbirne abfallen.
Die Ausgangsspannung der Wheatstonebrücke wird dann zum HX711, einem 24bit-Analog-Digital-Wandler weitergeleitet. Diesen erhält man für rund 3 Euro auf ebay oder aliexpress. Gestartet wird die Messung mit einem Taster. Die vom Arduino eingelesenen Werte werden dann mittels Serialplotter grafisch dargestellt.
Hier sieht man schön die zerbrochene Glühbirne und dann diese im Plexiglasblock verbaut:
Heute habe ich die Elektronik einmal getestet und sie scheint sehr gut zu funktionieren. Blase ich aus ca. 30 cm Entfernung auf den Plexiglasblock mit dem Wärmeleitfähigkeitsdetektor, so bekomme ich einen vollen Ausschlag im Graphen (siehe unten). Jetzt kommt nur noch der Step-down-converter für die Pumpe auf die Lochplatine, dann kann ich eigentlich den Gaschromatographen mit Feuerzeuggas testen. 1 mL-Spritzen habe ich noch von meinem Versuch zur Bestimmung der Atomgröße übrig.
Das Arduino-Programm ist mehr als simpel. Einfach nur auf die Betätigung des Tasters warten und dann 500 Messungen vornehmen und mittels Serial-Plotter graphisch anzeigen lassen. Dabei wurde die Verzögerung mittels delay(…) so eingestellt, dass ich auf 1 Messung pro Sekunde komme. So kann ich auf der Abszisse gleich direkt die Sekunden ablesen.
Hier der finale Aufbau der gesamten Elektronik: Links der Step-down-converter für die Luftpumpe, oben die Wheatstonebrücke, darunter der HX711 und rechts dann der Arduino und der Wärmeleitfähigkeitssensor.
So, die ersten Testläufe mit Feuerzeuggas (Butan) sind im Kasten und ich konnte nach anfänglichen Schwierigkeiten erste Peaks aufnehmen. Die Spannungsquelle für die Wheatstonebrücke und die Pumpe hat nun keine Verbindung zum Arduino, welcher über USB mit Spannung versorgt wird. Dadurch erhalte ich eine flachere Kurve ohne großen Drift. Die Pumpe läuft mit 5V und der gain des HX711 ist auf 128 eingestellt. Die beiden Butankomponenten i-Butan und n-Butan sind schön aufgelöst 🙂 Für den unten dargestellten Verlauf habe ich das Feuerzeuggas aber zunächst über den Ansaugstutzen der Luftpumpe zugeführt und nicht mittels Spritze durchs Septum.
Hier nun ein „Spektrum“ bei Injektion des Feuerzeuggases mit der Spritze in das Septum, wie es sich eigentlich gehört:
Die beiden Peaks stammen aller Wahrscheinlichkeit nach vom i- und n-Butan, wobei ich mit der Ausbildung des zweiten Peaks (n-Butan) noch nicht ganz zufrieden bin…
Zum Abschluss der finale Aufbau meines Gaschromatographen:
Hier noch das Youtube-Video:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#include <Wire.h> #include <HX711.h> HX711 scale(A1, A0); long value; // vom HX711 gelieferter Wert const int buttonPin = 2; // the number of the pushbutton pin int i; // ===================== // ======= SETUP ======= // ===================== void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT); scale.set_gain(128); // A-Kanal: gain = 64 oder 128; B-Kanal: fix 32 } // ============================ // ======= HAUPTSCHLEIFE ====== // ============================ void loop() { while(digitalRead(buttonPin)) { // waiting for start-button } for(i = 1;i <= 500; i++) { value = scale.read_average(10); // bei 10 Messungen delay = 258 ms für 100 Messungen in 100 sek // bei 10 Messungen delay = 400 ms für 100 Messungen in 2 min // bei 10 Messungen delay = 1000 ms für 100 Messungen in 3 min // bei 10 Messungen delay = 2200 ms für 100 Messungen in 5 min Serial.println(value); delay(2200); } } |