Daftar Isi:

Pelajari Di Sini Tentang Sensor yang Sangat Penting!: 11 Langkah
Pelajari Di Sini Tentang Sensor yang Sangat Penting!: 11 Langkah

Video: Pelajari Di Sini Tentang Sensor yang Sangat Penting!: 11 Langkah

Video: Pelajari Di Sini Tentang Sensor yang Sangat Penting!: 11 Langkah
Video: Mengenal Sensor, Aktuator, & ECM pada Mobil Avanza atau Xenia K3VE/3SZ-VE 2024, Juli
Anonim
Pelajari Di Sini Tentang Sensor yang Sangat Penting!
Pelajari Di Sini Tentang Sensor yang Sangat Penting!

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

Demonstrasi
Demonstrasi
Demonstrasi
Demonstrasi

Langkah 2: Sumber Daya yang Digunakan

Sumber Daya yang Digunakan
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?

Mengapa Mengukur Tekanan?
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

Keluarga Sensor Tekanan MPX
Keluarga 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

MPX5700DP
MPX5700DP
MPX5700DP
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

Untuk Demonstrasi
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

Mengkalibrasi ESP ADC
Mengkalibrasi ESP ADC
Mengkalibrasi ESP ADC
Mengkalibrasi ESP ADC
Mengkalibrasi ESP ADC
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

Menghitung Tekanan
Menghitung Tekanan
Menghitung Tekanan
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

perakitan
perakitan
perakitan
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
Kode Sumber
Kode Sumber
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 (5000)) //se está ligado a mais que 5 segundos { //Limpa o buffer do display display.clear(); //ajusta o alinhamento untuk esquerda display.setTextAlignment(TEXT_ALIGN_LEFT); //ajusta a fonte untuk Arial 10 display.setFont(ArialMT_Plain_16); //Escreve no buffer menampilkan pressao display.drawString(0, 0, String(int(pressao)) + " kPa"); display.drawString(0, 16, String(tekan * fator_atm) + " atm"); display.drawString(0, 32, String(tekan * fator_kgf_cm2) + " kgf/cm2"); //escreve no buffer o valor do ADC display.drawString(0, 48, "adc: " + String(int(medidas))); } else //se está ligado a menos de 5 segundos, exibe a tela inicial { //limpa o buffer do display display.clear(); //Ajusta o alinhamento para centralizado display.setTextAlignment(TEXT_ALIGN_CENTER); //ajusta a fonte untuk 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 untuk Arial 10 display.setFont(ArialMT_Plain_10); //escreve no buffer display.drawString(64, 44, "ESP-WiFi-Lora"); } display.display();//transfer o buffer para o display delay(50); }

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:

PDF

SAYA TIDAK

Direkomendasikan: