Obsah:

Zde se dozvíte o mimořádně důležitém senzoru !: 11 kroků
Zde se dozvíte o mimořádně důležitém senzoru !: 11 kroků

Video: Zde se dozvíte o mimořádně důležitém senzoru !: 11 kroků

Video: Zde se dozvíte o mimořádně důležitém senzoru !: 11 kroků
Video: Útěk z iluze: Bernardo Kastrup odhaluje realitu 2024, Listopad
Anonim
Zde se dozvíte o mimořádně důležitém senzoru!
Zde se dozvíte o mimořádně důležitém senzoru!

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

Demonstrace
Demonstrace
Demonstrace
Demonstrace

Krok 2: Použité zdroje

Použité zdroje
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?

Proč měřit tlak?
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

Rodina tlakových senzorů MPX
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

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

Pro demonstraci
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

Kalibrace ESP ADC
Kalibrace ESP ADC
Kalibrace ESP ADC
Kalibrace ESP ADC
Kalibrace ESP ADC
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

Výpočet tlaku
Výpočet tlaku
Výpočet tlaku
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í

Shromáždění
Shromáždění
Shromáždění
Shromáždění

• 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
Zdrojový kód
Zdrojový kód
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 (5000)) // se zobrazí více než 5 segund {// Limpa o buffer do display display.clear (); // iusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // iusta a fonte para Arial 10 display.setFont (ArialMT_Plain_16); // Escreve no buffer do display a pressao 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"); // escreve no buffer or valor do ADC display.drawString (0, 48, "adc:" + String (int (medidas))); } else // se zobrazí více než 5 položek, zobrazí se a zobrazí se {// limpa nebo buffer do display display.clear (); // Další informace o centralizovaném zobrazení.setTextAlignment (TEXT_ALIGN_CENTER); // iusta 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"); // iusta a fonte para Arial 10 display.setFont (ArialMT_Plain_10); // escreve no buffer display.drawString (64, 44, "ESP-WiFi-Lora"); } display.display (); // převod o vyrovnávací paměť para o zpoždění zobrazení (50); }

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:

PDF

INO

Doporučuje: