Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Kako možete saznati o razini vode u spremniku za vodu? Za nadzor ove vrste stvari možete koristiti senzor tlaka. Ovo je općenito vrlo korisna oprema za industrijsku automatizaciju. Danas ćemo govoriti o ovoj obitelji obitelji MPX senzora tlaka, posebno za mjerenje tlaka. Upoznat ću vas sa senzorom pritiska MPX5700 i izvršiti montažu uzorka pomoću ESP WiFi LoRa 32.
Danas u krugu neću koristiti LoRa komunikaciju, niti WiFi niti Bluetooth. Međutim, odlučio sam se za ovaj ESP32 jer sam već u drugim videozapisima naučio kako koristiti sve značajke o kojima danas govorim.
Korak 1: Demonstracija
Korak 2: Korišteni resursi
• MPX5700DP osjetnik diferencijalnog tlaka
• 10k potenciometar (ili trimpot)
• Protoboard
• Priključne žice
• USB kabl
• ESP WiFi LoRa 32
• Zračni kompresor (opcionalno)
Korak 3: Zašto mjeriti tlak?
• Postoje brojne primjene gdje je tlak važna kontrolna varijabla.
• Možemo uključiti pneumatske ili hidraulične sustave upravljanja.
• Medicinski instrumenti.
• Robotika.
• Kontrola industrijskih ili okolišnih procesa.
• Mjerenje razine u spremnicima tekućine ili plina.
Korak 4: MPX obitelj senzora tlaka
• Oni su pretvarači tlaka u električnom naponu.
• Temelje se na piezo otpornom senzoru, gdje se kompresija pretvara u varijaciju električnog otpora.
• Postoje inačice sposobne mjeriti male razlike tlaka (od 0 do 0,04 atm) ili velike varijacije (od 0 do 10 atm).
• Pojavljuju se u više paketa.
• Mogu mjeriti apsolutni tlak (u odnosu na vakuum), diferencijalni tlak (razlika između dva tlaka, p1 i p2) ili mjerač (u odnosu na atmosferski tlak).
Korak 5: MPX5700DP
• Serija 5700 ima apsolutne, diferencijalne i mjerne senzore.
• MPX5700DP može mjeriti diferencijalni tlak od 0 do 700kPa (približno 7atm).
• Izlazni napon varira od 0,2V do 4,7V.
• Snaga mu je od 4,75V do 5,25V
Korak 6: Za demonstraciju
• Ovaj put nećemo raditi praktičnu primjenu pomoću ovog senzora; samo ćemo ga montirati i izvršiti neka mjerenja kao demonstraciju.
• Za to ćemo koristiti izravni kompresor zraka za primjenu tlaka na ulazu pod visokim tlakom (p1) i dobiti razliku u odnosu na lokalni atmosferski tlak (p2).
• MPX5700DP je jednosmjerni senzor, što znači da mjeri pozitivne razlike gdje p1 uvijek mora biti veći ili jednak p2.
• p1> p2 i razlika će biti p1 - p2
• Postoje dvosmjerni diferencijalni senzori koji mogu ocijeniti negativne i pozitivne razlike.
• Iako je to samo demonstracija, ovdje bismo lako mogli koristiti načela za kontrolu, na primjer, tlaka u spremniku zraka, koji pokreće ovaj kompresor.
Korak 7: Kalibriranje ESP ADC -a
• Budući da znamo da analogno-digitalna pretvorba ESP-a nije potpuno linearna i da se može razlikovati od jednog do drugog SoC-a, počnimo s jednostavnim određivanjem njegovog ponašanja.
• Pomoću potenciometra i multimetra izmjerit ćemo napon koji se primjenjuje na AD i povezati ga s naznačenom vrijednošću.
• Jednostavnim programom za čitanje AD -a i prikupljanje podataka u tablici uspjeli smo odrediti krivulju njegovog ponašanja.
Korak 8: Izračunavanje tlaka
• Iako nam proizvođač daje funkciju s ponašanjem komponente, uvijek je preporučljivo izvršiti kalibraciju kada govorimo o mjerenjima.
• Međutim, budući da je to samo demonstracija, izravno ćemo koristiti funkciju koja se nalazi u podatkovnom listu. Za to ćemo manipulirati na način koji nam daje pritisak u funkciji vrijednosti ADC -a.
* Upamtite da dio napona koji na referentni napon primjenjuje na ADC mora imati istu vrijednost kao i ADC koji čita ukupni ADC. (Zanemarujući ispravak)
Korak 9: Montaža
• Za spajanje senzora potražite zarez na jednom od njegovih terminala koji označava pin 1.
• Od tada računajući:
Pin 1 omogućuje izlaz signala (od 0V do 4.7V)
Pin 2 je referenca. (GND)
Pin 3 za napajanje. (Vs)
• Budući da je izlazni signal 4,7 V, koristit ćemo razdjelnik napona tako da je maksimalna vrijednost ekvivalentna 3V3. Za to smo podešavanje izvršili pomoću potenciometra.
Korak 10: Izvorni kod
Izvorni kod: #Uključuje i #definira
// 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 određuje GPIO -ove: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve serv ajustado por software
Izvor: Globalne varijable i konstante
SSD1306 zaslon (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 converão para atmosferas const float fator_bar = 0,01; // fator de converão para bar const float fator_kgf_cm2 = 0.0101971621; // fator de razgovaão kgf/cm2
Izvorni kod: Setup ()
void setup () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // iniciando serijski // Inicia o display display.init (); display.flipScreenVertical (); // Vira a tela verticalmente}
Izvorni kod: Loop ()
void loop () {float medidas = 0.0; // variável para manipular as medidas float pressao = 0.0; // varijaável para armazenar o valor da pressão // inicia a coleta de amostras do ADC for (int i = 0; i
Izvorni kod: Funkcija koja izračunava tlak u 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 pogreška) return ((corrigeMedida (medida) / 3.3) - 0.04) / 0.0012858; }
- SLIKE
Izvorni kod: Funkcija koja ispravlja AD vrijednost
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; }
Korak 11: Datoteke
Preuzmite datoteke:
INO