Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Hur kan du ta reda på vattennivån i en vattentank? För att övervaka den här typen av saker kan du använda en trycksensor. Detta är mycket användbar utrustning för industriell automatisering i allmänhet. Idag ska vi prata om just denna familj av MPX -trycksensorer, speciellt för tryckmätning. Jag ska presentera dig för trycksensorn MPX5700 och utföra en provmontering med ESP WiFi LoRa 32.
Jag kommer inte att använda LoRa -kommunikation i kretsen idag, varken WiFi eller Bluetooth. Jag valde dock denna ESP32 eftersom jag redan i andra videor lärde mig att använda alla funktioner som jag diskuterar idag.
Steg 1: Demonstration
Steg 2: Resurser som används
• MPX5700DP differenstrycksensor
• 10k potentiometer (eller trimpot)
• Protoboard
• Anslutningskablar
• USB-kabel
• ESP WiFi LoRa 32
• Luftkompressor (tillval)
Steg 3: Varför mäta tryck?
• Det finns många applikationer där tryck är en viktig kontrollvariabel.
• Vi kan involvera pneumatiska eller hydrauliska styrsystem.
• Medicinsk instrumentering.
• Robotik.
• Kontroll av industri- eller miljöprocesser.
• Nivåmätning i vätske- eller gasbehållare.
Steg 4: MPX -familjen av trycksensorer
• De är tryckgivare i elektrisk spänning.
• De är baserade på en piezoresistiv sensor, där komprimering omvandlas till en variation av det elektriska motståndet.
• Det finns versioner som kan mäta små tryckskillnader (från 0 till 0,04atm) eller stora variationer (från 0 till 10atm).
• De visas i flera paket.
• De kan mäta absolut tryck (i förhållande till vakuum), differenstryck (skillnaden mellan två tryck, p1 och p2) eller mätare (i förhållande till atmosfärstryck).
Steg 5: MPX5700DP
• 5700 -serien har sensorer med absolut, differential och mätare.
• MPX5700DP kan mäta ett differenstryck från 0 till 700 kPa (cirka 7 atm).
• Utgångsspänningen varierar från 0,2V till 4,7V.
• Dess effekt är från 4,75V till 5,25V
Steg 6: För demonstrationen
• Den här gången kommer vi inte att göra en praktisk applikation med denna sensor; vi kommer bara att montera den och utföra några mätningar som en demonstration.
• För detta kommer vi att använda en direkt luftkompressor för att applicera tryck vid högtrycksinloppet (p1) och få skillnaden i förhållande till det lokala atmosfärstrycket (p2).
• MPX5700DP är en enriktad sensor, vilket innebär att den mäter positiva skillnader där p1 alltid måste vara större än eller lika med p2.
• p1> p2 och skillnaden blir p1 - p2
• Det finns tvåvägs differentialsensorer som kan utvärdera negativa och positiva skillnader.
• Även om det bara är en demonstration, kan vi enkelt använda principerna här för att kontrollera till exempel trycket i en luftreservoar, som drivs av denna kompressor.
Steg 7: Kalibrera ESP ADC
• Eftersom vi vet att ESP: s analog-digital konvertering inte är helt linjär och kan variera från en SoC till en annan, låt oss börja med att göra en enkel bestämning av dess beteende.
• Med en potentiometer och en multimeter mäter vi spänningen som appliceras på AD och relaterar den till det angivna värdet.
• Med ett enkelt program för att läsa AD och samla informationen i en tabell, kunde vi bestämma kurvan för dess beteende.
Steg 8: Beräkning av trycket
• Även om tillverkaren ger oss funktionen med komponentens beteende, är det alltid lämpligt att utföra en kalibrering när vi talar om att göra mätningar.
• Men eftersom det bara är en demonstration kommer vi direkt att använda funktionen som finns i databladet. För detta kommer vi att manipulera det på ett sätt som ger oss trycket som en funktion av ADC -värdet.
* Kom ihåg att bråkdelen av spänningen som appliceras på ADC med referensspänningen måste ha samma värde som ADC läst av den totala ADC. (Bortser från korrigeringen)
Steg 9: Montering
• För att ansluta sensorn, leta efter skåran i en av dess terminaler, vilket indikerar stift 1.
• Räkna därifrån:
Stift 1 ger signalutgång (från 0V till 4,7V)
Pin 2 är referensen. (GND)
Pin 3 för effekt. (Mot)
• Eftersom signalutgången är 4,7V använder vi en spänningsdelare så att maxvärdet motsvarar 3V3. För detta gjorde vi justeringen med potentiometern.
Steg 10: Källkod
Källkod: #Includes och #defines
// 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 delar upp 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
Källa: Globala variabler och konstanter
SSD1306 -skärm (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
Källkod: Setup ()
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}
Källkod: 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
Källkod: Funktion som beräknar trycket i 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 DO COMPONENTE (erro) return ((corrigeMedida (medida) / 3.3) - 0.04) / 0.0012858; }
-- BILDER
Källkod: Funktion som korrigerar AD -värdet
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; }
Steg 11: Filer
Ladda ner filerna:
INO