Sužinokite čia apie labai svarbų jutiklį !: 11 žingsnių

Sužinokite čia apie labai svarbų jutiklį !: 11 žingsnių

Turinys:

Anonim

Kaip galite sužinoti apie vandens lygį vandens rezervuare? Norėdami stebėti šio tipo dalykus, galite naudoti slėgio jutiklį. Tai yra labai naudinga pramoninės automatikos įranga. Šiandien mes kalbėsime apie šią tikslią MPX slėgio jutiklių šeimą, ypač slėgio matavimui. Aš jums pristatysiu slėgio jutiklį MPX5700 ir atliksiu mėginių rinkinį ESP WiFi LoRa 32 pagalba.

Šiuo metu aš nenaudosiu „LoRa“ ryšio, nei „WiFi“, nei „Bluetooth“. Tačiau pasirinkau šią ESP32, nes jau kitose vaizdo medžiagose aš mokiau, kaip naudotis visomis šiandien aptariamomis savybėmis.

Prekės:

1 žingsnis: demonstravimas

2 veiksmas: ištekliai

• MPX5700DP diferencinio slėgio jutiklis

• 10 k potenciometras (arba trimpot)

• Protoboard

• Prijungimo laidai

• USB kabelis

• ESP WiFi LoRa 32

• Oro kompresorius (pasirinktinai)

3 žingsnis: Kodėl reikia matuoti slėgį?

• Yra daug programų, kuriose slėgis yra svarbus kontrolinis kintamasis.

• Galime įtraukti pneumatines arba hidraulines valdymo sistemas.

• Medicinos prietaisai.

• Robotika.

• Pramoninių ar aplinkos procesų kontrolė.

• Lygio matavimas skysčio ar dujų rezervuaruose.

4 žingsnis: slėgio jutiklių MPX šeima

• Tai yra elektros įtampos jutikliai.

• Jie yra pagrįsti pjezo varžos jutikliu, kur suspaudimas paverčiamas elektrinės varžos variacija.

• Yra versijų, galinčių matuoti nedidelius slėgio skirtumus (nuo 0 iki 0,04 m) arba didelius svyravimus (nuo 0 iki 10 m).

• Jie rodomi keliuose paketuose.

• Jie gali išmatuoti absoliutų slėgį (palyginti su vakuumu), slėgio skirtumą (skirtumą tarp dviejų slėgių, p1 ir p2) arba gabaritą (palyginti su atmosferos slėgiu).

5 žingsnis: MPX5700DP

• 5700 serija turi absoliučius, diferencinius ir gabaritinius jutiklius.

• MPX5700DP gali matuoti diferencinį slėgį nuo 0 iki 700 kPa (maždaug 7 m).

• Išėjimo įtampa svyruoja nuo 0,2 V iki 4,7 V.

• Jo galia yra nuo 4,75V iki 5,25 V

6 žingsnis: demonstravimui

• Šį kartą mes nenaudosime praktinio pritaikymo naudojant šį jutiklį; mes jį montuosime ir atliksime tik kai kuriuos matavimus.

• Šiam tikslui naudosime tiesioginį oro kompresorių spaudimui aukšto slėgio įvade (p1) ir gauname skirtumą, palyginti su vietiniu atmosferos slėgiu (p2).

• MPX5700DP yra vienakryptis jutiklis, o tai reiškia, kad jis matuoja teigiamus skirtumus, kai p1 visada turi būti didesnis arba lygus p2.

• p1> p2 ir skirtumas bus p1 - p2

• Yra dviejų krypčių diferencialiniai jutikliai, galintys įvertinti neigiamus ir teigiamus skirtumus.

• Nors tai tik demonstracija, čia galime lengvai naudoti šiuos principus, kad galėtume kontroliuoti, pavyzdžiui, slėgį oro rezervuare, maitinamą šio kompresoriaus.

7 žingsnis: ESP ADC kalibravimas

• Kadangi žinome, kad ESP analoginis-skaitmeninis konvertavimas nėra visiškai linijinis ir gali skirtis nuo vieno SoC, pradėkime paprastu jo elgesio nustatymu.

• Naudojant potenciometrą ir multimetrą, matuosime įtampą, taikomą AD, ir susieti ją su nurodyta verte.

• Paprasta programa, skirta skaityti AD ir surinkti informaciją lentelėje, galėjo nustatyti jos elgesio kreivę.

8 žingsnis: Slėgio apskaičiavimas

• Nors gamintojas mums suteikia funkciją su komponento elgesiu, visada rekomenduojama atlikti kalibravimą, kai kalbame apie matavimų atlikimą.

• Tačiau, kadangi tai tik demonstracija, mes tiesiogiai panaudosime duomenų lape esančią funkciją. Tam mes manipuliuosime tokiu būdu, kuris suteikia mums spaudimą kaip ADC vertės funkciją.

* Atminkite, kad įtampos dalis, kurią ADC taiko etaloninė įtampa, turi turėti tokią pačią vertę, kaip ir ADC, skaitomą pagal bendrą ADC. (Nepaisoma pataisos)

9 žingsnis: Asamblėja

• Norėdami prijungti jutiklį, ieškokite vienos iš jos gnybtų, nurodantį 1 kaištį.

• skaičiavimas iš ten:

1 kaištis suteikia signalą (nuo 0V iki 4,7 V)

2 nuoroda yra nuoroda. (GND)

Piniginė 3. (Vs)

• Kadangi signalo išėjimas yra 4,7 V, naudosime įtampos skirstytuvą, kad maksimali vertė būtų lygi 3V3. Tam mes nustatėme potenciometrą.

10 veiksmas: šaltinio kodas

Šaltinio kodas: #Includes ir #defines

// Bibliotecas para utilização parodo „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: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve ser ajustado por programinė įranga

Šaltinis: pasauliniai kintamieji ir konstantos

SSD1306 ekranas (0x3c, SDA, SCL, RST); // „Instanciando e ajustando os pinos do objeto“ rodymas

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

Šaltinio kodas: sąranka ()

negaliojantis nustatymas ()

{pinMode (PIN, INPUT); // pino de leitura analógica Serial.begin (115200); // iniciando serijos // Inicia o rodyti display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Šaltinis: kilpa ()

tuščia kilpa ()

{float medidas = 0,0; // variável para manipuliacija, nes medidas plūdės pressao = 0,0; // variável para armazenar o valor da pressão // inicia a coleta de amostras ADC (int i = 0; i <amostras; i ++) {medidas = medidas + plūdė (analoginisRead (pin)); } medidas = (medidas / float (amostras)); // Tira a média das amostras pressao = calculaPressao (medidas); // Apskaičiuoti pr k rsą kPa // Išorės ir (arba) įprasminimo ir išplaukimo į nacionalinę teisę 5 poskyris, exibe tela inicial, jei (millis ()> (5000)) // se está ligado a mais que 5 segundos {// Limpa o buferis rodo display.clear (); // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta fonte para Arial 10 display.setFont (ArialMT_Plain_16); // Escreve nėra buferio rodyti pressao display.drawString (0, 0, String (int (pressao)) + "kPa"); display.drawString (0, 16, eilutė (pressao * fator_atm) + "atm"); display.drawString (0, 32, eilutė (pressao * fator_kgf_cm2) + "kgf / cm2"); // escreve nėra buferio o valor do ADC display.drawString (0, 48, "adc:" + eilutė (int (medidas))); } other // se está ligado a menos de 5 segundos,exibe tela inicial {// limpa o buferis rodo display.clear (); // Ajusta o alinhamento para centralizado display.setTextAlignment (TEXT_ALIGN_CENTER); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // escreve nėra buferio display.drawString (64, 0, „Sensor Pressão“); // escreve nėra buferio display.drawString (64, 18, „Diferencial“); // ajusta a fonte para Arial 10 display.setFont (ArialMT_Plain_10); // escreve nėra buferio display.drawString (64, 44, „ESP-WiFi-Lora“); } display.display (); // perkėlimas o buferis para o ekrane (50); }

Šaltinis: funkcija, kuri apskaičiuoja slėgį 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 do do do do do do do do do do do do do do de // e NÃO LEVA EM CONSIDERAÇÃO OS POSSÍVEIS DESVIOS DO COMPONENTE (erro) grąžinimas ((CorrigeMedida) (medida) / 3,3) - 0,04) / 0,0012858; }

-- VAIZDAI

Šaltinis: funkcija, kuri ištaiso AD vertę

float corrigeMedida (plūduriuojantis x) {

/ * Eu função foi obtida através da relação entre a tensão aplicada ne AD e valor lido * / grąža 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 veiksmas: failai

Atsisiųskite failus:

PDF

AŠ NE