Оглавление:
Видео: Индикация инвертированного магнетронного преобразователя Arduino: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
В рамках моего текущего проекта здесь, документирующего продолжающийся прогресс моего набега в мир физики частиц сверхвысокого вакуума, он пришел к той части проекта, которая требовала некоторой электроники и кодирования.
Я купил излишки вакуумметра MKS серии 903 IMT с холодным катодом, без контроллера или считывающего устройства. Для некоторой предыстории системам сверхвысокого вакуума требуются различные ступени датчиков для правильного измерения нехватки газов в камере. Чем сильнее и сильнее вакуум, тем сложнее становится это измерение.
При низком или грубом вакууме простые датчики с термопарой могут справиться с этой задачей, но по мере того, как вы удаляете все больше и больше из камеры, вам понадобится что-то вроде датчика ионизации газа. Двумя наиболее распространенными методами являются датчики с горячим и холодным катодом. Датчики с горячим катодом работают как многие вакуумные лампы, в которых есть нить накала, которая испаряет свободные электроны, которые ускоряются по направлению к решетке. Любые молекулы газа на пути ионизируют и срабатывают датчик. Датчики с холодным катодом используют высокое напряжение без нити накала внутри магнетрона для создания пути электронов, который также ионизирует локальные молекулы газа и отключает датчик.
Мой манометр известен как манометр с инвертированным магнетронным преобразователем, изготовленный MKS, который интегрировал управляющую электронику с самим прибором. Однако выходное напряжение представляет собой линейное напряжение, которое совпадает с логарифмической шкалой, используемой для измерения вакуума. Это то, на что мы будем программировать нашу ардуино.
Шаг 1. Что необходимо?
Если вы, как и я, пытаетесь построить вакуумную систему по дешевке, то получите любой калибр, который сможете, - это то, на что вы согласитесь. К счастью, многие производители манометров строят манометры таким образом, при этом они выдают напряжение, которое можно использовать в вашей собственной измерительной системе. Однако для этого конкретно вам потребуются:
- 1 MKS HPS серии 903 AP IMT датчик вакуума с холодным катодом
- 1 arduino uno
- 1 стандартный символьный ЖК-дисплей 2x16
- Потенциометр 10 кОм
- гнездовой разъем DSUB-9
- последовательный кабель DB-9
- делитель напряжения
Шаг 2: Код
Итак, у меня есть некоторый опыт работы с Arduino, например, когда я возился с конфигурацией RAMPS моего 3D-принтера, но у меня не было опыта написания кода с нуля, так что это был мой первый настоящий проект. Я изучил множество руководств по датчикам и изменил их, чтобы понять, как я могу использовать их со своим датчиком. Сначала идея заключалась в том, чтобы использовать таблицу поиска, поскольку я видел другие датчики, но в конечном итоге я использовал способность Arduino с плавающей запятой для выполнения логарифмического / линейного уравнения на основе таблицы преобразования, предоставленной MKS в руководстве.
В приведенном ниже коде A0 просто устанавливается как единица измерения с плавающей запятой для напряжения, которое составляет 0-5 В от делителя напряжения. Затем он рассчитывается с точностью до шкалы 10 В и интерполируется с использованием уравнения P = 10 ^ (v-k), где p - давление, v - напряжение по шкале 10 В, а k - единица измерения, в данном случае торр, представленная числом 11.000. Он вычисляет это число с плавающей запятой, а затем отображает его на ЖК-экране в экспоненциальном представлении с помощью dtostre.
#include #include // инициализируем библиотеку номерами контактов интерфейса LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // процедура установки запускается один раз при нажатии кнопки reset: void setup () {/ / инициализировать последовательную связь со скоростью 9600 бит в секунду: Serial.begin (9600); pinMode (A0, ВХОД); // A0 устанавливается как ввод #define PRESSURE_SENSOR A0; lcd.begin (16, 2); lcd.print («МКС Инструменты»); lcd.setCursor (0, 1); lcd.print («Холодный катод IMT»); задержка (6500); lcd.clear (); lcd.print ("Манометрическое давление:"); } // процедура цикла выполняется снова и снова бесконечно: void loop () {float v = analogRead (A0); // v - входное напряжение, заданное как единица измерения с плавающей запятой на analogRead v = v * 10.0 / 1024; // v - напряжение делителя 0-5 В, измеренное от 0 до 1024, вычисленное по шкале от 0 до 10 В float p = pow (10, v - 11.000); // p - давление в торр, которое в уравнении [P = 10 ^ (vk)] представлено буквой k, что равно- // -11,000 (K = 11,000 для торр, 10,875 для мбар, 8,000 для микрон, 8,875 для Паскаля) Serial.print (v); давление угля E [8]; dtostre (p, давлениеE, 1, 0); // научный формат с 1 десятичным знаком lcd.setCursor (0, 1); lcd.print (давлениеE); lcd.print («Торр»); }
Шаг 3. Тестирование
Я провел тесты с использованием внешнего источника питания с шагом 0-5 В. Затем я выполнил вычисления вручную и убедился, что они согласуются с отображаемым значением. Кажется, что это немного отклоняется на очень небольшую величину, однако это не очень важно, так как находится в пределах моей необходимой спецификации.
Этот проект был для меня огромным первым проектом кода, и я бы не закончил его, если бы не фантастическое сообщество arduino: 3
Бесчисленные руководства и проекты датчиков действительно помогли понять, как это сделать. Было много проб и ошибок и много зависаний. Но, в конце концов, я очень доволен тем, как это получилось, и, честно говоря, увидеть, как код, который вы заставили, делает то, что он должен делать, в первый раз, довольно здорово.
Рекомендуемые:
DSO138 USB Power: без повышающего преобразователя !: 3 шага
DSO138 USB Power: без повышающего преобразователя !: JYE DSO138 - отличный маленький осциллограф для работы со звуком, который может стать отличным портативным трассировщиком сигналов. Проблема в том, что он не совсем портативный, потому что ему нужен адаптер питания на 9 В. Лучше бы его можно было поставить из эталона
Выходное напряжение преобразователя DCDC, управляемое ШИМ: 3 ступени
Выходное напряжение преобразователя постоянного тока постоянного тока, контролируемое ШИМ: мне нужен преобразователь постоянного тока постоянного тока с цифровым управлением и переменным выходным напряжением для схемы зарядки … Итак, я сделал его. Разрешение выходного напряжения экспоненциально хуже, чем выше выходное напряжение. Может быть, что-то связано с отношением светодиода
Индикация поездов и погоды в Великобритании: 5 шагов
Отображение информации о поездах и погоде в Великобритании. Это руководство предназначено для отображения информации об отправлении поездов и погоды в Великобритании с питанием от батареи. Он использовал базу данных OpenLDBWS National Rail, чтобы в режиме реального времени получать информацию об отправлении поездов для конкретной местной железнодорожной станции и отображать ее. Используется openweather
Как загрузить программу или код в Arduino Pro Mini с помощью кабеля последовательного преобразователя CH340 UART: 4 шага
Как загрузить программу или код в Arduino Pro Mini с помощью кабеля последовательного преобразователя UART CH340: Последовательные кабели USB TTL представляют собой серию кабелей преобразования USB в последовательный, которые обеспечивают связь между интерфейсами USB и последовательным интерфейсом UART. Доступен ряд кабелей, обеспечивающих возможность подключения на 5 В, 3,3 В или с указанными пользователем уровнями сигнала с
Схемы Raspberry Pi GPIO: использование аналогового датчика LDR без АЦП (аналого-цифрового преобразователя): 4 шага
Схемы Raspberry Pi GPIO: использование аналогового датчика LDR без АЦП (аналого-цифровой преобразователь): в наших предыдущих инструкциях мы показали вам, как вы можете связать контакты GPIO вашего Raspberry Pi со светодиодами и переключателями и как контакты GPIO могут быть высокого уровня или низкий. Но что, если вы хотите использовать Raspberry Pi с аналоговым датчиком? Если мы хотим использовать