Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Ako sa môžete dozvedieť o hladine vody v nádrži na vodu? Na monitorovanie tohto druhu vecí môžete použiť snímač tlaku. Toto je vo všeobecnosti veľmi užitočné zariadenie pre priemyselnú automatizáciu. Dnes budeme hovoriť o tejto presnej rodine tlakových senzorov MPX, konkrétne na meranie tlaku. Predstavím vám snímač tlaku MPX5700 a vykonám montáž vzorky pomocou ESP WiFi LoRa 32.
V obvode dnes nebudem používať komunikáciu LoRa, ani WiFi, ani Bluetooth. Rozhodol som sa však pre tento ESP32, pretože som už v iných videách učil používať všetky funkcie, o ktorých dnes diskutujem.
Krok 1: Ukážka
Krok 2: Použité zdroje
• Snímač diferenčného tlaku MPX5700DP
• 10k potenciometer (alebo trimpot)
• Protoboard
• Pripojovacie vodiče
• USB kábel
• ESP WiFi LoRa 32
• Vzduchový kompresor (voliteľné)
Krok 3: Prečo merať tlak?
• Existuje mnoho aplikácií, kde je tlak dôležitou riadiacou veličinou.
• Môžeme zapojiť pneumatické alebo hydraulické riadiace systémy.
• Lekárske prístroje.
• Robotické.
• Riadenie priemyselných alebo environmentálnych procesov.
• Meranie hladiny v nádržiach na kvapalinu alebo plyn.
Krok 4: Rodina tlakových senzorov MPX
• Sú to prevodníky tlaku v elektrickom napätí.
• Sú založené na piezo odporovom senzore, kde je kompresia prevedená na variáciu elektrického odporu.
• Existujú verzie schopné merať malé tlakové rozdiely (od 0 do 0,04 atm) alebo veľké odchýlky (od 0 do 10 atm).
• Sú uvedené vo viacerých balíkoch.
• Môžu merať absolútny tlak (vzhľadom na vákuum), diferenčný tlak (rozdiel medzi dvoma tlakmi, p1 a p2) alebo manometer (vzhľadom na atmosférický tlak).
Krok 5: MPX5700DP
• Séria 5700 je vybavená snímačmi absolútneho, diferenciálneho a meradla.
• MPX5700DP môže merať tlakový rozdiel od 0 do 700 kPa (približne 7 atm).
• Výstupné napätie sa pohybuje od 0,2 V do 4,7 V.
• Jeho výkon je od 4,75V do 5,25V
Krok 6: Na ukážku
• Tentoraz nebudeme vykonávať praktickú aplikáciu pomocou tohto senzora; namontujeme ho a vykonáme niekoľko meraní ako ukážku.
• Na tento účel použijeme priamy vzduchový kompresor na vyvíjanie tlaku na vstupe vysokého tlaku (p1) a získame rozdiel vo vzťahu k miestnemu atmosférickému tlaku (p2).
• MPX5700DP je jednosmerný senzor, čo znamená, že meria kladné rozdiely, kde p1 musí byť vždy väčší alebo rovný p2.
• p1> p2 a rozdiel bude p1 - p2
• Existujú obojsmerné diferenciálne snímače, ktoré dokážu vyhodnotiť negatívne a pozitívne rozdiely.
• Aj keď je to len ukážka, princípy by sme tu mohli ľahko použiť napríklad na ovládanie tlaku vo vzduchojeme, poháňanom týmto kompresorom.
Krok 7: Kalibrácia ESP ADC
• Pretože vieme, že analógovo-digitálna konverzia ESP nie je úplne lineárna a môže sa líšiť od jedného SoC k druhému, začnime jednoduchým určením jeho správania.
• Potenciometrom a multimetrom zmeráme napätie aplikované na AD a priradíme ho k uvedenej hodnote.
• S jednoduchým programom na čítanie AD a zhromažďovanie informácií v tabuľke sme boli schopní určiť krivku jeho správania.
Krok 8: Výpočet tlaku
• Aj keď nám výrobca poskytuje funkciu so správaním komponentu, vždy je vhodné vykonať kalibráciu, keď hovoríme o meraní.
• Pretože však ide len o ukážku, budeme priamo používať funkciu uvedenú v technickom liste. Za týmto účelom s ním budeme manipulovať spôsobom, ktorý nám dáva tlak ako funkciu hodnoty ADC.
* Nezabudnite, že zlomok napätia aplikovaného na ADC referenčným napätím musí mať rovnakú hodnotu ako ADC načítané celkovým ADC. (Ignorovanie opravy)
Krok 9: Zostavenie
• Ak chcete senzor pripojiť, vyhľadajte zárez na jednej z jeho svoriek, ktorá označuje kolík 1.
• Počítanie odtiaľ:
Pin 1 poskytuje výstup signálu (od 0V do 4,7V)
Pin 2 je referenčný. (GND)
Pin 3 pre napájanie. (Vs)
• Keďže výstup signálu je 4,7 V, použijeme delič napätia tak, aby maximálna hodnota bola ekvivalentná 3 V3. Za týmto účelom sme vykonali úpravu potenciometrom.
Krok 10: Zdrojový kód
Zdrojový kód: #Zahrňuje a #definuje
// 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 vyberá GPIO: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST vyvíja a podporuje softvér
Zdroj: Globálne premenné a konštanty
Displej 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; // konvertor kgf/cm2
Zdrojový kód: Nastavenie ()
void setup () {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}
Zdrojový kó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 // initia a coleta de amostras do ADC for (int i = 0; i
Zdrojový kód: Funkcia, ktorá vypočítava tlak v 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ÍVEES D erro) návrat ((corrigeMedida (medida) / 3,3) - 0,04) / 0,0012858; }
-- SNÍMKY
Zdrojový kód: Funkcia, ktorá opravuje hodnotu 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 * x * x + 5,235532597676e-10 * x * x * x + -2,020362975028e-13 * x * x * x * x + 3,809807883001e-17 * x * x * x * x * x * x + -2,896158699016e-21 * x * x * x * x * x * x; }
Krok 11: Súbory
Stiahnite si súbory:
INO