Cuprins:
Video: Citirea traductorului cu magnetron inversat Arduino: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Ca parte a unui proiect în desfășurare al meu aici, care documentează progresul continuu al incursiunii mele în lumea fizicii particulelor Ultra High Vacuum, a ajuns la partea proiectului care a necesitat niște electronice și codificare.
Am cumpărat un surplus MKS seria 903 IMT cu catod rece vid, fără controler sau citire. În anumite condiții, sistemele cu vid foarte ridicat au nevoie de diferite trepte de senzori pentru a măsura în mod corespunzător lipsa gazelor dintr-o cameră. Pe măsură ce obțineți un vid din ce în ce mai puternic, cu atât mai complicată se termină această măsurare.
La vid scăzut sau vid brut, aparatele simple de termocuplu pot face treaba, dar pe măsură ce scoateți din ce în ce mai mult din cameră, aveți nevoie de ceva asemănător cu un indicator de ionizare a gazelor. Cele mai frecvente două metode sunt aparatele cu catod fierbinte și catodul rece. Indicatoarele cu catod fierbinte funcționează ca multe tuburi de vid, în care au un filament care fierbe electroni liberi, care sunt accelerați către o rețea. Orice moleculă de gaz din cale va ioniza și declanșa senzorul. Indicatoarele cu catod rece folosesc o tensiune înaltă fără filament în interiorul unui magnetron pentru a produce o cale electronică care ionizează și moleculele de gaz locale și declanșează senzorul.
Ecartamentul meu este cunoscut ca un ecartament cu traductor cu magnetron inversat, realizat de MKS, care a integrat electronica de comandă cu hardware-ul ecartamentului în sine. Cu toate acestea, ieșirea este o tensiune liniară care coincide cu o scară logaritmică utilizată pentru măsurarea vidului. Aceasta este ceea ce vom programa arduino-ul nostru pentru a face.
Pasul 1: Ce este necesar?
Dacă sunteți ca mine, încercarea de a construi un sistem de vid la prețuri ieftine, obținerea oricărui ecartament pe care îl puteți, este ceea ce vă veți mulțumi. Din fericire, mulți producători de calibre construiesc calibre în acest fel, unde ecartamentul produce o tensiune care poate fi utilizată în propriul dvs. sistem de măsurare. Cu toate acestea, pentru acest instructiv, veți avea nevoie de:
- 1 MKS HPS seria 903 AP IMT senzor de vid cu catod rece
- 1 arduino uno
- 1 afișaj de caractere LCD 2x16 standard
- Potențiometru de 10k ohm
- conector DSUB-9 feminin
- cablu serial DB-9
- divizor de tensiune
Pasul 2: Cod
Deci, am o oarecare experiență cu arduino, cum ar fi să mă încurc cu configurația RAMPS a imprimantelor mele 3D, dar nu am avut experiență în scrierea codului de la bază, așa că acesta a fost primul meu proiect real. Am studiat o mulțime de ghiduri de senzori și le-am modificat pentru a înțelege cum le-aș putea folosi cu senzorul meu. La început, ideea a fost să merg cu un tabel de căutare, așa cum am văzut alți senzori, dar am ajuns să folosesc capacitatea virgulă mobilă a arduino pentru a efectua o ecuație jurnal / liniar bazată pe tabelul de conversie furnizat de MKS în manual.
Codul de mai jos setează pur și simplu A0 ca unitate cu virgulă mobilă pentru tensiune, care este 0-5v de la divizorul de tensiune. Apoi este calculat înapoi la o scară de 10v și interpolat folosind ecuația P = 10 ^ (v-k) unde p este presiune, v este tensiune pe o scară de 10v și k este unitatea, în acest caz torr, reprezentată de 11.000. Calculează acest lucru în virgulă mobilă, apoi îl afișează pe un ecran LCD în notație științifică folosind dtostre.
#include #include // inițializează biblioteca cu numerele pinilor de interfață LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // rutina de instalare rulează o dată când apăsați reset: void setup () {/ / inițializați comunicația serială la 9600 biți pe secundă: Serial.begin (9600); pinMode (A0, INPUT); // A0 este setat ca intrare #define PRESSURE_SENSOR A0; lcd.inceput (16, 2); lcd.print („MKS Instruments”); lcd.setCursor (0, 1); lcd.print ("IMT Cold Cathode"); întârziere (6500); lcd.clear (); lcd.print ("Presiunea de măsurare:"); } // rutina de buclă rulează mereu: void loop () {float v = analogRead (A0); // v este tensiunea de intrare setată ca unitate în virgulă mobilă pe analogRead v = v * 10.0 / 1024; // v este 0-5v tensiune divizor măsurată de la 0 la 1024 calculată la 0v la 10v plutitor la scară p = pow (10, v - 11.000); // p este presiunea în torr, care este reprezentată de k în ecuația [P = 10 ^ (vk)] care este- // -11.000 (K = 11.000 pentru Torr, 10.875 pentru mbar, 8.000 pentru microni, 8.875 pentru Pascal) Serial.print (v); presiunea char E [8]; dtostre (p, presiune E, 1, 0); // format științific cu 1 zecimal lcd.setCursor (0, 1); imprimare lcd (presiune E); lcd.print ("Torr"); }
Pasul 3: Testare
Am efectuat testele folosind o sursă de alimentare externă, în trepte de 0-5v. Apoi am efectuat calculele manual și m-am asigurat că sunt de acord cu valoarea afișată. Se pare că se citește ușor cu o cantitate foarte mică, totuși acest lucru nu este cu adevărat important, deoarece se încadrează în specificațiile mele necesare.
Acest proiect a fost pentru mine un proiect uriaș de prim cod și nu l-aș fi terminat dacă nu ar fi fost pentru fantastica comunitate arduino: 3
Nenumăratele proiecte de ghiduri și senzori au ajutat cu adevărat la aflarea modului de a face acest lucru. Au existat multe încercări și erori și multe blocări. Dar, în cele din urmă, sunt extrem de mulțumit de modul în care a ieșit acest lucru și, sincer, experiența de a vedea codul pe care l-ați făcut face ceea ce se presupune că este pentru prima dată este destul de minunat.
Recomandat:
Citirea și graficarea datelor senzorului de lumină și temperatură cu Raspberry Pi: 5 pași
Citirea și graficarea datelor senzorului de lumină și temperatură cu Raspberry Pi: În acest instructiv veți învăța cum să citiți un senzor de lumină și temperatură cu raspberry pi și convertorul analogic digital ADS1115 și să-l graficați folosind matplotlib. Să începem cu materialele necesare
Citirea umidității cu senzor Ethernet: 3 pași
Citirea umidității cu senzor Ethernet: Scopul proiectului a fost să poată citi citirile de umiditate și temperatură prin rețeaua ethernet, astfel încât rezultatele să poată fi utilizate pentru automatizarea casei (Home Assistant etc.). Senzorul T9602 a avut cel mai bun factor de formă, cu performanță la ar
Citirea temperaturii folosind senzorul de temperatură LM35 cu Arduino Uno: 4 pași
Citirea temperaturii folosind senzorul de temperatură LM35 cu Arduino Uno: Bună băieți, în acest instructables vom învăța cum să utilizați LM35 cu Arduino. Lm35 este un senzor de temperatură care poate citi valori de temperatură de la -55 ° C la 150 ° C. Este un dispozitiv cu 3 terminale care furnizează tensiune analogică proporțională cu temperatura. Bună g
Citirea și scrierea datelor pe EEPROM externă folosind Arduino: 5 pași
Citirea și scrierea de date către EEPROM externă Utilizând Arduino: EEPROM înseamnă Memorie numai în citire programabilă ștergibil electric. EEPROM este foarte importantă și utilă, deoarece este o formă de memorie nevolatilă. Aceasta înseamnă că, chiar și când placa este oprită, cipul EEPROM păstrează în continuare programul care
Pendul inversat: teoria și dinamica controlului: 17 pași (cu imagini)
Pendul inversat: Teoria și dinamica controlului: Pendulul inversat este o problemă clasică în dinamică și teoria controlului, care este elaborată în general în cursurile de fizică sau matematică din liceu și de licență. Fiind un entuziast al matematicii și științei, am decis să încerc și să pun în aplicare conceptele