Daftar Isi:
Video: Particle Photon - Tutorial Sensor Altimeter Presisi MPL3115A2: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
MPL3115A2 menggunakan sensor tekanan MEMS dengan antarmuka I2C untuk memberikan data Tekanan/Ketinggian dan Suhu yang akurat. Output sensor didigitalkan oleh ADC 24-bit resolusi tinggi. Pemrosesan internal menghapus tugas kompensasi dari sistem MCU host. Ia mampu mendeteksi perubahan hanya 0,05 kPa yang setara dengan perubahan ketinggian 0,3 m. Berikut adalah demonstrasinya dengan foton Partikel.
Langkah 1: Yang Anda Butuhkan.
1. Foton Partikel
2. MPL3115A2
3. Kabel I²C
4. Perisai I²C untuk Foton Partikel
Langkah 2: Koneksi:
Ambil pelindung I2C untuk foton partikel dan dorong perlahan ke atas pin foton partikel.
Kemudian sambungkan salah satu ujung kabel I2C ke sensor MPL3115A2 dan ujung lainnya ke pelindung I2C.
Koneksi ditunjukkan pada gambar di atas.
Langkah 3: Kode:
Kode partikel untuk MPL3115A2 dapat diunduh dari repositori Github-DCUBE Store kami.
Ini tautannya.
Kami telah menggunakan dua library untuk kode partikel, yaitu application.h dan spark_wiring_i2c.h. Perpustakaan Spark_wiring_i2c diperlukan untuk memfasilitasi komunikasi I2C dengan sensor.
Anda juga dapat menyalin kode dari sini, diberikan sebagai berikut:
// Didistribusikan dengan lisensi kehendak bebas.
// Gunakan sesuka Anda, untung atau gratis, asalkan sesuai dengan lisensi karya terkait.
// MPL3115A2
// Kode ini dirancang untuk bekerja dengan Modul Mini MPL3115A2_I2CS I2C
#termasuk
#termasuk
// Alamat MPL3115A2 I2C adalah 0x60(96)
#tentukan Addr 0x60
float cTemp = 0,0, fTemp = 0,0, tekanan = 0,0, ketinggian = 0,0;
int temp = 0, tTinggi = 0;tekanan panjang = 0;
batalkan pengaturan()
{
// Tetapkan variabel
Particle.variable("i2cdevice", "MPL3115A2");
Particle.variable("cTemp", cTemp);
Particle.variable("tekanan", tekanan);
Particle.variable("ketinggian", ketinggian);
// Inisialisasi komunikasi I2C
Kawat.mulai();
// Inisialisasi Komunikasi Serial, setel baud rate = 9600
Serial.begin(9600);
// Mulai transmisi I2C
Wire.beginTransmission(Addr);
// Pilih register kontrol
Kawat.tulis (0x26);
// Mode aktif, OSR = 128, mode altimeter
Wire.write(0xB9);
// Hentikan transmisi I2C
Kawat.endTransmisi();
// Mulai transmisi I2C
Wire.beginTransmission(Addr);
// Pilih register konfigurasi data
Kawat.tulis (0x13);
// Acara siap data diaktifkan untuk ketinggian, tekanan, suhu
Kawat.tulis (0x07);
// Hentikan transmisi I2C
Kawat.endTransmisi();
penundaan (300);
}
lingkaran kosong()
{
data int yang tidak ditandatangani[6];
// Mulai transmisi I2C
Wire.beginTransmission(Addr);
// Pilih register kontrol
Kawat.tulis (0x26);
// Mode aktif, OSR = 128, mode altimeter
Wire.write(0xB9);
// Hentikan transmisi I2C
Kawat.endTransmisi();
penundaan (1000);
// Mulai transmisi I2C
Wire.beginTransmission(Addr);
// Pilih daftar data
Kawat.tulis (0x00);
// Hentikan transmisi I2C
Kawat.endTransmisi();
// Meminta 6 byte data
Wire.requestFrom(Addr, 6);
// Baca 6 byte data dari alamat 0x00(00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
if(Wire.available() == 6)
{
data[0] = Wire.read();
data[1] = Kawat.baca();
data[2] = Wire.read();
data[3] = Wire.read();
data[4] = Kawat.baca();
data[5] = Wire.read();
}
// Ubah data menjadi 20-bit
tTinggi = ((((panjang)data[1] * (panjang)65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16);
temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16;
ketinggian = tTinggi / 16.0;
cTemp = (suhu / 16.0);
fTemp = cTemp * 1,8 + 32;
// Mulai transmisi I2C
Wire.beginTransmission(Addr);
// Pilih register kontrol
Kawat.tulis (0x26);
// Mode aktif, OSR = 128, mode barometer
Kawat.tulis (0x39);
// Hentikan transmisi I2C
Kawat.endTransmisi();
// Mulai transmisi I2C
Wire.beginTransmission(Addr);
// Pilih daftar data
Kawat.tulis (0x00);
// Hentikan transmisi I2C
Kawat.endTransmisi();
penundaan (1000);
// Meminta 4 byte data
Wire.requestFrom(Addr, 4);
// Baca 4 byte data
// status, tekan msb1, tekan msb, tekan lsb
if(Wire.available() == 4)
{
data[0] = Wire.read();
data[1] = Kawat.baca();
data[2] = Wire.read();
data[3] = Wire.read();
}
// Ubah data menjadi 20-bit
pres = (((panjang)data[1] * (panjang)65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16;
tekanan = (pres / 4.0) / 10000.0;
// Keluarkan data ke dasbor
Particle.publish("Ketinggian:", String(ketinggian));
Particle.publish("Tekanan:", String(tekanan));
Particle.publish("Suhu dalam Celcius:", String(cTemp));
Particle.publish("Suhu dalam Fahrenheit:", String(fTemp));
penundaan (1000);
}
Langkah 4: Aplikasi:
Berbagai aplikasi MPL3115A2 termasuk Altimetri Akurasi Tinggi, Smartphone/Tablet, Altimetri Elektronik Pribadi, dll. Ini juga dapat digabungkan dalam GPS Dead Reckoning, Peningkatan GPS untuk Layanan Darurat, Bantuan Peta, Navigasi, serta Peralatan Stasiun Cuaca.
Direkomendasikan:
Jam Presisi: 3 Langkah
Jam Presisi: Kita semua membutuhkan jam jadi mengapa tidak membuatnya sendiri dalam instruksi ini. Saya akan menunjukkan kepada Anda cara membuat jam Presisi setelah Anda menyetel akan secara otomatis melacak waktu saat ini di latar belakang segalanya. Sementara juga hanya membutuhkan sangat sedikit
Eksperimen Perbaikan Presisi: 11 Langkah
Eksperimen Rektifikasi Presisi: Saya baru-baru ini melakukan eksperimen pada rangkaian rektifikasi presisi dan mendapatkan beberapa kesimpulan kasar. Mengingat rangkaian penyearah presisi merupakan rangkaian umum, maka hasil percobaan ini dapat memberikan beberapa informasi referensi
Pulse Oximeter Dengan Presisi Jauh Lebih Baik: 6 Langkah (dengan Gambar)
Pulse Oximeter Dengan Ketepatan yang Jauh Lebih Baik: Jika Anda baru saja mengunjungi dokter, kemungkinan besar tanda-tanda vital dasar Anda diperiksa oleh seorang perawat. Berat badan, tinggi badan, tekanan darah, serta denyut jantung (HR) dan saturasi oksigen dalam darah tepi (SpO2). Mungkin, dua yang terakhir diperoleh dari
Catu Daya Bangku Variabel Analog DIY dengan Pembatas Arus Presisi: 8 Langkah (dengan Gambar)
DIY Analog Variable Bench Power Supply W/ Precision Current Limiter: Dalam proyek ini saya akan menunjukkan kepada Anda bagaimana menggunakan LM317T yang terkenal dengan transistor daya Current Booster, dan bagaimana menggunakan Linear Technology LT6106 penguat arus untuk pembatas arus presisi. Rangkaian ini memungkinkan Anda untuk menggunakan hingga lebih dari 5A
Pengontrol Suhu Presisi Tinggi: 6 Langkah (dengan Gambar)
Pengontrol Suhu Presisi Tinggi: Dalam sains dan dunia teknik, melacak suhu alias (pergerakan atom dalam termodinamika) adalah salah satu parameter fisik mendasar yang harus dipertimbangkan hampir di semua tempat, mulai dari biologi sel hingga roket bahan bakar keras dan