Turinys:
- 1 žingsnis: demonstracija
- 2 žingsnis: naudojami ištekliai
- 3 žingsnis: Kodėl matuoti slėgį?
- 4 žingsnis: MPX slėgio jutiklių šeima
- 5 žingsnis: MPX5700DP
- 6 žingsnis: demonstracijai
- 7 žingsnis: ESP ADC kalibravimas
- 8 žingsnis: Slėgio apskaičiavimas
- 9 žingsnis: Surinkimas
- 10 veiksmas: šaltinio kodas
- 11 veiksmas: failai
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Kaip sužinoti vandens lygį vandens rezervuare? Norėdami stebėti tokio tipo dalykus, galite naudoti slėgio jutiklį. Tai labai naudinga įranga pramonės automatizavimui apskritai. Šiandien mes kalbėsime apie šią tikslią MPX slėgio jutiklių šeimą, specialiai slėgio matavimui. Aš supažindinsiu jus su MPX5700 slėgio jutikliu ir atliksiu pavyzdžių surinkimą naudodami ESP WiFi LoRa 32.
Šiandien aš nenaudosiu „LoRa“ryšio grandinėje, nei „WiFi“, nei „Bluetooth“. Tačiau pasirinkau šį ESP32, nes kituose vaizdo įrašuose jau mokiau, kaip naudotis visomis šiandien aptariamomis funkcijomis.
1 žingsnis: demonstracija
2 žingsnis: naudojami ištekliai
• MPX5700DP slėgio skirtumo jutiklis
• 10k potenciometras (arba trimpotas)
• Protoboard
• Prijungimo laidai
• USB kabelis
• „ESP WiFi LoRa 32“
• Oro kompresorius (pasirinktinai)
3 žingsnis: Kodėl matuoti slėgį?
• Yra daug programų, kuriose slėgis yra svarbus valdymo kintamasis.
• Mes galime įtraukti pneumatines arba hidraulines valdymo sistemas.
• Medicininiai prietaisai.
• Robotika.
• Pramonės ar aplinkos procesų kontrolė.
• Lygio matavimas skysčių ar dujų rezervuaruose.
4 žingsnis: MPX slėgio jutiklių šeima
• Jie yra elektros įtampos slėgio keitikliai.
• Jie pagrįsti pjezo varžos jutikliu, kuriame suspaudimas paverčiamas elektros varžos variacija.
• Yra versijų, galinčių išmatuoti nedidelius slėgio skirtumus (nuo 0 iki 0,04 atm) arba didelius svyravimus (nuo 0 iki 10 atm).
• Jie pateikiami keliose pakuotėse.
• Jie gali matuoti absoliutų slėgį (palyginti su vakuumu), slėgio skirtumą (skirtumas tarp dviejų slėgių, p1 ir p2) arba matuoklį (atsižvelgiant į atmosferos slėgį).
5 žingsnis: MPX5700DP
• 5700 serija turi absoliučius, diferencinius ir gabaritinius jutiklius.
• MPX5700DP gali matuoti slėgio skirtumą nuo 0 iki 700 kPa (maždaug 7 atm).
• Išėjimo įtampa kinta nuo 0,2V iki 4,7V.
• Jo galia yra nuo 4,75V iki 5,25V
6 žingsnis: demonstracijai
• Šį kartą praktiškai nesinaudosime šiuo jutikliu; mes jį tik sumontuosime ir atliksime kai kuriuos matavimus kaip demonstraciją.
• Norėdami tai padaryti, mes naudosime tiesioginį oro kompresorių, kad slėgis būtų pasiektas aukšto slėgio įleidimo angoje (p1) ir gautų skirtumą, palyginti su vietiniu atmosferos slėgiu (p2).
• MPX5700DP yra vienpusis 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ų diferenciniai jutikliai, galintys įvertinti neigiamus ir teigiamus skirtumus.
• Nors tai tik demonstravimas, čia esančiais principais galėtume nesunkiai valdyti, pavyzdžiui, slėgį oro rezervuare, kurį maitina šis kompresorius.
7 žingsnis: ESP ADC kalibravimas
• Kadangi žinome, kad ESP analoginis-skaitmeninis konvertavimas nėra visiškai tiesinis ir gali skirtis priklausomai nuo SoC, pradėkime nuo paprasto jo elgesio nustatymo.
• Naudodami potenciometrą ir multimetrą, išmatuosime AD įtampą ir susiesime ją su nurodyta verte.
• Naudodami paprastą programą, skirtą skaityti AD ir surinkti informaciją į lentelę, mums pavyko nustatyti jos elgesio kreivę.
8 žingsnis: Slėgio apskaičiavimas
• Nors gamintojas mums nurodo, kaip veikia sudedamoji dalis, visada patartina atlikti kalibravimą, kai kalbame apie matavimus.
• Tačiau, kadangi tai tik demonstravimas, mes tiesiogiai naudosime duomenų lape esančią funkciją. Šiuo tikslu mes manipuliuosime taip, kad sukeltume spaudimą kaip ADC vertės funkciją.
* Atminkite, kad įtampos dalis, kurią ADC naudoja atskaitos įtampa, turi būti tokia pati, kaip ir ADC, nuskaityta viso ADC. (Neatsižvelgiant į taisymą)
9 žingsnis: Surinkimas
• Norėdami prijungti jutiklį, ieškokite įpjovos viename iš jo gnybtų, rodančių 1 kaištį.
• Skaičiuojant iš ten:
1 kaištis užtikrina signalo išėjimą (nuo 0V iki 4,7V)
2 kaištis yra nuoroda. (GND)
3 kaištis galiai. (Prieš)
• Kadangi signalo išvestis yra 4,7 V, mes naudosime įtampos daliklį, kad didžiausia vertė būtų lygi 3V3. Tam mes sureguliavome potenciometru.
10 veiksmas: šaltinio kodas
Šaltinio kodas: #Įtraukiamas ir #apibrėžtas
// 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 mišinys 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
Šaltinis: Visuotiniai kintamieji ir konstantos
SSD1306 ekranas (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
Šaltinio kodas: sąranka ()
void setup () {pinMode (PIN, INPUT); // pino de leitura analógica Serial.begin (115200); // inicijuoti serijinį // Inicia o display display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}
Šaltinio kodas: Loop ()
void loop () {float medidas = 0.0; // vará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
Šaltinio kodas: 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 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; }
-- VAIZDAI
Šaltinio kodas: funkcija, ištaisanti AD vertę
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 veiksmas: failai
Atsisiųskite failus:
AŠ NE