Mundarija:

Arduino teskari magnitronli transduser o'qilishi: 3 qadam
Arduino teskari magnitronli transduser o'qilishi: 3 qadam

Video: Arduino teskari magnitronli transduser o'qilishi: 3 qadam

Video: Arduino teskari magnitronli transduser o'qilishi: 3 qadam
Video: VL53L1X Лазерный дистанционный датчик времени полета 400 см 2024, Dekabr
Anonim
Arduino teskari magnitronli transduserni o'qish
Arduino teskari magnitronli transduserni o'qish

Ultra yuqori vakuumli zarralar fizikasi olamiga qilgan qadamimni hujjatlashtirgan holda, bu erda davom etayotgan loyihamning bir qismi sifatida elektronika va kodlashni talab qiladigan loyiha qismi keldi.

Men ortiqcha MKS seriyali 903 IMT sovuq katotli vakuum o'lchagichini sotib oldim. Ba'zi bir fonda, ultra yuqori vakuumli tizimlar kameradagi gazlar etishmasligini to'g'ri o'lchash uchun sensorning turli bosqichlariga muhtoj. Siz kuchliroq va kuchliroq vakuum olsangiz, bu o'lchov shunchalik murakkab bo'ladi.

Kam vakuumda yoki qo'pol vakuumda oddiy termojuft o'lchagichlari bu ishni bajarishi mumkin, lekin siz kameradan tobora ko'proq olib tashlaganingizda, sizga gaz ionlash o'lchagichiga o'xshash narsa kerak bo'ladi. Eng keng tarqalgan ikkita usul - issiq katod va sovuq katod o'lchagichlari. Issiq katod o'lchagichlari ko'plab vakuumli naychalar kabi ishlaydi, ularda erkin elektronlarni qaynatadigan filamenti bor, ular tarmoqqa tezlashadi. Bu yo'ldagi har qanday gaz molekulalari ionlashtiriladi va sensorni ishdan chiqaradi. Sovuq katodli o'lchagichlar magnitron ichida filamenti bo'lmagan yuqori kuchlanishni ishlatib, elektron yo'lini ishlab chiqaradi, u ham mahalliy gaz molekulalarini ionlashtiradi va sensorni ag'daradi.

Mening o'lchagichim MKS tomonidan ishlab chiqarilgan teskari magnitronli transduser o'lchagichi sifatida tanilgan, u boshqaruv elektronikasini o'lchash moslamasining o'zi bilan birlashtirgan. Biroq, chiqish - bu vakuumni o'lchash uchun ishlatiladigan logarifmik shkalaga to'g'ri keladigan chiziqli kuchlanish. Bu biz o'z arduino dasturlash uchun nima bo'ladi.

1 -qadam: nima kerak?

Nima kerak?
Nima kerak?
Nima kerak?
Nima kerak?
Nima kerak?
Nima kerak?
Nima kerak?
Nima kerak?

Agar siz menga o'xshab, vakuum tizimini arzon narxda qurmoqchi bo'lsangiz, qo'lingizdan kelgancha o'lchagichni qo'lga kiritasiz. Yaxshiyamki, ko'p o'lchagich ishlab chiqaruvchilari o'lchagichlarni shu tarzda quradilar, bu erda o'lchagich o'z o'lchov tizimingizda ishlatilishi mumkin bo'lgan kuchlanish chiqaradi. Ayniqsa, ko'rsatma berish uchun sizga kerak bo'ladi:

  • 1 MKS HPS seriyali 903 AP IMT sovuq katodli vakuum sensori
  • 1 arduino bilan
  • 1 ta standart 2x16 o'lchamli LCD displey
  • 10k ohmlik potansiyometr
  • ayol DSUB-9 ulagichi
  • ketma-ket DB-9 kabeli
  • kuchlanish bo'luvchi

2 -qadam: kod

Kod!
Kod!

Shunday qilib, men 3D printerlarimning RAMPS konfiguratsiyasini buzish kabi arduino bilan tajribaga egaman, lekin kodni boshidan yozish tajribam yo'q edi, shuning uchun bu mening birinchi haqiqiy loyiham edi. Men sensorli qo'llanmalarni o'rganib chiqdim va ularni sensorim bilan qanday ishlatishni tushunish uchun o'zgartirdim. Avvaliga, men boshqa sensorlarni ko'rganimdek, qidiruv jadvali bilan ishlashni xohlardim, lekin men arduino -ning suzuvchi nuqta qobiliyatidan foydalanib, qo'llanmada MKS tomonidan berilgan konvertatsiya jadvaliga asoslangan log/chiziqli tenglamani bajarishni tugatdim.

Quyidagi kod A0ni kuchlanish bo'linmasidan 0-5v gacha bo'lgan kuchlanish uchun suzuvchi nuqta birligi sifatida o'rnatadi. Keyin u 10v shkalaga qadar hisoblab chiqiladi va P = 10^(v-k) tenglama yordamida interpolatsiyalanadi, bu erda p-bosim, v-10v shkaladagi kuchlanish va k-birlik, bu holda 11000 bilan ko'rsatilgan torr. U hisoblab chiqadiki, uni suzuvchi nuqtada, keyin dtostre yordamida ilmiy belgida LCD displeyda ko'rsatadi.

#include #include // kutubxonani LiquidCrystal lcd (12, 11, 5, 4, 3, 2) interfeysi pinlari raqamlari bilan ishga tushiring; // reset tartibi bosilganda sozlash tartibi bir marta ishlaydi: void setup () {/ / sekundiga 9600 bit tezlikda ketma -ket aloqani ishga tushirish: Serial.begin (9600); pinMode (A0, INPUT); // A0 #define PRESSURE_SENSOR A0 kirish sifatida o'rnatiladi; lcd.begin (16, 2); lcd.print ("MKS asboblari"); lcd.setCursor (0, 1); lcd.print ("IMT sovuq katod"); kechikish (6500); lcd.clear (); lcd.print ("Ko'rsatkich bosimi:"); } // pastadir tartibi abadiy qayta -qayta ishlaydi: void loop () {float v = analogRead (A0); // v - analogReadda suzuvchi nuqta birligi sifatida o'rnatilgan kirish voltaji v = v * 10.0 /1024; // v - 0 dan 1024 gacha o'lchangan 0-5v bo'luvchi kuchlanish, 0v dan 10v gacha o'lchovli float p = pow (10, v - 11.000); // p - torr bosimi, u [P = 10^(vk)] tenglamasida k bilan ifodalanadi - // -11.000 (Torr uchun K = 11.000, mbar uchun 10.875, mikron uchun 8.000, Paskal uchun 8.875)) Ketma -ket chop etish (v); char bosimiE [8]; dtostre (p, bosimE, 1, 0); // 1 kasrli kasrli ilmiy format lcd.setCursor (0, 1); lcd.print (bosim E); lcd.print ("Torr"); }

3 -qadam: Sinov

Image
Image
Sinov
Sinov

Men testlarni tashqi quvvat manbai yordamida, 0-5v gacha bo'lgan bosqichlarda o'tkazdim. Keyin men hisoblarni qo'lda qildim va ular ko'rsatilgan qiymatga rozi ekanliklariga ishonch hosil qildim. Bu juda oz miqdorda o'qilganga o'xshaydi, lekin bu juda muhim emas, chunki bu mening kerakli spetsifikatsiyamda.

Bu loyiha men uchun ulkan birinchi kodli loyiha edi va agar fantastik arduino hamjamiyati bo'lmaganida men uni tugatmagan bo'lardim: 3

Son -sanoqsiz qo'llanmalar va sensorli loyihalar buni qanday qilish kerakligini aniqlashga yordam berdi. Ko'p sinov va xato bor edi va ko'p qotib qolishdi. Lekin oxir -oqibat, men bu qanday paydo bo'lganidan juda xursandman va rostini aytsam, siz yaratgan kodni birinchi marta bajarilishi kerak bo'lgan tajriba juda ajoyib.

Tavsiya: