فهرست مطالب:

در اینجا یک سنسور بسیار مهم را بیاموزید!: 11 مرحله
در اینجا یک سنسور بسیار مهم را بیاموزید!: 11 مرحله

تصویری: در اینجا یک سنسور بسیار مهم را بیاموزید!: 11 مرحله

تصویری: در اینجا یک سنسور بسیار مهم را بیاموزید!: 11 مرحله
تصویری: اتفاقاتی که در بهمن ماه ۱۴۰۲ برای شما خواهد افتاد متولدین نیمه دوم سال 2024, جولای
Anonim
اینجا یک سنسور بسیار مهم را بیاموزید!
اینجا یک سنسور بسیار مهم را بیاموزید!

چگونه می توانید از سطح آب یک مخزن آب مطلع شوید؟ برای نظارت بر این نوع موارد ، می توانید از سنسور فشار استفاده کنید. این تجهیزات به طور کلی برای اتوماسیون صنعتی بسیار مفید است. امروز ، ما قصد داریم در مورد این خانواده دقیق سنسورهای فشار MPX ، مخصوصاً برای اندازه گیری فشار صحبت کنیم. سنسور فشار MPX5700 را به شما معرفی می کنم و یک نمونه نمونه را با استفاده از ESP WiFi LoRa 32 انجام می دهم.

من امروز از ارتباط LoRa در مدار استفاده نمی کنم ، نه WiFi و نه بلوتوث. با این حال ، من این ESP32 را انتخاب کردم زیرا قبلاً در فیلمهای دیگر آموزش داده بودم که چگونه از همه ویژگیهایی که امروز در مورد آنها صحبت می کنم استفاده کنم.

مرحله 1: تظاهرات

تظاهرات
تظاهرات
تظاهرات
تظاهرات

مرحله 2: منابع مورد استفاده

منابع مورد استفاده
منابع مورد استفاده

• سنسور فشار دیفرانسیل MPX5700DP

• پتانسیومتر 10k (یا trimpot)

• Protoboard

• سیم های اتصال

• کابل یو اس بی

• 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 تا 700kPa (تقریبا 7 اتم) اندازه گیری کند.

• ولتاژ خروجی از 0.2V تا 4.7V متغیر است.

• قدرت آن از 4.75V تا 5.25V است

مرحله 6: برای تظاهرات

برای تظاهرات
برای تظاهرات

• این بار ، ما با استفاده از این سنسور یک برنامه کاربردی انجام نمی دهیم. ما فقط آن را سوار کرده و بعنوان یک نمایش اندازه گیری می کنیم.

• برای این منظور ، ما از یک کمپرسور مستقیم هوا برای اعمال فشار در ورودی فشار بالا (p1) و دریافت تفاوت در رابطه با فشار اتمسفر محلی (p2) استفاده خواهیم کرد.

• MPX5700DP یک سنسور یک جهته است ، به این معنی که تفاوت های مثبت را در جایی که p1 همیشه باید بزرگتر یا مساوی p2 باشد اندازه گیری می کند.

• p1> p2 و تفاوت p1 - p2 خواهد بود

• سنسورهای افتراقی دو طرفه وجود دارد که می توانند تفاوت های منفی و مثبت را ارزیابی کنند.

• اگرچه این فقط یک تظاهرات است ، اما ما به راحتی می توانیم از اصول اینجا برای کنترل ، به عنوان مثال ، فشار در یک مخزن هوا ، که توسط این کمپرسور تغذیه می شود ، استفاده کنیم.

مرحله 7: کالیبراسیون ESP ADC

کالیبراسیون ESP ADC
کالیبراسیون ESP ADC
کالیبراسیون ESP ADC
کالیبراسیون ESP ADC
کالیبراسیون ESP ADC
کالیبراسیون ESP ADC

• از آنجا که می دانیم تبدیل آنالوگ-دیجیتالی ESP کاملاً خطی نیست و می تواند از یک SoC به دیگری متفاوت باشد ، بیایید با یک تعیین ساده رفتار آن شروع کنیم.

• با استفاده از پتانسیومتر و مولتی متر ، ولتاژ اعمال شده به AD را اندازه گیری کرده و آن را به مقدار نشان داده شده مرتبط می کنیم.

• با یک برنامه ساده برای خواندن AD و جمع آوری اطلاعات در یک جدول ، ما توانستیم منحنی رفتار آن را تعیین کنیم.

مرحله 8: محاسبه فشار

محاسبه فشار
محاسبه فشار
محاسبه فشار
محاسبه فشار

• اگرچه سازنده عملکرد قطعه را در اختیار ما قرار می دهد ، اما هنگام صحبت در مورد اندازه گیری ، همیشه توصیه می شود کالیبراسیون را انجام دهید.

• با این حال ، از آنجا که این فقط یک نمایش است ، ما مستقیماً از تابع موجود در برگه داده استفاده خواهیم کرد. برای این کار ، ما آن را به گونه ای دستکاری می کنیم که فشار را به عنوان تابعی از مقدار ADC به ما می دهد.

* به یاد داشته باشید که کسری از ولتاژ اعمال شده به ADC با ولتاژ مرجع باید دارای همان مقدار ADC باشد که توسط ADC کل خوانده می شود. (بی توجهی به تصحیح)

مرحله 9: مونتاژ

مونتاژ
مونتاژ
مونتاژ
مونتاژ

• برای اتصال سنسور ، شکاف را در یکی از پایانه های آن که نشان دهنده پین 1 است جستجو کنید.

• شمارش از آنجا:

پین 1 خروجی سیگنال (از 0V تا 4.7V) را فراهم می کند

پین 2 مرجع است. (GND)

پین 3 برای قدرت (در مقابل)

• از آنجا که خروجی سیگنال 4.7V است ، از تقسیم ولتاژ استفاده می کنیم تا حداکثر مقدار معادل 3V3 باشد. برای این ، ما تنظیم را با پتانسیومتر انجام دادیم.

مرحله 10: کد منبع

کد منبع
کد منبع
کد منبع
کد منبع

کد منبع: #شامل و #تعریف می شود

// Bibliotecas para useização برای نمایش oLED #شامل // نیاز به apenas para o Arduino 1.6.5 و posterior #شامل "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // Os pinos do OLED estão conectados ao 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) ؛ // Instanciando e ajustando os pinos do objeto "display" const int amostras = 10000؛ // número de amostras coletadas para a média const int pin = 13؛ // pino de leitura const float fator_atm = 0.0098692327؛ // fator de conversão para atmosferas const float fator_bar = 0.01؛ // fator de conversão para bar const float fator_kgf_cm2 = 0.0101971621؛ // fator de conversão kgf/cm2

کد منبع: راه اندازی ()

void setup () {pinMode (پین ، ورودی) ؛ // pino de leitura analógica Serial.begin (115200)؛ // iniciando a serial // Inicia o display display.init ()؛ display.flipScreenVertically ()؛ // Vira a tela verticalmente}

کد منبع: حلقه ()

void loop () {float medidas = 0.0؛ // variável para manipular as medidas float pressao = 0.0؛ // variá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 {// Limpa o buffer do display display.clear ()؛ // برای یک esquerda display.setTextAlignment (TEXT_ALIGN_LEFT) ؛ // ajusta a fonte para Arial 10 display.setFont (ArialMT_Plain_16)؛ // Escreve no buffer do displaya pressao display.drawString (0، 0، String (int (pressao)) + "kPa")؛ display.drawString (0 ، 16 ، String (pressao * fator_atm) + "atm") ؛ display.drawString (0 ، 32 ، String (pressao * fator_kgf_cm2) + "kgf/cm2") ؛ // escreve no buffer or valor do ADC display.drawString (0، 48، "adc:" + String (int (medidas)))؛ } else // se está ligado a menos de 5 segundos، exibe a tela inicial {// limpa o buffer do display.clear ()؛ // Ajusta o alinhamento para centralizado display.setTextAlignment (TEXT_ALIGN_CENTER)؛ // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16)؛ // escreve no buffer display.drawString (64 ، 0 ، "Sensor Pressão") ؛ // escreve no buffer display.drawString (64 ، 18 ، "Diferencial") ؛ // ajusta a fonte para Arial 10 display.setFont (ArialMT_Plain_10)؛ // escreve no buffer display.drawString (64 ، 44 ، "ESP-WiFi-Lora") ؛ } display.display () ؛ // انتقال بافر یا تأخیر نمایش (50) ؛ }

کد منبع: تابعی که فشار را در kPa محاسبه می کند

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 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 tensão aplicada no AD e valor lido * / return 4.821224180510e-02 + 1.180826610901e-03 * x + -6.640183463236e-07 * 07 * 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 * x * x * x * x ؛ }

مرحله 11: فایل ها

دانلود فایلها:

PDF

من نه

توصیه شده: