Оглавление:

Узнайте здесь об исключительно важном датчике !: 11 шагов
Узнайте здесь об исключительно важном датчике !: 11 шагов

Видео: Узнайте здесь об исключительно важном датчике !: 11 шагов

Видео: Узнайте здесь об исключительно важном датчике !: 11 шагов
Видео: Зеленский и Лавров. Заседание Совбеза ООН. Прямая трансляция 2024, Июль
Anonim
Узнайте здесь об исключительно важном датчике!
Узнайте здесь об исключительно важном датчике!

Как узнать уровень воды в резервуаре для воды? Чтобы контролировать такие вещи, вы можете использовать датчик давления. В целом это очень полезное оборудование для промышленной автоматизации. Сегодня мы поговорим об этом семействе датчиков давления MPX специально для измерения давления. Я познакомлю вас с датчиком давления MPX5700 и выполню сборку образца с помощью ESP WiFi LoRa 32.

Я не буду использовать сегодня в цепи связь LoRa, ни WiFi, ни Bluetooth. Однако я выбрал этот ESP32, потому что в других видео я уже учил, как использовать все функции, которые обсуждаю сегодня.

Шаг 1: демонстрация

Демонстрация
Демонстрация
Демонстрация
Демонстрация

Шаг 2. Используемые ресурсы

Используемые ресурсы
Используемые ресурсы

• Датчик перепада давления MPX5700DP

• Потенциометр 10 кОм (или подстроечный резистор)

• Протоборд

• Соединительные провода

• USB-кабель

• ESP WiFi LoRa 32

• Воздушный компрессор (опция)

Шаг 3. Зачем измерять давление?

Зачем измерять давление?
Зачем измерять давление?

• Существует множество приложений, в которых давление является важной регулирующей переменной.

• Мы можем задействовать пневматические или гидравлические системы управления.

• Медицинское оборудование.

• Робототехника.

• Контроль производственных или экологических процессов.

• Измерение уровня в резервуарах с жидкостью или газом.

Шаг 4: Семейство датчиков давления MPX

Семейство датчиков давления MPX
Семейство датчиков давления MPX

• Они являются датчиками давления в электрическом напряжении.

• Они основаны на пьезорезистивном датчике, в котором сжатие преобразуется в изменение электрического сопротивления.

• Существуют версии, способные измерять небольшие перепады давления (от 0 до 0,04 атм) или большие колебания (от 0 до 10 атм).

• Они появляются в нескольких пакетах.

• Они могут измерять абсолютное давление (относительно вакуума), дифференциальное давление (разницу между двумя давлениями, p1 и p2) или манометрическое (относительно атмосферного давления).

Шаг 5: MPX5700DP

MPX5700DP
MPX5700DP
MPX5700DP
MPX5700DP

• Серия 5700 оснащена датчиками абсолютного, дифференциального и избыточного давления.

• MPX5700DP может измерять перепад давления от 0 до 700 кПа (приблизительно 7 атм).

• Выходное напряжение варьируется от 0,2 В до 4,7 В.

• Его мощность от 4,75 В до 5,25 В

Шаг 6: для демонстрации

Для демонстрации
Для демонстрации

• На этот раз мы не будем использовать этот датчик на практике; мы только смонтируем его и проведем некоторые измерения в качестве демонстрации.

• Для этого мы будем использовать прямой воздушный компрессор для создания давления на входе высокого давления (p1) и получения разницы по отношению к местному атмосферному давлению (p2).

• MPX5700DP - однонаправленный датчик, что означает, что он измеряет положительные разности, где p1 всегда должен быть больше или равен p2.

• p1> p2 и разница будет p1 - p2

• Существуют двусторонние дифференциальные датчики, которые могут оценивать отрицательную и положительную разницу.

• Хотя это всего лишь демонстрация, мы могли бы легко использовать приведенные здесь принципы для управления, например, давлением в воздушном резервуаре, питаемом от этого компрессора.

Шаг 7: Калибровка АЦП ESP

Калибровка АЦП ESP
Калибровка АЦП ESP
Калибровка АЦП ESP
Калибровка АЦП ESP
Калибровка АЦП ESP
Калибровка АЦП ESP

• Поскольку мы знаем, что аналого-цифровое преобразование ESP не является полностью линейным и может варьироваться от одной SoC к другой, давайте начнем с простого определения его поведения.

• Используя потенциометр и мультиметр, мы измерим напряжение, приложенное к AD, и свяжем его с указанным значением.

• С помощью простой программы для чтения AD и сбора информации в таблице мы смогли определить кривую его поведения.

Шаг 8: Расчет давления

Расчет давления
Расчет давления
Расчет давления
Расчет давления

• Хотя производитель предоставляет нам функцию с поведением компонента, всегда рекомендуется проводить калибровку, когда мы говорим о проведении измерений.

• Однако, поскольку это всего лишь демонстрация, мы будем напрямую использовать функцию из таблицы. Для этого мы будем манипулировать им таким образом, чтобы получить давление как функцию от значения АЦП.

* Помните, что доля напряжения, приложенного к АЦП опорным напряжением, должна иметь то же значение, что и значение АЦП, считываемое общим АЦП. (Без учета поправки)

Шаг 9: Сборка

сборка
сборка
сборка
сборка

• Чтобы подключить датчик, найдите выемку в одной из его клемм, которая указывает на контакт 1.

• Отсчет оттуда:

Контакт 1 обеспечивает выходной сигнал (от 0 В до 4,7 В)

Контакт 2 является опорным. (GND)

Контакт 3 для питания. (Против)

• Поскольку выходной сигнал составляет 4,7 В, мы будем использовать делитель напряжения, чтобы максимальное значение было эквивалентно 3 В 3. Для этого мы сделали регулировку с помощью потенциометра.

Шаг 10: Исходный код

Исходный код
Исходный код
Исходный код
Исходный код

Исходный код: #Includes и #defines

// Библиотеки для использования для отображения oLED # include // Необязательно для Arduino 1.6.5 и последующего #include "SSD1306.h" // или сообщения #include "SSD1306Wire.h" // Остальные выводы для OLED-подключений и других ESP32 pelos seguintes GPIO's: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve ser ajustado por software

Источник: глобальные переменные и константы.

Дисплей SSD1306 (0x3c, SDA, SCL, RST); // Установка и настройка изображения для объекта "display" const int amostras = 10000; // число колетадных амостов для средств массовой информации const int pin = 13; // название символа const float fator_atm = 0.0098692327; // преобразователь атмосферы const float fator_bar = 0.01; // преобразователь для бара const float fator_kgf_cm2 = 0.0101971621; // преобразователь кгс / см2

Исходный код: Setup ()

void setup () {pinMode (контакт, ВХОД); // аналоговая лейтмотив Serial.begin (115200); // начальный серийный номер // начальный дисплей display.init (); display.flipScreenVertical (); // Vira a tela verticalmente}

Исходный код: Loop ()

void loop () {float medidas = 0.0; // переменная для манипуляций как medidas float pressao = 0.0; // varável para armazenar o valor da pressão // inicia a coleta de amostras do ADC for (int i = 0; i (5000)) // se está ligado a mais que 5 segundos {// ограничить буфер do display display.clear (); // установить или изменить настройки display.setTextAlignment (TEXT_ALIGN_LEFT); // установить шрифт для Arial 10 display.setFont (ArialMT_Plain_16); // Удалить буфер без вывода на экран pressao display.drawString (0, 0, String (int (pressao)) + "kPa"); display.drawString (0, 16, String (pressao * fator_atm) + «атм»); display.drawString (0, 32, String (pressao * fator_kgf_cm2) + «кгс / см2»); // не выделять буфер или использовать ADC display.drawString (0, 48, "adc:" + String (int (medidas))); } else // есть лига в меню из 5 секунд, используйте начальный {// буфер или буфер do display display.clear (); // Установить или изменить централизованно display.setTextAlignment (TEXT_ALIGN_CENTER); // установить шрифт для Arial 16 display.setFont (ArialMT_Plain_16); // escreve без буфера display.drawString (64, 0, "Sensor Pressão"); // escreve без буфера display.drawString (64, 18, "Diferencial"); // установить шрифт для Arial 10 display.setFont (ArialMT_Plain_10); // escreve без буфера display.drawString (64, 44, "ESP-WiFi-Lora"); } display.display (); // переносим параметр буфера display delay (50); }

Исходный код: функция для расчета давления в кПа.

float CalculaPressao (float medida) {// Calcula a pressão com o // valor do AD corrigido pela função corrigeMedida () // Esta função foi escrita de acordo com dados do fabricante // e NÃO LEVA EM CONSIDERAÇÃO OS POSSÍVEIS DESVIOS (DO erro) return ((corrigeMedida (medida) / 3.3) - 0,04) / 0,0012858; }

-- ИЗОБРАЖЕНИЙ

Исходный код: функция, корректирующая значение AD.

float corrigeMedida (float x) {/ * Esta função foi obtida através da relação entre a tenão aplicada no AD e valor lido * / return 4.821224180510e-02 + 1.180826610901e-03 * x + -6.640183463236e + -07 * x * x 5.235532597676e-10 * x * x * x + -2.020362975028e-13 * x * x * x * x + 3.809807883001e-17 * x * x * x * x * x + -2.896158699016e-21 * x * x * х * х * х * х; }

Шаг 11: файлы

Загрузите файлы:

PDF

Я НЕТ

Рекомендуемые: