Πίνακας περιεχομένων:

Arduino Inverted Magnetron Transducer Readout: 3 βήματα
Arduino Inverted Magnetron Transducer Readout: 3 βήματα

Βίντεο: Arduino Inverted Magnetron Transducer Readout: 3 βήματα

Βίντεο: Arduino Inverted Magnetron Transducer Readout: 3 βήματα
Βίντεο: Amazing arduino project 2024, Νοέμβριος
Anonim
Arduino Inverted Magnetron Transducer Readout
Arduino Inverted Magnetron Transducer Readout

Ως μέρος ενός τρέχοντος έργου μου εδώ, που τεκμηριώνει τη συνεχή πρόοδο της εισβολής μου στον κόσμο της φυσικής σωματιδίων Ultra High Vacuum, ήρθε στο μέρος του έργου που απαιτούσε κάποια ηλεκτρονικά και κωδικοποίηση.

Αγόρασα ένα πλεονάζον μανόμετρο κενής σειράς 903 IMT κρύου καθόδου, χωρίς χειριστήριο ή ανάγνωση. Για κάποιο υπόβαθρο, τα συστήματα εξαιρετικά υψηλού κενού χρειάζονται διάφορα στάδια αισθητήρων για να μετρήσουν σωστά την έλλειψη αερίων σε ένα θάλαμο. Καθώς αποκτάτε ένα ισχυρότερο και ισχυρότερο κενό, τόσο πιο περίπλοκη καταλήγει αυτή η μέτρηση.

Σε χαμηλό κενό ή τραχύ κενό, απλοί μετρητές θερμοστοιχείων μπορούν να κάνουν τη δουλειά, αλλά καθώς αφαιρείτε όλο και περισσότερο από το θάλαμο, χρειάζεστε κάτι παρόμοιο με ένα μετρητή ιονισμού αερίου. Οι δύο πιο συνηθισμένες μέθοδοι είναι οι μετρητές θερμής καθόδου και οι μετρητές ψυχρής καθόδου. Οι μετρητές θερμής καθόδου λειτουργούν όπως πολλοί σωλήνες κενού, στους οποίους έχουν ένα νήμα που βράζει από ελεύθερα ηλεκτρόνια, τα οποία επιταχύνονται προς ένα πλέγμα. Τυχόν μόρια αερίου με τον τρόπο θα ιονιστούν και θα σπάσουν τον αισθητήρα. Οι μετρητές ψυχρής καθόδου χρησιμοποιούν μια υψηλή τάση χωρίς νήμα μέσα σε ένα μαγνήτρον για να παράγουν μια διαδρομή ηλεκτρονίων που επίσης ιονίζει τα τοπικά μόρια αερίου και ενεργοποιεί τον αισθητήρα.

Ο μετρητής μου είναι γνωστός ως ανεστραμμένος μετρητής μετατροπέα magnetron, κατασκευασμένος από την MKS, ο οποίος ενσωμάτωσε τα ηλεκτρονικά ελέγχου στο ίδιο το υλικό του μετρητή. Ωστόσο, η έξοδος είναι μια γραμμική τάση που συμπίπτει με μια λογαριθμική κλίμακα που χρησιμοποιείται για τη μέτρηση του κενού. Αυτό είναι που προγραμματίζουμε να κάνει το arduino μας.

Βήμα 1: Τι χρειάζεται;

Τι χρειάζεται?
Τι χρειάζεται?
Τι χρειάζεται?
Τι χρειάζεται?
Τι χρειάζεται?
Τι χρειάζεται?
Τι χρειάζεται?
Τι χρειάζεται?

Αν είστε σαν εμένα, προσπαθώντας να χτίσετε ένα σύστημα κενού με φθηνό τρόπο, παίρνοντας όποιο μέτρο μπορείτε, είναι αυτό για το οποίο θα συμβιβαστείτε. Ευτυχώς, πολλοί κατασκευαστές μετρητών κατασκευάζουν μετρητές με αυτόν τον τρόπο, όπου ο μετρητής εξάγει μια τάση που μπορεί να χρησιμοποιηθεί στο δικό σας σύστημα μέτρησης. Ωστόσο, για αυτό το διδακτικό, θα χρειαστείτε:

  • 1 αισθητήρας κενού MKS HPS σειράς 903 AP IMT ψυχρής καθόδου
  • 1 arduino uno
  • 1 τυπική οθόνη 2x16 χαρακτήρων LCD
  • Ποτενσιόμετρο 10k ohm
  • θηλυκό βύσμα DSUB-9
  • σειριακό καλώδιο DB-9
  • διαχωριστής τάσης

Βήμα 2: Κωδικός

Κώδικας!
Κώδικας!

Έτσι, έχω κάποια εμπειρία με το arduino, όπως το μπέρδεμα με τις ρυθμίσεις RAMPS των τρισδιάστατων εκτυπωτών μου, αλλά δεν είχα εμπειρία να γράψω κώδικα από την αρχή, οπότε αυτό ήταν το πρώτο μου πραγματικό έργο. Μελέτησα πολλούς οδηγούς αισθητήρων και τους τροποποίησα για να καταλάβω πώς θα μπορούσα να τους χρησιμοποιήσω με τον αισθητήρα μου. Στην αρχή, η ιδέα ήταν να πάω με έναν πίνακα αναζήτησης, όπως έχω δει άλλους αισθητήρες, αλλά κατέληξα να χρησιμοποιώ την ικανότητα του πλωτού σημείου του arduino για να εκτελέσω μια εξίσωση log/linear με βάση τον πίνακα μετατροπών που παρέχεται από το MKS στο εγχειρίδιο.

Ο παρακάτω κώδικας απλώς ορίζει το A0 ως μονάδα κυμαινόμενου σημείου τάσης, το οποίο απέχει 0-5v από το διαχωριστή τάσης. Στη συνέχεια υπολογίζεται πίσω σε κλίμακα 10v και παρεμβάλλεται χρησιμοποιώντας την εξίσωση P = 10^(v-k) όπου p είναι πίεση, v είναι τάση σε κλίμακα 10v και k είναι η μονάδα, στην περίπτωση αυτή torr, που αντιπροσωπεύεται από 11.000. Υπολογίζει ότι σε κυμαινόμενο σημείο, στη συνέχεια το εμφανίζει σε οθόνη LCD με επιστημονική σημείωση χρησιμοποιώντας το dtostre.

#include #include // προετοιμασία της βιβλιοθήκης με τους αριθμούς των ακίδων διεπαφής LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // η ρουτίνα εγκατάστασης εκτελείται μία φορά όταν πατάτε το reset: void setup () {/ / αρχικοποίηση σειριακής επικοινωνίας στα 9600 bit ανά δευτερόλεπτο: Serial.begin (9600); pinMode (A0, INPUT); // A0 έχει οριστεί ως είσοδος #define PRESSURE_SENSOR A0; lcd.αρχή (16, 2); lcd.print ("MKS Instruments"); lcd.setCursor (0, 1); lcd.print ("IMT Cold Cathode"); καθυστέρηση (6500) lcd.clear (); lcd.print ("Gauge Pressure:"); } // η ρουτίνα βρόχου τρέχει ξανά και ξανά για πάντα: void loop () {float v = analogRead (A0); // v είναι η τάση εισόδου που έχει οριστεί ως μονάδα κυμαινόμενου σημείου στο analogRead v = v * 10.0 /1024; // v είναι τάση διαιρέτη 0-5v μετρημένη από 0 έως 1024 υπολογιζόμενη σε κλίμακα 0v έως 10v float p = pow (10, v - 11.000). // p είναι πίεση σε torr, η οποία παριστάνεται με k στην εξίσωση [P = 10^(vk)] που είναι- // -11.000 (K = 11.000 για Torr, 10.875 για mbar, 8.000 για μικρά, 8.875 για Pascal) Serial.print (v)? πίεση καρβουνιούΕ [8]; dtostre (p, πίεσηΕ, 1, 0); // επιστημονική μορφή με 1 δεκαδικά ψηφία lcd.setCursor (0, 1); lcd.print (πίεσηE); lcd.print ("Torr"); }

Βήμα 3: Δοκιμή

Image
Image
Δοκιμές
Δοκιμές

Πραγματοποίησα τις δοκιμές χρησιμοποιώντας εξωτερικό τροφοδοτικό, σε προσαυξήσεις από 0-5v. Στη συνέχεια, έκανα τους υπολογισμούς χειροκίνητα και βεβαιώθηκα ότι συμφωνούσαν με την εμφανιζόμενη τιμή. Φαίνεται να διαβάζεται ελαφρώς κατά ένα πολύ μικρό ποσό, ωστόσο αυτό δεν είναι πραγματικά σημαντικό, καθώς είναι εντός των απαιτούμενων προδιαγραφών μου.

Αυτό το έργο ήταν ένα τεράστιο πρώτο έργο κώδικα για μένα και δεν θα το είχα τελειώσει αν δεν υπήρχε η φανταστική κοινότητα arduino: 3

Οι αμέτρητοι οδηγοί και τα προγράμματα αισθητήρων βοήθησαν πραγματικά στο να καταλάβουμε πώς να το κάνουμε αυτό. Υπήρχε πολλή δοκιμή και λάθος και πολύ κόλλημα. Αλλά τελικά, είμαι εξαιρετικά ευχαριστημένος με το πώς προέκυψε αυτό, και ειλικρινά, η εμπειρία να βλέπεις τον κώδικα που έκανες να κάνει αυτό που υποτίθεται για πρώτη φορά είναι πολύ φοβερή.

Συνιστάται: