İçindekiler:

Son Derece Önemli Bir Sensör Hakkında Buradan Öğrenin!: 11 Adım
Son Derece Önemli Bir Sensör Hakkında Buradan Öğrenin!: 11 Adım

Video: Son Derece Önemli Bir Sensör Hakkında Buradan Öğrenin!: 11 Adım

Video: Son Derece Önemli Bir Sensör Hakkında Buradan Öğrenin!: 11 Adım
Video: en sevdiğim öğrencimi kopya çekerken yakaladım… 2024, Kasım
Anonim
Son Derece Önemli Bir Sensör Hakkında Buradan Öğrenin!
Son Derece Önemli Bir Sensör Hakkında Buradan Öğrenin!

Bir su deposundaki su seviyesini nasıl öğrenebilirsiniz? Bu tür şeyleri izlemek için bir basınç sensörü kullanabilirsiniz. Bu, genel olarak endüstriyel otomasyon için çok faydalı bir ekipman. Bugün, özellikle basınç ölçümü için bu tam MPX basınç sensörleri ailesinden bahsedeceğiz. Sizi MPX5700 basınç sensörüyle tanıştıracağım ve ESP WiFi LoRa 32'yi kullanarak bir örnek montaj gerçekleştireceğim.

Bugün devrede LoRa iletişimi kullanmayacağım, ne WiFi ne de Bluetooth. Ancak bu ESP32'yi seçtim çünkü bugün tartıştığım tüm özelliklerin nasıl kullanılacağını diğer videolarda zaten öğrettim.

1. Adım: Gösteri

Gösteri
Gösteri
Gösteri
Gösteri

2. Adım: Kullanılan Kaynaklar

Kullanılan Kaynaklar
Kullanılan Kaynaklar

• MPX5700DP Fark Basınç Sensörü

• 10k potansiyometre (veya trimpot)

• Ana kart

• Bağlantı kabloları

• USB kablosu

• ESP WiFi LoRa 32

• Hava kompresörü (opsiyonel)

Adım 3: Neden Basıncı Ölçmelisiniz?

Neden Basıncı Ölçmelisiniz?
Neden Basıncı Ölçmelisiniz?

• Basıncın önemli bir kontrol değişkeni olduğu çok sayıda uygulama vardır.

• Pnömatik veya hidrolik kontrol sistemlerini dahil edebiliriz.

• Tıbbi aletler.

• Robotik.

• Endüstriyel veya çevresel süreçlerin kontrolü.

• Sıvı veya gaz rezervuarlarında seviye ölçümü.

Adım 4: MPX Basınç Sensörleri Ailesi

MPX Basınç Sensörleri Ailesi
MPX Basınç Sensörleri Ailesi

• Elektrik geriliminde basınç transdüserleridir.

• Sıkıştırmanın elektrik direncinin bir varyasyonuna dönüştürüldüğü bir piezo dirençli sensöre dayanırlar.

• Küçük basınç farklarını (0'dan 0.04atm'ye kadar) veya büyük değişimleri (0'dan 10atm'ye) ölçebilen versiyonları vardır.

• Birden çok pakette görünürler.

• Mutlak basıncı (vakuma göre), diferansiyel basıncı (iki basınç arasındaki fark, p1 ve p2) veya göstergeyi (atmosferik basınca göre) ölçebilirler.

Adım 5: MPX5700DP

MPX5700DP
MPX5700DP
MPX5700DP
MPX5700DP

• 5700 serisi mutlak, diferansiyel ve gösterge sensörlerine sahiptir.

• MPX5700DP, 0 ila 700kPa (yaklaşık 7atm) arasındaki bir fark basıncını ölçebilir.

• Çıkış voltajı 0,2V ile 4,7V arasında değişir.

• Gücü 4,75V ile 5,25V arasındadır.

Adım 6: Gösteri İçin

Gösteri için
Gösteri için

• Bu sefer bu sensörü kullanarak pratik bir uygulama yapmayacağız; sadece onu monte edeceğiz ve bir gösteri olarak bazı ölçümler yapacağız.

• Bunun için, yüksek basınç girişinde (p1) basınç uygulamak ve yerel atmosfer basıncına (p2) göre farkı almak için doğrudan bir hava kompresörü kullanacağız.

• MPX5700DP tek yönlü bir sensördür, yani p1'in her zaman p2'den büyük veya eşit olması gereken durumlarda pozitif farkları ölçer.

• p1> p2 ve fark p1 - p2 olacaktır

• Negatif ve pozitif farkları değerlendirebilen iki yönlü diferansiyel sensörler bulunmaktadır.

• Bu yalnızca bir gösterim olmasına rağmen, örneğin bu kompresör tarafından çalıştırılan bir hava deposundaki basıncı kontrol etmek için buradaki ilkeleri kolayca kullanabiliriz.

7. Adım: ESP ADC'yi Kalibre Etme

ESP ADC'yi kalibre etme
ESP ADC'yi kalibre etme
ESP ADC'yi kalibre etme
ESP ADC'yi kalibre etme
ESP ADC'yi kalibre etme
ESP ADC'yi kalibre etme

• ESP'nin analog-dijital dönüşümünün tamamen doğrusal olmadığını ve bir SoC'den diğerine değişebileceğini bildiğimiz için, davranışını basit bir şekilde belirleyerek başlayalım.

• Bir potansiyometre ve bir multimetre kullanarak AD'ye uygulanan voltajı ölçeceğiz ve bunu belirtilen değerle ilişkilendireceğiz.

• AD'yi okumak ve bilgileri bir tabloda toplamak için basit bir programla davranışının eğrisini belirleyebildik.

Adım 8: Basıncı Hesaplama

Basıncı Hesaplamak
Basıncı Hesaplamak
Basıncı Hesaplamak
Basıncı Hesaplamak

• Üretici bize bileşenin davranışı ile işlevi sağlasa da, ölçüm yapmaktan bahsederken her zaman bir kalibrasyon yapılması önerilir.

• Ancak, bu sadece bir gösterim olduğu için, veri sayfasında bulunan fonksiyonu doğrudan kullanacağız. Bunun için ADC değerinin bir fonksiyonu olarak bize basıncı verecek şekilde manipüle edeceğiz.

* Referans voltajı tarafından ADC'ye uygulanan voltajın fraksiyonunun, toplam ADC tarafından okunan ADC ile aynı değere sahip olması gerektiğini unutmayın. (Düzeltmeyi dikkate almadan)

Adım 9: Montaj

toplantı
toplantı
toplantı
toplantı

• Sensörü bağlamak için terminallerinden birinde pim 1'i gösteren çentiği arayın.

• Oradan sayma:

Pin 1 sinyal çıkışı sağlar (0V - 4.7V arası)

Pin 2 referanstır. (GND)

Güç için pim 3. (Vs)

• Sinyal çıkışı 4.7V olduğundan maksimum değer 3V3'e eşit olacak şekilde bir voltaj bölücü kullanacağız. Bunun için potansiyometre ile ayarını yaptık.

Adım 10: Kaynak Kodu

Kaynak Kodu
Kaynak Kodu
Kaynak Kodu
Kaynak Kodu

Kaynak Kodu: #Includes ve #defines

//OLED'i görüntülemek için kullanılan kitapçıklar#include // Arduino 1.6.5 ve posterior için gerekli olan #"SSD1306.h"yi içerir // veya "SSD1306Wire.h"yi içerir //İşletim sistemi pinleri OLED bağlantılarını yapar ESP32 pelos GPIO'ları sıralar: //OLED_SDA -- GPIO4 //OLED_SCL -- GPIO15 //OLED_RST -- GPIO16 #define SDA 4 #define SCL 15 #define RST 16 //RST yazılım geliştirme

Kaynak: Global değişkenler ve sabitler

SSD1306 ekran (0x3c, SDA, SCL, RST); //Instanciando e ajustando os pinos "görüntülemek" için nesne yapmak const int amostras = 10000; //número de amostras coletadas para a média const int pin = 13; //pino de leitura sabit kayan nokta fator_atm = 0.0098692327; //araba atmosferler sabit kayan nokta fator_bar = 0,01; //konuşma para çubuğu sabit kayan nokta fator_kgf_cm2 = 0.0101971621; // daha fazla tartışma kgf/cm2

Kaynak Kodu: Kurulum ()

void setup(){ pinMode(pin, INPUT); //pino de leitura analógica Serial.begin(115200); // bir seriyi iniciando // İnicia o ekran display.init(); display.flipScreenVertically(); // Vira a tela dikeymente }

Kaynak kodu: Döngü ()

void loop(){ float medidas = 0.0;//variável para manipular as medidas float pressao = 0.0; //basınç için değişken para armazenar o valor da pressão //inicia a coleta de amostras do ADC için (int i = 0; i (5000)) // bir mais que 5 segundos { //Limpa veya arabellek görüntüleme ekranı.clear(); //ajusta ya da esquerda display.setTextAlignment(TEXT_ALIGN_LEFT); // Arial 10 display.setFont(ArialMT_Plain_16); //Bir pressao görüntülemeden arabellek çıkarma 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"); // ADC yapmak için hiçbir arabellek yok display.drawString(0, 48, "adc: " + String(int(medidas))); } else // en son 5 segundos'a bak, bir tela incial { //impa o arabellek göster display.clear(); //Display.setTextAlignment(TEXT_ALIGN_CENTER); // Arial 16 display.setFont(ArialMT_Plain_16); // arabellek yok display.drawString(64, 0, "Sensor Pressão"); //arabellek yok display.drawString(64, 18, "Diferencial"); // Arial 10 display.setFont(ArialMT_Plain_10); //arabellek yok display.drawString(64, 44, "ESP-WiFi-Lora"); } display.display();//transfere o tampon para o görüntüleme gecikmesi(50); }

Kaynak kodu: Basıncı kPa cinsinden hesaplayan fonksiyon

float calculaPressao (float medida){ //Basınç hesapları //basınç hesapları //valor do AD corrigido pela função corrigeMedida() //Yapılış için temel bilgiler //e nÃO LEVA EM DEĞERLENDİRİLMİŞ OLAN OS ÖZEL TASARIMLARI (BİLEŞENLER DO erro) dönüş ((corrigeMedida(medida) / 3.3) - 0.04) / 0.0012858; }

-- GÖRÜNTÜLER

Kaynak kodu: AD değerini düzelten fonksiyon

float corrigeMedida(float x) { /* Esta função foi obtida através ve relação enre a on AD e valor lido */ dönüş 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 * x * x * x * x; }

11. Adım: Dosyalar

Dosyaları indirin:

PDF

BEN HAYIR

Önerilen: