Spisu treści:
Wideo: Odczyt przetwornika z odwróconym magnetronem Arduino: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
W ramach mojego projektu, dokumentującego nieustanny postęp mojej wyprawy w świat fizyki cząstek ultrawysokiej próżni, doszedłem do części projektu, która wymagała trochę elektroniki i kodowania.
Kupiłem nadmiarowy wakuometr MKS serii 903 IMT z zimną katodą, bez kontrolera i odczytu. Dla pewnego tła, systemy ultrawysokiej próżni wymagają różnych stopni czujnika, aby prawidłowo zmierzyć brak gazów w komorze. Im większa i silniejsza próżnia, tym bardziej skomplikowany jest ten pomiar.
Przy niskiej lub szorstkiej próżni, proste wskaźniki termopary mogą wykonać zadanie, ale gdy coraz więcej usuwasz z komory, potrzebujesz czegoś podobnego do miernika jonizacji gazu. Dwie najbardziej popularne metody to mierniki z gorącą katodą i zimną katodą. Mierniki z gorącą katodą działają jak wiele lamp próżniowych, w których mają włókno, które odparowuje wolne elektrony, które są przyspieszane w kierunku siatki. Wszelkie cząsteczki gazu na drodze jonizują i wyzwalają czujnik. Mierniki z zimną katodą wykorzystują wysokie napięcie bez żarnika wewnątrz magnetronu, aby wytworzyć ścieżkę elektronu, która również jonizuje lokalne cząsteczki gazu i wyzwala czujnik.
Mój miernik jest znany jako odwrócony przetwornik magnetronowy, wyprodukowany przez MKS, który zintegrował elektronikę sterującą z samym osprzętem miernika. Jednak wyjście jest napięciem liniowym, które pokrywa się ze skalą logarytmiczną używaną do pomiaru próżni. Do tego będziemy programować nasze arduino.
Krok 1: Co jest potrzebne?
Jeśli jesteś podobny do mnie, próbując zbudować system próżniowy tanio, uzyskanie dowolnego miernika jest tym, na co zadowolisz się. Na szczęście wielu producentów mierników buduje mierniki w ten sposób, gdzie miernik wyprowadza napięcie, które można wykorzystać we własnym systemie pomiarowym. Jednak do tego konkretnego instruktażu będziesz potrzebować:
- 1 czujnik podciśnienia z zimną katodą MKS serii HPS 903 AP IMT
- 1 arduino
- 1 standardowy wyświetlacz LCD 2x16 znaków
- Potencjometr 10k omów
- złącze żeńskie DSUB-9
- kabel szeregowy DB-9
- dzielnik napięcia
Krok 2: Kod
Tak więc, mam pewne doświadczenie z arduino, jak bawienie się konfiguracją RAMPS moich drukarek 3D, ale nie miałem doświadczenia w pisaniu kodu od podstaw, więc to był mój pierwszy prawdziwy projekt. Przestudiowałem wiele przewodników po czujnikach i zmodyfikowałem je, aby zrozumieć, w jaki sposób mogę ich używać z moim czujnikiem. Początkowo pomysł polegał na skorzystaniu z tabeli przeglądowej, tak jak widziałem inne czujniki, ale w końcu wykorzystałem zdolność zmiennoprzecinkową arduino do wykonania równania log/liniowego na podstawie tabeli konwersji dostarczonej przez MKS w instrukcji.
Poniższy kod po prostu ustawia A0 jako jednostkę zmiennoprzecinkową dla napięcia, która wynosi 0-5 V z dzielnika napięcia. Następnie jest obliczane z powrotem do skali 10V i interpolowane za pomocą równania P=10^(v-k), gdzie p jest ciśnieniem, v jest napięciem w skali 10V, a k jest jednostką, w tym przypadku torr, reprezentowaną przez 11.000. Oblicza to w postaci zmiennoprzecinkowej, a następnie wyświetla na ekranie LCD w notacji naukowej za pomocą dtostre.
#include #include // zainicjuj bibliotekę numerami pinów interfejsu LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// procedura konfiguracji uruchamia się raz po naciśnięciu przycisku reset: void setup() { / / zainicjuj komunikację szeregową z prędkością 9600 bitów na sekundę: Serial.begin(9600); pinMode(A0, WEJŚCIE); //A0 jest ustawione jako wejście #define PRESSURE_SENSOR A0; lcd.początek(16, 2); lcd.print("Instrumenty MKS"); lcd.setCursor(0, 1); lcd.print("Zimna katoda IMT"); opóźnienie(6500); lcd.clear(); lcd.print("Ciśnienie manometru:"); }// procedura pętli działa w kółko w nieskończoność: void loop() { float v = analogRead(A0); //v to napięcie wejściowe ustawione jako jednostka zmiennoprzecinkowa na analogRead v = v * 10.0 / 1024; //v to napięcie dzielnika 0-5V mierzone od 0 do 1024 przeliczone na skala float od 0v do 10v p = pow(10, v - 11.000); //p to ciśnienie w torach, które jest reprezentowane przez k w równaniu [P=10^(vk)], które wynosi - // -11.000 (K = 11.000 dla Torr, 10.875 dla mbar, 8.000 dla mikronów, 8,875 dla Pascala) Serial.print(v); ciśnienie węgla E[8]; dtostre(p, ciśnienieE, 1, 0); // format naukowy z 1 miejscem po przecinku lcd.setCursor(0, 1); lcd.print(naciskE); lcd.print("Torr"); }
Krok 3: Testowanie
Testy wykonałem przy użyciu zewnętrznego zasilacza, w krokach od 0-5v. Następnie ręcznie wykonałem obliczenia i upewniłem się, że zgadzają się z wyświetlaną wartością. Wydaje się, że odczytuje się nieznacznie o bardzo małą ilość, jednak nie jest to naprawdę ważne, ponieważ mieści się w mojej potrzebnej specyfikacji.
Ten projekt był dla mnie ogromnym pierwszym projektem kodu i nie ukończyłbym go, gdyby nie fantastyczna społeczność arduino:3
Niezliczone przewodniki i projekty czujników naprawdę pomogły w ustaleniu, jak to zrobić. Było wiele prób i błędów i wiele utknięć. Ale w końcu jestem bardzo zadowolony z tego, jak to wyszło i szczerze mówiąc, doświadczenie zobaczenia kodu, który stworzyłeś, robi to, co powinien po raz pierwszy, jest całkiem niesamowite.
Zalecana:
Symulacja przetwornika temperatury Modbus (Labview + Raspberry Pi 3): 8 kroków
Symulacja Transmisor De Temperatura Modbus (Labview + Raspberry Pi 3): POST ESCRITO EN ESPAÑOLSe simuló un circuito transmisor de temperatura, el elemento primario (Sensor) fue implementado mediante un potenciometro el cual varia el voltaje de entrada. Para enviar la información del sensor (Elemento Secundario), si imp
Odczyt temperatury za pomocą czujnika temperatury LM35 z Arduino Uno: 4 kroki
Odczytywanie temperatury za pomocą czujnika temperatury LM35 z Arduino Uno: Cześć, w tej instrukcji dowiemy się, jak używać LM35 z Arduino. Lm35 to czujnik temperatury, który może odczytywać wartości temperatury od -55°C do 150°C. Jest to 3-zaciskowe urządzenie, które dostarcza napięcie analogowe proporcjonalne do temperatury. Cześć G
Arduino pracuje z wieloma plikami (odczyt/zapis): 4 kroki
Arduino pracujące z wieloma plikami (READ/WRITE): Witajcie dzisiaj przedstawiam wam projekt Arduino, który współpracuje z tarczą RTC, która może przechowywać dane. Głównym zadaniem tego projektu jest praca z wieloma plikami przechowywanymi na karcie sc. Ten projekt zawiera kod, który działa z trzema plikami, które
Pierwsze kroki z Esp 8266 Esp-01 z Arduino IDE - Instalowanie płytek Esp w Arduino Ide i programowanie Esp: 4 kroki
Pierwsze kroki z Esp 8266 Esp-01 z Arduino IDE | Instalowanie płyt Esp w Arduino Ide i programowanie Esp: W tej instrukcji dowiemy się, jak zainstalować płyty esp8266 w Arduino IDE oraz jak zaprogramować esp-01 i przesłać w nim kod. Ponieważ płyty esp są tak popularne, pomyślałem o naprawieniu instrukcji dla to i większość ludzi boryka się z problemem
Odczyt i zapis z portu szeregowego za pomocą Raspberry Pi za pomocą Wemos: 5 kroków
Odczyt i zapis z portu szeregowego za pomocą Raspberry Pi za pomocą Wemos: Komunikacja z Raspberry Pi za pomocą Wemos D1 mini R2