Kazalo:

Več o izjemno pomembnem senzorju !: 11 korakov
Več o izjemno pomembnem senzorju !: 11 korakov

Video: Več o izjemno pomembnem senzorju !: 11 korakov

Video: Več o izjemno pomembnem senzorju !: 11 korakov
Video: Эти вещи крадут деньги из дома: избавьтесь от них прямо сейчас! Нельзя хранить и держать предметы 2024, November
Anonim
Tu se naučite o izjemno pomembnem senzorju!
Tu se naučite o izjemno pomembnem senzorju!

Kako lahko ugotovite nivo vode v rezervoarju za vodo? Za spremljanje te vrste stvari lahko uporabite senzor tlaka. To je na splošno zelo uporabna oprema za industrijsko avtomatizacijo. Danes se bomo pogovarjali o tej natančni družini senzorjev tlaka MPX, posebej za merjenje tlaka. Predstavila vam bom senzor tlaka MPX5700 in izvedla vzorčni sklop z uporabo ESP WiFi LoRa 32.

Danes v vezju ne bom uporabljal komunikacije LoRa, niti WiFi niti Bluetooth. Vendar sem se odločil za ta ESP32, ker sem že v drugih videoposnetkih učil, kako uporabljati vse funkcije, o katerih govorim danes.

1. korak: demonstracija

Demonstracija
Demonstracija
Demonstracija
Demonstracija

2. korak: Uporabljeni viri

Uporabljeni viri
Uporabljeni viri

• Senzor diferenčnega tlaka MPX5700DP

• 10k potenciometer (ali trimpot)

• Protoboard

• Priključne žice

• USB kabel

• ESP WiFi LoRa 32

• Zračni kompresor (neobvezno)

3. korak: Zakaj meriti tlak?

Zakaj meriti tlak?
Zakaj meriti tlak?

• Obstajajo številne aplikacije, kjer je tlak pomembna krmilna spremenljivka.

• Vključujemo lahko pnevmatske ali hidravlične krmilne sisteme.

• medicinski instrumenti.

• Robotika.

• Nadzor industrijskih ali okoljskih procesov.

• Merjenje nivoja v rezervoarjih za tekočino ali plin.

4. korak: Družina tlačnih senzorjev družine MPX

Družina senzorjev tlaka MPX
Družina senzorjev tlaka MPX

• So pretvorniki tlaka v električni napetosti.

• Temeljijo na piezo upornem senzorju, kjer se stiskanje pretvori v variacijo električnega upora.

• Obstajajo različice, ki lahko merijo majhne razlike v tlaku (od 0 do 0,04 atm) ali velike variacije (od 0 do 10 atm).

• Pojavljajo se v več paketih.

• Lahko merijo absolutni tlak (glede na vakuum), diferenčni tlak (razlika med dvema tlakoma, p1 in p2) ali merilnik (glede na atmosferski tlak).

5. korak: MPX5700DP

MPX5700DP
MPX5700DP
MPX5700DP
MPX5700DP

• Serija 5700 ima absolutne, diferencialne in merilne senzorje.

• MPX5700DP lahko meri diferenčni tlak od 0 do 700kPa (približno 7atm).

• Izhodna napetost se giblje od 0,2 V do 4,7 V.

• Njegova moč je od 4,75 V do 5,25 V

6. korak: Za predstavitev

Za demonstracijo
Za demonstracijo

• Tokrat s tem senzorjem ne bomo izvajali praktične uporabe; le montirali ga bomo in kot demonstracijo izvedli nekaj meritev.

• V ta namen bomo uporabili direktni zračni kompresor za izvajanje tlaka na vhodu visokega tlaka (p1) in dobili razliko glede na lokalni atmosferski tlak (p2).

• MPX5700DP je enosmerni senzor, kar pomeni, da meri pozitivne razlike, kjer mora biti p1 vedno večji ali enak p2.

• p1> p2 in razlika bo p1 - p2

• Obstajajo dvosmerni diferencialni senzorji, ki lahko ocenijo negativne in pozitivne razlike.

• Čeprav gre le za predstavitev, bi lahko tukaj z lahkoto uporabili načela za nadzor, na primer, tlaka v rezervoarju za zrak, ki ga poganja ta kompresor.

7. korak: Umerjanje ESP ADC

Umerjanje ADC -ja ESP
Umerjanje ADC -ja ESP
Umerjanje ADC -ja ESP
Umerjanje ADC -ja ESP
Umerjanje ADC -ja ESP
Umerjanje ADC -ja ESP

• Ker vemo, da analogno-digitalna pretvorba ESP ni povsem linearna in se lahko razlikuje od enega do drugega SoC, začnimo s preprosto določitvijo njegovega obnašanja.

• S potenciometrom in multimetrom bomo izmerili napetost, ki je nanesena na AD, in jo povezali z navedeno vrednostjo.

• S preprostim programom za branje AD in zbiranje podatkov v tabelo smo lahko določili krivuljo njegovega obnašanja.

8. korak: Izračun tlaka

Izračun tlaka
Izračun tlaka
Izračun tlaka
Izračun tlaka

• Čeprav nam proizvajalec zagotavlja funkcijo obnašanja komponente, je vedno priporočljivo izvesti kalibracijo, ko govorimo o meritvah.

• Ker pa gre le za predstavitev, bomo neposredno uporabili funkcijo v podatkovnem listu. Za to bomo z njim manipulirali na način, ki nam daje pritisk kot funkcijo vrednosti ADC.

* Ne pozabite, da mora imeti del napetosti, ki se na referenčno napetost nanaša na ADC, isto vrednost kot ADC, ki ga odčita skupni ADC. (Brez upoštevanja popravka)

9. korak: Montaža

Montaža
Montaža
Montaža
Montaža

• Za priključitev senzorja poiščite zarezo na enem od njegovih priključkov, ki označuje pin 1.

• Od tam štejemo:

Pin 1 zagotavlja izhod signala (od 0V do 4.7V)

Pin 2 je referenca. (GND)

Pin 3 za napajanje. (Vs)

• Ker je izhodni signal 4,7 V, bomo uporabili delilnik napetosti, tako da je največja vrednost enakovredna 3V3. Za to smo naredili prilagoditev s potenciometrom.

10. korak: izvorna koda

Izvorna koda
Izvorna koda
Izvorna koda
Izvorna koda

Izvorna koda: #Vključuje in #opredeljuje

// Bibliotecas para utilizationçã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 določa GPIO -je: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve serv a por por software

Vir: Globalne spremenljivke in konstante

Zaslon 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 pogovorão para atmosferas const float fator_bar = 0,01; // fator de pogovorão para bar const float fator_kgf_cm2 = 0,0101971621; // fator de pogovorão kgf/cm2

Izvorna koda: Setup ()

void setup () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // iniciando serijsko // Inicia o display display.init (); display.flipScreenVertical (); // Vira a tela verticalmente}

Izvorna koda: Loop ()

void loop () {float medidas = 0.0; // variável para manipular as medidas float pressao = 0.0; // variaável para armazenar o valor da pressão // inicia a coleta de amostras do ADC for (int i = 0; i (5000)) // se prikaže za 5 sekund {// Limpa o buffer do display display.clear (); // ajusta o alinhamento za esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta 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"); // brez vmesnega pomnilnika ali hrabrosti do ADC display.drawString (0, 48, "adc:" + String (int (medidas))); } else // se prikaže le 5 sekund, prikažete telo inicialno {// limpa o vmesnem pomnilniku za prikaz display.clear (); // Nastavitev ali dodajanje parametrov centralizacije zaslona.setTextAlignment (TEXT_ALIGN_CENTER); // ajusta 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"); // ajusta a fonte para Arial 10 display.setFont (ArialMT_Plain_10); // izklopi brez vmesnega prikaza.drawString (64, 44, "ESP-WiFi-Lora"); } display.display (); // prenos o medpomnilniku para o o zakasnitvi prikaza (50); }

Izvorna koda: funkcija, ki izračuna 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ÍVEIS DOS napaka) return ((corrigeMedida (medida) / 3.3) - 0,04) / 0,0012858; }

- SLIKE

Izvorna koda: funkcija, ki popravi vrednost 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 * 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. korak: Datoteke

Prenesite datoteke:

PDF

JAZ NE

Priporočena: