Table des matières:

Découvrez ici un capteur extrêmement important ! : 11 étapes
Découvrez ici un capteur extrêmement important ! : 11 étapes

Vidéo: Découvrez ici un capteur extrêmement important ! : 11 étapes

Vidéo: Découvrez ici un capteur extrêmement important ! : 11 étapes
Vidéo: Dernier Live Tuto de 2019, épisode 11 : Les capteurs 2024, Juillet
Anonim
Découvrez ici un capteur extrêmement important !
Découvrez ici un capteur extrêmement important !

Comment connaître le niveau d'eau dans un réservoir d'eau ? Pour surveiller ce genre de chose, vous pouvez utiliser un capteur de pression. C'est un équipement très utile pour l'automatisation industrielle, en général. Aujourd'hui, nous allons parler de cette famille exacte de capteurs de pression MPX, spécifiquement pour la mesure de pression. Je vais vous présenter le capteur de pression MPX5700 et réaliser un échantillon d'assemblage à l'aide de l'ESP WiFi LoRa 32.

Je n'utiliserai pas la communication LoRa dans le circuit aujourd'hui, ni WiFi ni Bluetooth. Cependant, j'ai opté pour cet ESP32 car j'ai déjà appris dans d'autres vidéos comment utiliser toutes les fonctionnalités dont je parle aujourd'hui.

Étape 1: Démonstration

Manifestation
Manifestation
Manifestation
Manifestation

Étape 2: Ressources utilisées

Ressources utilisées
Ressources utilisées

• Capteur de pression différentielle MPX5700DP

• Potentiomètre 10k (ou trimpot)

• Protoboard

• Fils de connexion

• Cable USB

• ESP Wi-Fi LoRa 32

• Compresseur d'air (facultatif)

Étape 3: Pourquoi mesurer la pression ?

Pourquoi mesurer la pression ?
Pourquoi mesurer la pression ?

• Il existe de nombreuses applications où la pression est une variable de contrôle importante.

• Nous pouvons impliquer des systèmes de contrôle pneumatiques ou hydrauliques.

• Instrumentation médicale.

• Robotique.

• Maîtrise des procédés industriels ou environnementaux.

• Mesure de niveau dans des réservoirs de liquide ou de gaz.

Étape 4: La famille de capteurs de pression MPX

La famille de capteurs de pression MPX
La famille de capteurs de pression MPX

• Ce sont des transducteurs de pression en tension électrique.

• Ils sont basés sur un capteur piézo-résistif, où la compression est convertie en une variation de la résistance électrique.

• Il existe des versions capables de mesurer de petites différences de pression (de 0 à 0,04 atm), ou de grandes variations (de 0 à 10 atm).

• Ils apparaissent dans plusieurs packages.

• Ils peuvent mesurer la pression absolue (par rapport au vide), la pression différentielle (la différence entre deux pressions, p1 et p2), ou manométrique (par rapport à la pression atmosphérique).

Étape 5: Le MPX5700DP

Le MPX5700DP
Le MPX5700DP
Le MPX5700DP
Le MPX5700DP

• La série 5700 comprend des capteurs absolus, différentiels et de jauge.

• Le MPX5700DP peut mesurer une pression différentielle de 0 à 700 kPa (environ 7 atm).

• La tension de sortie varie de 0,2V à 4,7V.

• Sa puissance est de 4,75V à 5,25V

Étape 6: Pour la démonstration

Pour la démonstration
Pour la démonstration

• Cette fois, nous ne ferons pas d'application pratique à l'aide de ce capteur; nous ne ferons que le monter et effectuer quelques mesures à titre de démonstration.

• Pour cela, nous utiliserons un compresseur d'air direct pour appliquer la pression à l'entrée haute pression (p1) et obtenir la différence par rapport à la pression atmosphérique locale (p2).

• Le MPX5700DP est un capteur unidirectionnel, c'est-à-dire qu'il mesure des écarts positifs où p1 doit toujours être supérieur ou égal à p2.

• p1> p2 et la différence sera p1 - p2

• Il existe des capteurs différentiels bidirectionnels qui peuvent évaluer les différences négatives et positives.

• Bien qu'il ne s'agisse que d'une démonstration, nous pourrions facilement utiliser les principes ici pour contrôler, par exemple, la pression dans un réservoir d'air, alimenté par ce compresseur.

Étape 7: Calibrage de l'ESP ADC

Calibrage de l'ESP ADC
Calibrage de l'ESP ADC
Calibrage de l'ESP ADC
Calibrage de l'ESP ADC
Calibrage de l'ESP ADC
Calibrage de l'ESP ADC

• Puisque l'on sait que la conversion analogique-numérique d'ESP n'est pas totalement linéaire et peut varier d'un SoC à l'autre, commençons par faire une simple détermination de son comportement.

• A l'aide d'un potentiomètre et d'un multimètre, nous allons mesurer la tension appliquée à l'AD et la rapporter à la valeur indiquée.

• Avec un programme simple de lecture de l'AD et de collecte des informations dans un tableau, nous avons pu déterminer la courbe de son comportement.

Étape 8: Calcul de la pression

Calcul de la pression
Calcul de la pression
Calcul de la pression
Calcul de la pression

• Bien que le fabricant nous fournisse la fonction avec le comportement du composant, il est toujours conseillé d'effectuer un étalonnage lorsqu'il s'agit de prendre des mesures.

• Cependant, comme il ne s'agit que d'une démonstration, nous utiliserons directement la fonction trouvée dans la fiche technique. Pour cela, nous allons le manipuler d'une manière qui nous donne la pression en fonction de la valeur ADC.

* Rappelez-vous que la fraction de la tension appliquée à l'ADC par la tension de référence doit avoir la même valeur que l'ADC lue par l'ADC total. (sans tenir compte de la correction)

Étape 9: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée

• Pour connecter le capteur, recherchez l'encoche dans l'une de ses bornes, qui indique la broche 1.

• En comptant à partir de là:

La broche 1 fournit une sortie de signal (de 0V à 4,7V)

La broche 2 est la référence. (GND)

Broche 3 pour l'alimentation. (Vs)

• Comme la sortie du signal est de 4,7V, nous utiliserons un diviseur de tension pour que la valeur maximale soit équivalente à 3V3. Pour cela, nous avons fait le réglage avec le potentiomètre.

Étape 10: Code source

Code source
Code source
Code source
Code source

Code source: #Inclut et #définit

//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 seguintes GPIO's: //OLED_SDA -- GPIO4 //OLED_SCL -- GPIO15 //OLED_RST -- GPIO16 #define SDA 4 #define SCL 15 #define RST 16 //RST deve ser ajustado por software

Source: Variables globales et constantes

Affichage 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 conversation para atmosferas const float fator_bar = 0.01; //fator de conversation para bar const float fator_kgf_cm2 = 0.0101971621; // taux de conversion kgf/cm2

Code source: configuration ()

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 }

Code source: Boucle ()

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 ligado a more que 5 segundos { //Limpa o buffer do display display.clear(); //juste ou ajuste pour un affichage display.setTextAlignment(TEXT_ALIGN_LEFT); //juste une police pour Arial 10 display.setFont(ArialMT_Plain_16); //Escreve no buffer n'affiche pas un 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))); } else //se ligado a menos de 5 segundos, exibe a tela inicial { //limpa o buffer do display display.clear(); //Ajuste l'alignement de la centralisation display.setTextAlignment(TEXT_ALIGN_CENTER); //juste une police pour Arial 16 display.setFont(ArialMT_Plain_16); // efface pas de tampon display.drawString(64, 0, "Capteur de pression"); // escreve no buffer display.drawString(64, 18, "Diferencial"); //juste une police pour Arial 10 display.setFont(ArialMT_Plain_10); // escreve no buffer display.drawString(64, 44, "ESP-WiFi-Lora"); } display.display();//transfert o buffer para o display delay(50); }

Code source: Fonction qui calcule la pression en 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) retour ((corrigeMedida(medida) / 3,3) - 0,04) / 0,0012858; }

-- IMAGES

Code source: Fonction qui corrige la valeur AD

float corrigeMedida(float x) { /* Esta função fo 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; }

Étape 11: Fichiers

Téléchargez les fichiers:

PDF

INO

Conseillé: