สารบัญ:

Arduino Inverted Magnetron Transducer การอ่านข้อมูล: 3 ขั้นตอน
Arduino Inverted Magnetron Transducer การอ่านข้อมูล: 3 ขั้นตอน

วีดีโอ: Arduino Inverted Magnetron Transducer การอ่านข้อมูล: 3 ขั้นตอน

วีดีโอ: Arduino Inverted Magnetron Transducer การอ่านข้อมูล: 3 ขั้นตอน
วีดีโอ: 3-Axis Magnetometer Build 2024, พฤศจิกายน
Anonim
Arduino Inverted Magnetron Transducer การอ่านค่า
Arduino Inverted Magnetron Transducer การอ่านค่า

ในฐานะที่เป็นส่วนหนึ่งของโครงการต่อเนื่องของฉันที่นี่ ซึ่งบันทึกความคืบหน้าอย่างต่อเนื่องของการจู่โจมของฉันในโลกของฟิสิกส์อนุภาคแบบ Ultra High Vacuum ได้มาถึงส่วนหนึ่งของโครงการที่ต้องใช้อุปกรณ์อิเล็กทรอนิกส์และการเข้ารหัส

ฉันซื้อเกจวัดสุญญากาศแคโทดเย็นแบบเย็นส่วนเกิน MKS ซีรีส์ 903 IMT โดยไม่มีตัวควบคุมหรือการอ่านข้อมูล สำหรับพื้นหลังบางส่วน ระบบสูญญากาศสูงพิเศษต้องใช้ขั้นตอนเซ็นเซอร์ต่างๆ เพื่อวัดการขาดก๊าซในห้องเพาะเลี้ยงอย่างเหมาะสม เมื่อคุณได้สุญญากาศที่แรงขึ้นและแรงขึ้น การวัดนี้จะยิ่งซับซ้อนมากขึ้นเท่านั้น

ที่สูญญากาศต่ำหรือสูญญากาศหยาบ เกจเทอร์โมคัปเปิลธรรมดาสามารถทำงานได้ แต่เมื่อคุณถอดออกจากห้องเพาะเลี้ยงมากขึ้นเรื่อย ๆ คุณต้องมีสิ่งที่คล้ายกับเกจวัดไอออไนซ์ของก๊าซ สองวิธีที่พบมากที่สุดคือแคโทดร้อนและเกจแคโทดเย็น เกจแคโทดร้อนทำงานเหมือนกับหลอดสุญญากาศหลายๆ หลอด ซึ่งมีไส้หลอดที่ต้มอิเล็กตรอนอิสระออกมา ซึ่งจะถูกเร่งไปสู่กริด โมเลกุลของก๊าซใดๆ ที่ขวางทางจะแตกตัวเป็นไอออนและทำให้เซ็นเซอร์หยุดทำงาน เกจแคโทดแบบเย็นใช้ไฟฟ้าแรงสูงที่ไม่มีไส้หลอดอยู่ภายในแมกนีตรอนเพื่อสร้างเส้นทางอิเล็กตรอนที่แตกตัวเป็นไอออนโมเลกุลของก๊าซในท้องถิ่นและทำให้เซ็นเซอร์หยุดทำงาน

เกจของฉันเรียกว่าเกจแมกนีตรอนทรานสดิวเซอร์แบบกลับด้านซึ่งผลิตโดย MKS ซึ่งรวมอุปกรณ์อิเล็กทรอนิกส์ควบคุมเข้ากับฮาร์ดแวร์เกจ อย่างไรก็ตาม เอาต์พุตเป็นแรงดันไฟฟ้าเชิงเส้นที่ตรงกับสเกลลอการิทึมที่ใช้สำหรับวัดสุญญากาศ นี่คือสิ่งที่เราจะเขียนโปรแกรม Arduino ของเราให้ทำ

ขั้นตอนที่ 1: สิ่งที่จำเป็น?

สิ่งที่จำเป็น?
สิ่งที่จำเป็น?
สิ่งที่จำเป็น?
สิ่งที่จำเป็น?
สิ่งที่จำเป็น?
สิ่งที่จำเป็น?
สิ่งที่จำเป็น?
สิ่งที่จำเป็น?

ถ้าคุณเป็นเหมือนผม การพยายามสร้างระบบสุญญากาศในราคาถูก การได้มาตรวัดใด ๆ ก็ตามที่คุณทำได้ คือสิ่งที่คุณจะต้องชดใช้ โชคดีที่เกจจำนวนมากผลิตเกจในลักษณะนี้ โดยเกจจะส่งสัญญาณแรงดันไฟที่สามารถใช้ในระบบการวัดของคุณเองได้ สำหรับคำแนะนำนี้โดยเฉพาะ คุณจะต้อง:

  • 1 MKS HPS ซีรีส์ 903 AP IMT เซ็นเซอร์สูญญากาศแคโทดเย็น
  • 1 arduino uno
  • 1 มาตรฐาน 2x16 LCD ตัวอักษร
  • โพเทนชิโอมิเตอร์ 10k โอห์ม
  • ขั้วต่อ DSUB-9 ตัวเมีย
  • สายเคเบิล DB-9 อนุกรม
  • ตัวแบ่งแรงดันไฟฟ้า

ขั้นตอนที่ 2: รหัส

รหัส!
รหัส!

ดังนั้น ฉันมีประสบการณ์กับ Arduino บ้าง เช่น ยุ่งกับการกำหนดค่า RAMPS ของเครื่องพิมพ์ 3 มิติ แต่ฉันไม่เคยมีประสบการณ์ในการเขียนโค้ดมาก่อน ดังนั้นนี่จึงเป็นโครงการจริงครั้งแรกของฉัน ฉันศึกษาคู่มือเซ็นเซอร์จำนวนมากและแก้ไขเพื่อให้เข้าใจว่าฉันจะใช้ไกด์เหล่านี้กับเซ็นเซอร์ได้อย่างไร ในตอนแรก ความคิดคือการใช้ตารางค้นหาตามที่ฉันเห็นเซ็นเซอร์อื่นๆ แต่ฉันลงเอยด้วยการใช้ความสามารถจุดลอยตัวของ Arduino เพื่อทำสมการบันทึก/เชิงเส้นตามตารางการแปลงที่ 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); // รูทีนการตั้งค่าทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ต: void setup() { / / เริ่มต้นการสื่อสารแบบอนุกรมที่ 9600 บิตต่อวินาที: Serial.begin(9600); โหมดพิน (A0, INPUT); //A0 ถูกตั้งค่าเป็นอินพุต #define PRESSURE_SENSOR A0; lcd.begin(16, 2); lcd.print("เครื่องมือ MKS"); lcd.setCursor(0, 1); lcd.print ("IMT แคโทดเย็น"); ล่าช้า (6500); lcd.clear(); lcd.print("ความดันเกจ:"); }// รูทีนลูปทำงานซ้ำแล้วซ้ำอีกตลอดไป: void loop() { float v = analogRead (A0); //v คือแรงดันไฟขาเข้าที่กำหนดเป็นหน่วยจุดลอยตัวบนอนาล็อก Read 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); ถ่านดันE[8]; dtostre(p, ความดันE, 1, 0); // รูปแบบทางวิทยาศาสตร์ที่มีทศนิยม 1 ตำแหน่ง lcd.setCursor(0, 1); lcd.print(ความดันE); lcd.print("ทอร์"); }

ขั้นตอนที่ 3: การทดสอบ

Image
Image
การทดสอบ
การทดสอบ

ฉันทำการทดสอบโดยใช้แหล่งจ่ายไฟภายนอก โดยเพิ่มขึ้นทีละ 0-5v จากนั้นฉันก็ทำการคำนวณด้วยตนเองและทำให้แน่ใจว่าพวกเขาเห็นด้วยกับค่าที่แสดง ดูเหมือนว่าจะอ่านออกเล็กน้อยด้วยจำนวนที่น้อยมาก แต่สิ่งนี้ไม่สำคัญจริงๆ เนื่องจากอยู่ในข้อมูลจำเพาะที่ฉันต้องการ

โปรเจ็กต์นี้เป็นโปรเจ็กต์โค้ดแรกที่ยิ่งใหญ่สำหรับฉัน และฉันจะไม่ทำมันให้เสร็จหากไม่ใช่สำหรับชุมชน Arduino ที่ยอดเยี่ยม:3

โครงการแนะนำและเซ็นเซอร์นับไม่ถ้วนช่วยหาวิธีการทำเช่นนี้ มีการลองผิดลองถูกมากมาย และการติดขัดหลายอย่าง แต่ในท้ายที่สุด ฉันมีความสุขมากกับสิ่งที่เกิดขึ้น และประสบการณ์ที่ได้เห็นโค้ดที่คุณสร้างทำในสิ่งที่ควรจะเป็นเป็นครั้งแรกนั้นยอดเยี่ยมมาก

แนะนำ: