Innholdsfortegnelse:

Lær her om en ekstremt viktig sensor !: 11 trinn
Lær her om en ekstremt viktig sensor !: 11 trinn

Video: Lær her om en ekstremt viktig sensor !: 11 trinn

Video: Lær her om en ekstremt viktig sensor !: 11 trinn
Video: Как избежать появления трещин на стенах? Подготовка под штукатурку. #11 2024, Juli
Anonim
Lær her om en ekstremt viktig sensor!
Lær her om en ekstremt viktig sensor!

Hvordan kan du finne ut om vannstanden i en vanntank? For å overvåke denne typen ting kan du bruke en trykksensor. Dette er generelt nyttig utstyr for industriell automatisering. I dag skal vi snakke om denne eksakte familien av MPX -trykksensorer, spesielt for trykkmåling. Jeg vil introdusere deg for MPX5700 trykksensor og utføre en prøvesamling ved hjelp av ESP WiFi LoRa 32.

Jeg vil ikke bruke LoRa -kommunikasjon i kretsen i dag, verken WiFi eller Bluetooth. Imidlertid valgte jeg denne ESP32 fordi jeg allerede lærte i andre videoer hvordan jeg bruker alle funksjonene som jeg diskuterer i dag.

Trinn 1: Demonstrasjon

Demonstrasjon
Demonstrasjon
Demonstrasjon
Demonstrasjon

Trinn 2: Ressurser brukt

Ressurser brukt
Ressurser brukt

• MPX5700DP differensialtrykkssensor

• 10k potensiometer (eller trimpot)

• Protoboard

• Tilkoblingskabler

• USB-kabel

• ESP WiFi LoRa 32

• Luftkompressor (valgfritt)

Trinn 3: Hvorfor måle trykk?

Hvorfor måle trykk?
Hvorfor måle trykk?

• Det er mange bruksområder der trykk er en viktig kontrollvariabel.

• Vi kan involvere pneumatiske eller hydrauliske kontrollsystemer.

• Medisinsk instrumentering.

• Robotikk.

• Kontroll av industrielle eller miljøprosesser.

• Nivåmåling i væske- eller gassreservoarer.

Trinn 4: MPX -familien med trykksensorer

MPX -familien av trykksensorer
MPX -familien av trykksensorer

• De er trykktransdusere i elektrisk spenning.

• De er basert på en piezo -resistiv sensor, der komprimering omdannes til en variant av den elektriske motstanden.

• Det finnes versjoner som kan måle små trykkforskjeller (fra 0 til 0,04atm) eller store variasjoner (fra 0 til 10atm).

• De vises i flere pakker.

• De kan måle absolutt trykk (i forhold til vakuum), differansetrykk (forskjellen mellom to trykk, p1 og p2) eller måler (i forhold til atmosfæretrykk).

Trinn 5: MPX5700DP

MPX5700DP
MPX5700DP
MPX5700DP
MPX5700DP

• 5700 -serien har absolutte, differensial- og målesensorer.

• MPX5700DP kan måle et differensialtrykk fra 0 til 700 kPa (ca. 7atm).

• Utgangsspenningen varierer fra 0,2V til 4,7V.

• Strømmen er fra 4,75V til 5,25V

Trinn 6: For demonstrasjonen

For demonstrasjonen
For demonstrasjonen

• Denne gangen vil vi ikke gjøre en praktisk applikasjon med denne sensoren; vi vil bare montere den og utføre noen målinger som en demonstrasjon.

• For dette vil vi bruke en direkte luftkompressor for å påføre trykk ved høytrykksinntaket (p1) og få differansen i forhold til det lokale atmosfæretrykket (p2).

• MPX5700DP er en enveis sensor, noe som betyr at den måler positive forskjeller der p1 alltid må være større enn eller lik p2.

• p1> p2 og differansen vil være p1 - p2

• Det er toveis differensialsensorer som kan evaluere negative og positive forskjeller.

• Selv om det bare er en demonstrasjon, kan vi enkelt bruke prinsippene her for å kontrollere for eksempel trykket i et luftreservoar, drevet av denne kompressoren.

Trinn 7: Kalibrering av ESP ADC

Kalibrering av ESP ADC
Kalibrering av ESP ADC
Kalibrering av ESP ADC
Kalibrering av ESP ADC
Kalibrering av ESP ADC
Kalibrering av ESP ADC

• Siden vi vet at ESPs analog-digitale konvertering ikke er helt lineær og kan variere fra en SoC til en annen, la oss starte med å gjøre en enkel bestemmelse av dens oppførsel.

• Ved å bruke et potensiometer og et multimeter måler vi spenningen som tilføres AD og relaterer den til den angitte verdien.

• Med et enkelt program for å lese AD og samle informasjonen i en tabell, var vi i stand til å bestemme kurven for dens oppførsel.

Trinn 8: Beregning av trykket

Beregning av trykket
Beregning av trykket
Beregning av trykket
Beregning av trykket

• Selv om produsenten gir oss funksjonen komponentens oppførsel, er det alltid lurt å utføre en kalibrering når vi snakker om å ta målinger.

• Siden det imidlertid bare er en demonstrasjon, bruker vi funksjonen i databladet direkte. For dette vil vi manipulere det på en måte som gir oss trykket som en funksjon av ADC -verdien.

* Husk at brøkdelen av spenningen som tilføres ADC av referansespenningen må ha samme verdi som ADC leset av den totale ADC. (Ser bort fra korreksjonen)

Trinn 9: Montering

montering
montering
montering
montering

• For å koble til sensoren, se etter hakket i en av terminalene, som indikerer pinne 1.

• Teller derfra:

Pin 1 gir signalutgang (fra 0V til 4,7V)

Pin 2 er referansen. (GND)

Pin 3 for strøm. (Vs)

• Siden signalutgangen er 4,7V, bruker vi en spenningsdeler slik at maksimalverdien tilsvarer 3V3. For dette gjorde vi justeringen med potensiometeret.

Trinn 10: Kildekode

Kildekode
Kildekode
Kildekode
Kildekode

Kildekode: #Includes og #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 gir informasjon om GPIO: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #definer SDA 4 #definer SCL 15 #definer RST 16 // RST deve ser ajustado por software

Kilde: Globale variabler og konstanter

SSD1306 -skjerm (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

Kildekode: Oppsett ()

ugyldig oppsett () {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}

Kildekode: 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 (5000)) // se está ligado a mais que 5 segundos {// Limpa o buffer do display display.clear (); // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte for Arial 10 display.setFont (ArialMT_Plain_16); // Oppbevar ingen buffer for å vise en 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"); // escreve no buffer o valor do ADC display.drawString (0, 48, "adc:" + String (int (medidas))); } annet // kan det vises en meny av 5 segmenter, kan du vise en offisiell {// limpa o buffer do display.clear (); // Ajusta o alinhamento para centralizado display.setTextAlignment (TEXT_ALIGN_CENTER); // ajusta a fonte for 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 for Arial 10 display.setFont (ArialMT_Plain_10); // escreve no buffer display.drawString (64, 44, "ESP-WiFi-Lora"); } display.display (); // overføre eller buffer for displayforsinkelse (50); }

Kildekode: Funksjon som beregner trykket 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 (feil) return ((corrigeMedida (medida) / 3.3) - 0.04) / 0.0012858; }

-- BILDER

Kildekode: Funksjon som korrigerer AD -verdien

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; }

Trinn 11: Filer

Last ned filene:

PDF

INO

Anbefalt: