Isi kandungan:

Ketahui Di Sini Mengenai Sensor yang Sangat Penting!: 11 Langkah
Ketahui Di Sini Mengenai Sensor yang Sangat Penting!: 11 Langkah

Video: Ketahui Di Sini Mengenai Sensor yang Sangat Penting!: 11 Langkah

Video: Ketahui Di Sini Mengenai Sensor yang Sangat Penting!: 11 Langkah
Video: Mengenal Sensor, Aktuator, & ECM pada Mobil Avanza atau Xenia K3VE/3SZ-VE 2024, Julai
Anonim
Ketahui Di Sini Mengenai Sensor Yang Sangat Penting!
Ketahui Di Sini Mengenai Sensor Yang Sangat Penting!

Bagaimana anda dapat mengetahui mengenai paras air dalam tangki air? Untuk memantau jenis perkara ini, anda boleh menggunakan sensor tekanan. Ini adalah peralatan yang sangat berguna untuk automasi industri, secara umum. Hari ini, kita akan bercakap mengenai keluarga sensor tekanan MPX yang tepat ini, khusus untuk pengukuran tekanan. Saya akan memperkenalkan anda kepada sensor tekanan MPX5700 dan melakukan pemasangan sampel menggunakan ESP WiFi LoRa 32.

Saya tidak akan menggunakan komunikasi LoRa di litar hari ini, WiFi dan Bluetooth. Namun, saya memilih ESP32 ini kerana saya sudah mengajar di video lain cara menggunakan semua ciri yang saya bincangkan hari ini.

Langkah 1: Demonstrasi

Demonstrasi
Demonstrasi
Demonstrasi
Demonstrasi

Langkah 2: Sumber yang Digunakan

Sumber Yang Digunakan
Sumber Yang Digunakan

• Sensor Tekanan Pembezaan MPX5700DP

• Potensiometer 10k (atau potpot)

• Protoboard

• Wayar sambungan

• Wayar USB

• ESP WiFi LoRa 32

• Pemampat udara (pilihan)

Langkah 3: Mengapa Mengukur Tekanan?

Mengapa Mengukur Tekanan?
Mengapa Mengukur Tekanan?

• Terdapat banyak aplikasi di mana tekanan adalah pemboleh ubah kawalan yang penting.

• Kita boleh melibatkan sistem kawalan pneumatik atau hidraulik.

• Alat perubatan.

• Robotik.

• Kawalan proses industri atau persekitaran.

• Pengukuran tahap di takungan cecair atau gas.

Langkah 4: Keluarga MPX Sensor Tekanan

Sensor Tekanan Keluarga MPX
Sensor Tekanan Keluarga MPX

• Mereka adalah transduser tekanan dalam voltan elektrik.

• Mereka didasarkan pada sensor resistif piezo, di mana mampatan diubah menjadi variasi rintangan elektrik.

• Terdapat versi yang mampu mengukur perbezaan tekanan kecil (dari 0 hingga 0,04atm), atau variasi besar (dari 0 hingga 10atm).

• Mereka muncul dalam pelbagai bungkusan.

• Mereka dapat mengukur tekanan mutlak (relatif terhadap vakum), tekanan pembezaan (perbezaan antara dua tekanan, p1 dan p2), atau tolok (relatif terhadap tekanan atmosfera).

Langkah 5: MPX5700DP

MPX5700DP tersebut
MPX5700DP tersebut
MPX5700DP tersebut
MPX5700DP tersebut

• Seri 5700 mempunyai sensor mutlak, pembezaan, dan tolok.

• MPX5700DP dapat mengukur tekanan pembezaan dari 0 hingga 700kPa (kira-kira 7atm).

• Voltan keluaran berbeza dari 0.2V hingga 4.7V.

• Kuasanya dari 4.75V hingga 5.25V

Langkah 6: Demonstrasi

Untuk Demonstrasi
Untuk Demonstrasi

• Kali ini, kami tidak akan melakukan aplikasi praktikal menggunakan sensor ini; kami hanya akan memasangnya dan melakukan beberapa pengukuran sebagai demonstrasi.

• Untuk ini, kami akan menggunakan pemampat udara langsung untuk menerapkan tekanan pada saluran masuk tekanan tinggi (p1) dan mendapatkan perbedaan terkait dengan tekanan atmosfera setempat (p2).

• MPX5700DP adalah sensor searah, yang bermaksud bahawa ia mengukur perbezaan positif di mana p1 mesti lebih besar daripada atau sama dengan p2.

• p1> p2 dan perbezaannya adalah p1 - p2

• Terdapat sensor pembezaan dua arah yang dapat menilai perbezaan negatif dan positif.

• Walaupun hanya demonstrasi, kita dapat menggunakan prinsip-prinsip di sini dengan mudah untuk mengendalikan, misalnya, tekanan di takungan udara, yang dikuasakan oleh pemampat ini.

Langkah 7: Menentukur ESP ADC

Menentukur ESP ADC
Menentukur ESP ADC
Menentukur ESP ADC
Menentukur ESP ADC
Menentukur ESP ADC
Menentukur ESP ADC

• Oleh kerana kita tahu bahawa penukaran analog-digital ESP tidak sepenuhnya linear dan boleh berbeza dari satu SoC ke SoC yang lain, mari kita mulakan dengan membuat penentuan tingkah lakunya dengan mudah.

• Dengan menggunakan potensiometer dan multimeter, kita akan mengukur voltan yang dikenakan pada AD dan mengaitkannya dengan nilai yang ditunjukkan.

• Dengan program sederhana untuk membaca IKLAN dan mengumpulkan maklumat dalam jadual, kami dapat menentukan keluk tingkah lakunya.

Langkah 8: Mengira Tekanan

Mengira Tekanan
Mengira Tekanan
Mengira Tekanan
Mengira Tekanan

• Walaupun pengeluar memberi kita fungsi dengan tingkah laku komponen, selalu disarankan untuk melakukan penentukuran ketika kita berbicara mengenai pengukuran.

• Namun, kerana ini hanya demonstrasi, kami akan langsung menggunakan fungsi yang terdapat di lembar data. Untuk ini, kita akan memanipulasinya dengan cara yang memberi kita tekanan sebagai fungsi dari nilai ADC.

* Ingat bahawa pecahan voltan yang dikenakan pada ADC oleh voltan rujukan mesti mempunyai nilai yang sama dengan ADC yang dibaca oleh jumlah ADC. (Mengabaikan pembetulan)

Langkah 9: Perhimpunan

perhimpunan
perhimpunan
perhimpunan
perhimpunan

• Untuk menyambungkan sensor, cari takik di salah satu terminal, yang menunjukkan pin 1.

• Mengira dari sana:

Pin 1 memberikan output isyarat (dari 0V hingga 4.7V)

Pin 2 adalah rujukan. (GND)

Pin 3 untuk kuasa. (Vs)

• Oleh kerana output isyarat 4.7V, kami akan menggunakan pembahagi voltan sehingga nilai maksimumnya bersamaan dengan 3V3. Untuk ini, kami membuat penyesuaian dengan potensiometer.

Langkah 10: Kod Sumber

Kod Sumber
Kod Sumber
Kod Sumber
Kod Sumber

Kod Sumber: #Menyertakan dan #menentukan

// Bibliotecas para utilização do display oLED # include // Necessário apenas para o Arduino 1.6.5 e posterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // Os pinos do OLED estão conectados ao ESP32 pelu seguintes GPIO's: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve ser perisian ajustado por

Sumber: Pemboleh ubah dan pemalar global

Paparan SSD1306 (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos melakukan 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 converão para atmosferas const float fator_bar = 0.01; // fator de converão para bar const float fator_kgf_cm2 = 0.0101971621; // fator de converão kgf / cm2

Kod Sumber: Persediaan ()

batal persediaan () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // iniciando a serial // Inicia o display display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Kod sumber: Gelung ()

gelung void () {float medidas = 0.0; // variável para manipular sebagai medidas float pressao = 0.0; // variável para armazenar o valor da pressão // inicia a coleta de amostras do ADC untuk (int i = 0; i (5000)) // se está ligado a mais que 5 segundos {// Limpa o buffer do display display.clear (); // ajusta o alinhamento untuk a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 10 display.setFont (ArialMT_Plain_16); // Escreve no buffer memaparkan displayaoao.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 o valor do ADC display.drawString (0, 48, "adc:" + String (int (medidas))); } lain-lain // se está ligado a menos de 5 segundos, keluarkan tela inicial {// limpa o buffer do display 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 (); // transferere o buffer para o display delay (50); }

Kod sumber: Fungsi yang mengira tekanan dalam kPa

float calculaPressao (float medida) {// Calcula a pressão com o // valor do AD corrigido pela função corrigeMedida () // Esta função juga escrita de acordo com dados do fabricante // e NÃO LEVA EM CONSIDERAÇÃO OS POSSÍVEIS DESVIOS DO COMPO erro) pulangan ((corrigeMedida (medida) / 3.3) - 0.04) / 0.0012858; }

- GAMBAR

Kod sumber: Fungsi yang membetulkan nilai AD

float corrige Medida (float x) {/ * Esta função juga 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 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; }

Langkah 11: Fail

Muat turun fail:

PDF

INO

Disyorkan: