Tartalomjegyzék:

Tudjon meg itt egy rendkívül fontos érzékelőt !: 11 lépés
Tudjon meg itt egy rendkívül fontos érzékelőt !: 11 lépés

Videó: Tudjon meg itt egy rendkívül fontos érzékelőt !: 11 lépés

Videó: Tudjon meg itt egy rendkívül fontos érzékelőt !: 11 lépés
Videó: ÚJ* TikTok Official Rövid Videó -😬🥵Majdnem lebuktam🤣🤣😂 IG:fanniburjan 2024, Július
Anonim
Tudjon meg itt egy rendkívül fontos érzékelőt!
Tudjon meg itt egy rendkívül fontos érzékelőt!

Hogyan lehet megtudni a víztartály vízszintjét? Az ilyen típusú dolgok nyomon követéséhez használhat nyomásérzékelőt. Ez nagyon hasznos berendezés általában az ipari automatizáláshoz. Ma az MPX nyomásérzékelők pontos családjáról fogunk beszélni, kifejezetten a nyomásméréshez. Bemutatom az MPX5700 nyomásérzékelőt, és elvégezek egy mintaszerelést az ESP WiFi LoRa 32 használatával.

Ma nem fogom használni a LoRa kommunikációt az áramkörben, sem a WiFi -t, sem a Bluetooth -ot. Azért választottam ezt az ESP32 -t, mert más videókban már megtanítottam a ma tárgyalt összes funkció használatát.

1. lépés: Demonstráció

Demonstráció
Demonstráció
Demonstráció
Demonstráció

2. lépés: Felhasznált erőforrások

Felhasznált források
Felhasznált források

• MPX5700DP nyomáskülönbség -érzékelő

• 10k potenciométer (vagy trimpot)

• Protoboard

• Csatlakozó vezetékek

• USB kábel

• ESP WiFi LoRa 32

• Légkompresszor (opcionális)

3. lépés: Miért kell mérni a nyomást?

Miért kell mérni a nyomást?
Miért kell mérni a nyomást?

• Számos olyan alkalmazás létezik, ahol a nyomás fontos szabályozási változó.

• Használhatunk pneumatikus vagy hidraulikus vezérlőrendszereket.

• Orvosi műszerek.

• Robotika.

• Ipari vagy környezeti folyamatok ellenőrzése.

• Szintmérés folyadék- vagy gáztartályokban.

4. lépés: Az MPX nyomásérzékelő család

Az MPX nyomásérzékelő család
Az MPX nyomásérzékelő család

• Nyomásátalakítók elektromos feszültségben.

• Piezo ellenállású érzékelőn alapulnak, ahol a kompressziót az elektromos ellenállás változásává alakítják át.

• Vannak olyan változatok, amelyek képesek kis nyomáskülönbségek (0 és 0,04atm közötti) vagy nagy eltérések (0-10atm) mérésére.

• Több csomagban jelennek meg.

• Mérhetik az abszolút nyomást (a vákuumhoz viszonyítva), a nyomáskülönbséget (a két nyomás különbsége, p1 és p2) vagy a nyomásmérőt (a légköri nyomáshoz viszonyítva).

5. lépés: Az MPX5700DP

Az MPX5700DP
Az MPX5700DP
Az MPX5700DP
Az MPX5700DP

• Az 5700 -as sorozat abszolút, differenciál- és mérőérzékelőket tartalmaz.

• Az MPX5700DP 0 és 700 kPa (körülbelül 7atm) nyomáskülönbséget tud mérni.

• A kimeneti feszültség 0,2 V és 4,7 V között változik.

• Teljesítménye 4,75 V és 5,25 V között van

6. lépés: A demonstrációhoz

A tüntetésre
A tüntetésre

• Ezúttal nem végezünk gyakorlati alkalmazást ezzel az érzékelővel; csak felszereljük, és néhány mérést végzünk demonstrációként.

• Ehhez közvetlen légkompresszorral nyomást gyakorolunk a nagynyomású bemenetre (p1), és megkapjuk a különbséget a helyi légköri nyomáshoz (p2) viszonyítva.

• Az MPX5700DP egyirányú érzékelő, ami azt jelenti, hogy pozitív különbségeket mér, ahol a p1 -nek mindig nagyobbnak vagy egyenlőnek kell lennie a p2 -nél.

• p1> p2 és a különbség p1 - p2 lesz

• Kétirányú differenciálérzékelők képesek értékelni a negatív és pozitív különbségeket.

• Bár ez csak bemutató jellegű, az itt leírt elveket könnyen használhatjuk például a kompresszor által működtetett légtartályban lévő nyomás szabályozására.

7. lépés: Az ESP ADC kalibrálása

Az ESP ADC kalibrálása
Az ESP ADC kalibrálása
Az ESP ADC kalibrálása
Az ESP ADC kalibrálása
Az ESP ADC kalibrálása
Az ESP ADC kalibrálása

• Mivel tudjuk, hogy az ESP analóg-digitális átalakítása nem teljesen lineáris, és SoC-nként változhat, kezdjük azzal, hogy egyszerűen meghatározzuk viselkedését.

• Potenciométer és multiméter segítségével megmérjük az AD -ra alkalmazott feszültséget, és hozzákapcsoljuk a jelzett értékhez.

• Egy egyszerű programmal az AD olvasására és az információ táblázatba gyűjtésére sikerült meghatározni a viselkedésének görbéjét.

8. lépés: A nyomás kiszámítása

A nyomás kiszámítása
A nyomás kiszámítása
A nyomás kiszámítása
A nyomás kiszámítása

• Bár a gyártó biztosítja számunkra a funkciót az alkatrész viselkedésével, mindig tanácsos kalibrációt végezni, amikor mérésekről beszélünk.

• Mivel azonban csak bemutató jellegű, közvetlenül az adatlapon található funkciót fogjuk használni. Ehhez úgy fogjuk manipulálni, hogy az ADC -érték függvényében nyomást gyakoroljunk rá.

* Ne feledje, hogy az ADC -re adott feszültségnek a referenciafeszültségnek a töredékének meg kell egyeznie a teljes ADC által leolvasott ADC értékével. (A javítást figyelmen kívül hagyva)

9. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

• Az érzékelő csatlakoztatásához keresse meg a bemetszést az egyik kapcsán, amely az 1 -es tűt jelzi.

• Innen számolva:

Az 1. érintkező jelkimenetet biztosít (0V -tól 4,7V -ig)

A 2 -es csap a referencia. (GND)

3. csap az áramellátáshoz. (Vs)

• Mivel a jel kimenete 4,7 V, feszültségosztót fogunk használni, hogy a maximális érték 3V3 legyen. Ehhez a potenciométerrel végeztük el a beállítást.

10. lépés: Forráskód

Forráskód
Forráskód
Forráskód
Forráskód

Forráskód: #Include és #defines

// 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 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

Forrás: Globális változók és állandók

SSD1306 kijelző (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

Forráskód: Beállítás ()

void setup () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // soros sorozat kezdeményezése // Inicia o display display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Forráskód: Loop ()

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 (); // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 10 display.setFont (ArialMT_Plain_16); // Escreve no buffer do pressao display.drawString (0, 0, String (int (pressao))) + "kPa"); display.drawString (0, 16, String (pressao * fator_atm) + "atm"); display.drawString (0, 32, karakterlánc (pressao * fator_kgf_cm2) + "kgf/cm2"); // escreve no buffer o 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 display.clear (); // Ajusta vagy 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 (); // transzfer o puffer para o display delay (50); }

Forráskód: Funkció, amely kiszámítja a nyomást kPa -ban

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; }

- KÉPEK

Forráskód: Az AD értéket korrigáló funkció

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 * 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. lépés: Fájlok

Töltse le a fájlokat:

PDF

ÉN NEM

Ajánlott: