Съдържание:

Отчитане на преобразувателя на магнетронния преобразувател на Arduino: 3 стъпки
Отчитане на преобразувателя на магнетронния преобразувател на Arduino: 3 стъпки

Видео: Отчитане на преобразувателя на магнетронния преобразувател на Arduino: 3 стъпки

Видео: Отчитане на преобразувателя на магнетронния преобразувател на Arduino: 3 стъпки
Видео: #11 LM35 and 4-20mA Industrial Temperature Sensor to Outseal Arduino PLC 2024, Ноември
Anonim
Отчитане на инвертирания магнетронен преобразувател на Arduino
Отчитане на инвертирания магнетронен преобразувател на Arduino

Като част от един мой текущ проект тук, документиращ текущия напредък на набега ми в света на физиката на ултрависоките вакуумни частици, се стигна до частта от проекта, която изискваше малко електроника и кодиране.

Купих излишък от вакуумметър със студен катод 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 на моите 3D принтери, но нямах опит с писането на код от самото начало, така че това беше първият ми истински проект. Проучих много водачи за сензори и ги модифицирах, за да разбера как мога да ги използвам с моя сензор. Първоначално идеята беше да отида с таблица за търсене, както съм виждал други сензори, но в крайна сметка използвах възможността на 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); // настройката се изпълнява веднъж, когато натиснете reset: void setup () {/ / инициализира серийна комуникация при 9600 бита в секунда: Serial.begin (9600); pinMode (A0, INPUT); // A0 е зададен като вход #define PRESSURE_SENSOR A0; lcd.begin (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 поплавък по скалата 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); char наляганеE [8]; dtostre (p, наляганеE, 1, 0); // научен формат с 1 десетични знаци lcd.setCursor (0, 1); lcd.принт (наляганеE); lcd.print ("Torr"); }

Стъпка 3: Тестване

Image
Image
Тестване
Тестване

Извърших тестовете с помощта на външно захранване, на стъпки от 0-5v. След това извърших изчисленията ръчно и се уверих, че са съгласни с показаната стойност. Изглежда, че се чете леко с много малко количество, но това не е наистина важно, тъй като е в рамките на необходимите ми спецификации.

Този проект беше огромен първи код проект за мен и нямаше да го завърша, ако не беше фантастичната общност на arduino: 3

Безбройните ръководства и проекти за сензори наистина помогнаха да разберете как да направите това. Имаше много опити и грешки и много забиване. Но в крайна сметка съм изключително доволен от това как се случи това и честно казано, опитът да видите кода, който сте направили да прави това, което се очаква за първи път, е доста страхотен.

Препоръчано: