Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Jak se můžete dozvědět o vodní hladině ve vodní nádrži? Chcete -li monitorovat tento typ věcí, můžete použít tlakový senzor. Toto je obecně velmi užitečné zařízení pro průmyslovou automatizaci. Dnes budeme hovořit o této přesné rodině tlakových senzorů MPX, konkrétně pro měření tlaku. Seznámím vás s tlakovým senzorem MPX5700 a provedu montáž vzorku pomocí ESP WiFi LoRa 32.
Komunikaci LoRa v okruhu dnes používat nebudu, ani WiFi, ani Bluetooth. Rozhodl jsem se však pro tento ESP32, protože jsem již v jiných videích učil, jak používat všechny funkce, o kterých dnes diskutuji.
Krok 1: Ukázka
Krok 2: Použité zdroje
• Snímač diferenčního tlaku MPX5700DP
• 10k potenciometr (nebo trimpot)
• Protoboard
• Připojovací vodiče
• USB kabel
• ESP WiFi LoRa 32
• Vzduchový kompresor (volitelně)
Krok 3: Proč měřit tlak?
• Existuje mnoho aplikací, kde je tlak důležitou regulační veličinou.
• Můžeme zapojit pneumatické nebo hydraulické řídicí systémy.
• Lékařské přístroje.
• Robotika.
• Řízení průmyslových nebo environmentálních procesů.
• Měření hladiny v nádržích na kapalinu nebo plyn.
Krok 4: Rodina tlakových senzorů MPX
• Jsou to snímače tlaku v elektrickém napětí.
• Jsou založeny na piezo odporovém senzoru, kde je komprese převedena na změnu elektrického odporu.
• Existují verze schopné měřit malé tlakové rozdíly (od 0 do 0,04 atm) nebo velké variace (od 0 do 10 atm).
• Objevují se ve více balíčcích.
• Mohou měřit absolutní tlak (ve vztahu k vakuu), diferenční tlak (rozdíl mezi dvěma tlaky, p1 a p2) nebo manometr (vzhledem k atmosférickému tlaku).
Krok 5: MPX5700DP
• Řada 5700 je vybavena absolutními, diferenciálními a měřicími senzory.
• MPX5700DP může měřit tlakový rozdíl od 0 do 700 kPa (přibližně 7 atm).
• Výstupní napětí se pohybuje od 0,2 V do 4,7 V.
• Jeho výkon je od 4,75V do 5,25V
Krok 6: Pro demonstraci
• Tentokrát nebudeme dělat praktickou aplikaci pomocí tohoto senzoru; pouze jej namontujeme a provedeme některá měření jako ukázku.
• K tomu použijeme přímý vzduchový kompresor k vyvíjení tlaku na vysokotlakém vstupu (p1) a získáme rozdíl ve vztahu k místnímu atmosférickému tlaku (p2).
• MPX5700DP je jednosměrný snímač, což znamená, že měří kladné rozdíly, kde p1 musí být vždy větší nebo rovno p2.
• p1> p2 a rozdíl bude p1 - p2
• Existují obousměrné diferenciální senzory, které dokážou vyhodnotit negativní a pozitivní rozdíly.
• Přestože se jedná pouze o ukázku, zde bychom mohli snadno použít principy k ovládání například tlaku ve vzduchojemu, poháněném tímto kompresorem.
Krok 7: Kalibrace ESP ADC
• Protože víme, že analogově-digitální převod ESP není zcela lineární a může se u jednotlivých SoC lišit, začněme jednoduchým určením jeho chování.
• Pomocí potenciometru a multimetru změříme napětí přivedené na AD a přiřadíme jej k uvedené hodnotě.
• Pomocí jednoduchého programu pro čtení AD a shromažďování informací v tabulce jsme byli schopni určit křivku jejího chování.
Krok 8: Výpočet tlaku
• Přestože nám výrobce poskytuje funkci s chováním součásti, je vždy vhodné provést kalibraci, když mluvíme o měření.
• Protože se však jedná pouze o ukázku, použijeme přímo funkci nalezenou v datovém listu. Za tímto účelem s ním budeme manipulovat způsobem, který nám dává tlak jako funkci hodnoty ADC.
* Pamatujte, že zlomek napětí aplikovaného na ADC referenčním napětím musí mít stejnou hodnotu jako ADC načtené celkovým ADC. (Ignorování opravy)
Krok 9: Sestavení
• Chcete -li připojit senzor, vyhledejte zářez na jednom z jeho vývodů, který označuje pin 1.
• Počítání odtud:
Pin 1 poskytuje výstup signálu (od 0V do 4,7V)
Pin 2 je referenční. (GND)
Pin 3 pro napájení. (Vs)
• Protože výstup signálu je 4,7 V, použijeme dělič napětí tak, aby maximální hodnota byla ekvivalentní 3 V3. Za tímto účelem jsme provedli úpravu potenciometrem.
Krok 10: Zdrojový kód
Zdrojový kód: #Zahrnuje 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 vybírá GPIO: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve ser ajustado por software
Zdroj: Globální proměnné a konstanty
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; // převaděč kgf/cm2
Zdrojový kód: Nastavení ()
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 // inicia a coleta de amostras do ADC for (int i = 0; i
Zdrojový kód: Funkce, která vypočítává 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: Funkce, která 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: Soubory
Stáhnout soubory:
INO