Daftar Isi:
- Langkah 1: Demonstrasi
- Langkah 2: Sumber Daya yang Digunakan
- Langkah 3: Mengapa Mengukur Tekanan?
- Langkah 4: Rangkaian Sensor Tekanan MPX
- Langkah 5: MPX5700DP
- Langkah 6: Untuk Demonstrasi
- Langkah 7: Mengkalibrasi ESP ADC
- Langkah 8: Menghitung Tekanan
- Langkah 9: Perakitan
- Langkah 10: Kode Sumber
- Langkah 11: File
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Bagaimana cara mengetahui ketinggian air di tangki air? Untuk memantau hal semacam ini, Anda dapat menggunakan sensor tekanan. Ini adalah peralatan yang sangat berguna untuk otomasi industri, secara umum. Hari ini, kita akan berbicara tentang keluarga sensor tekanan MPX yang tepat ini, khusus untuk pengukuran tekanan. Saya akan memperkenalkan Anda ke sensor tekanan MPX5700 dan melakukan perakitan sampel menggunakan ESP WiFi LoRa 32.
Saya tidak akan menggunakan komunikasi LoRa di sirkuit hari ini, baik WiFi maupun Bluetooth. Namun saya memilih ESP32 ini karena di video lain sudah saya ajarkan cara menggunakan semua fitur yang saya bahas hari ini.
Langkah 1: Demonstrasi
Langkah 2: Sumber Daya yang Digunakan
• Sensor Tekanan Diferensial MPX5700DP
• Potensiometer 10k (atau trimpot)
• Protoboard
• Kabel sambungan
• Kabel USB
• ESP WiFi LoRa 32
• Kompresor udara (opsional)
Langkah 3: Mengapa Mengukur Tekanan?
• Ada banyak aplikasi di mana tekanan merupakan variabel kontrol yang penting.
• Kita dapat melibatkan sistem kontrol pneumatik atau hidrolik.
• Instrumentasi medis.
• Robotika.
• Kontrol proses industri atau lingkungan.
• Pengukuran level dalam reservoir cair atau gas.
Langkah 4: Rangkaian Sensor Tekanan MPX
• Mereka adalah transduser tekanan dalam tegangan listrik.
• Mereka didasarkan pada sensor resistif piezo, di mana kompresi diubah menjadi variasi hambatan listrik.
• Ada versi yang mampu mengukur perbedaan tekanan kecil (dari 0 hingga 0,04atm), atau variasi besar (dari 0 hingga 10atm).
• Mereka muncul dalam beberapa paket.
• Mereka dapat mengukur tekanan absolut (relatif terhadap vakum), tekanan diferensial (perbedaan antara dua tekanan, p1 dan p2), atau pengukur (relatif terhadap tekanan atmosfer).
Langkah 5: MPX5700DP
• Seri 5700 memiliki fitur sensor absolut, diferensial, dan pengukur.
• MPX5700DP dapat mengukur tekanan diferensial dari 0 hingga 700kPa (sekitar 7atm).
• Tegangan keluaran bervariasi dari 0.2V sampai 4.7V.
• Dayanya dari 4.75V hingga 5.25V
Langkah 6: Untuk Demonstrasi
• Kali ini, kita tidak akan melakukan aplikasi praktis menggunakan sensor ini; kami hanya akan memasangnya dan melakukan beberapa pengukuran sebagai demonstrasi.
• Untuk ini, kita akan menggunakan kompresor udara langsung untuk menerapkan tekanan pada saluran masuk bertekanan tinggi (p1) dan mendapatkan perbedaan dalam kaitannya dengan tekanan atmosfer lokal (p2).
• MPX5700DP adalah sensor searah, yang berarti mengukur perbedaan positif di mana p1 harus selalu lebih besar dari atau sama dengan p2.
• p1> p2 dan selisihnya adalah p1 - p2
• Ada sensor diferensial dua arah yang dapat mengevaluasi perbedaan negatif dan positif.
• Meskipun hanya demonstrasi, kita dapat dengan mudah menggunakan prinsip di sini untuk mengontrol, misalnya, tekanan dalam reservoir udara, yang ditenagai oleh kompresor ini.
Langkah 7: Mengkalibrasi ESP ADC
• Karena kita tahu bahwa konversi analog-digital ESP tidak sepenuhnya linier dan dapat bervariasi dari satu SoC ke SoC lainnya, mari kita mulai dengan menentukan perilakunya secara sederhana.
• Menggunakan potensiometer dan multimeter, kami akan mengukur tegangan yang diberikan ke AD dan menghubungkannya dengan nilai yang ditunjukkan.
• Dengan program sederhana untuk membaca AD dan mengumpulkan informasi dalam tabel, kami dapat menentukan kurva perilakunya.
Langkah 8: Menghitung Tekanan
• Meskipun pabrikan memberi kita fungsi dengan perilaku komponen, selalu disarankan untuk melakukan kalibrasi ketika kita berbicara tentang melakukan pengukuran.
• Namun, karena ini hanya demonstrasi, kami akan langsung menggunakan fungsi yang ada di lembar data. Untuk ini, kami akan memanipulasinya dengan cara yang memberi kami tekanan sebagai fungsi dari nilai ADC.
* Ingatlah bahwa fraksi tegangan yang diberikan ke ADC oleh tegangan referensi harus memiliki nilai yang sama dengan ADC yang dibaca oleh ADC total. (Abaikan koreksi)
Langkah 9: Perakitan
• Untuk menghubungkan sensor, cari takik di salah satu terminalnya, yang menunjukkan pin 1.
• Menghitung dari sana:
Pin 1 menyediakan output sinyal (dari 0V hingga 4.7V)
Pin 2 adalah referensi. (GND)
Pin 3 untuk daya. (Vs)
• Karena keluaran sinyal adalah 4,7V, kami akan menggunakan pembagi tegangan sehingga nilai maksimumnya setara dengan 3V3. Untuk ini, kami membuat penyesuaian dengan potensiometer.
Langkah 10: Kode Sumber
Kode Sumber: #Include dan #defines
//Bibliotecas untuk digunakan menampilkan oLED#include // Diperlukan untuk Arduino 1.6.5 e posterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" //Os pino lakukan OLED dan 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
Sumber: Variabel dan konstanta global
Layar SSD1306 (0x3c, SDA, SCL, RST); //Instance dan ajustando os pinos lakukan objeto "display" const int amostras = 10000; //número de amostras coletadas untuk media const int pin = 13; //pino de leiura const float fator_atm = 0.0098692327; //fator de conversão para atmosferas const float fator_bar = 0,01; //fator de percakapan para bar const float fator_kgf_cm2 = 0.0101971621; // konversi konversi kgf/cm2
Kode Sumber: Pengaturan ()
void setup(){ pinMode(pin, INPUT); //pino de leitura analógica Serial.begin(115200); //iniciando a serial //inicia o display display.init(); display.flipScreenVertikal(); //Vira a tela vertikalmente }
Kode sumber: Lingkaran ()
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 melakukan ADC untuk (int i = 0; i
Kode sumber: Fungsi yang menghitung tekanan dalam 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 COMPONENT DESVIOS erro) kembali ((corrigeMedida(medida) / 3,3) - 0,04) / 0,0012858; }
-- GAMBAR-GAMBAR
Kode sumber: Fungsi yang mengoreksi nilai 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 * 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; }
Langkah 11: File
Unduh file:
SAYA TIDAK