![Arduino Nano - MPL3115A2 Hassas Altimetre Sensör Eğitimi: 4 Adım Arduino Nano - MPL3115A2 Hassas Altimetre Sensör Eğitimi: 4 Adım](https://i.howwhatproduce.com/images/002/image-3723-13-j.webp)
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13
![Image Image](https://i.howwhatproduce.com/images/002/image-3723-15-j.webp)
![](https://i.ytimg.com/vi/1SQNlzMTexM/hqdefault.jpg)
MPL3115A2, doğru Basınç/İrtifa ve Sıcaklık verileri sağlamak için I2C arayüzüne sahip bir MEMS basınç sensörü kullanır. Sensör çıkışları, yüksek çözünürlüklü 24 bit ADC ile sayısallaştırılır. Dahili işleme, ana bilgisayar MCU sisteminden tazminat görevlerini kaldırır. Sadece 0,05 kPa'da, yani 0,3 m'lik bir irtifa değişikliğine denk gelen bir değişikliği tespit etme yeteneğine sahiptir. İşte Arduino Nano ile yaptığı gösteri.
Adım 1: İhtiyacınız Olan Şey..!
![Neye ihtiyacın var..!! Neye ihtiyacın var..!!](https://i.howwhatproduce.com/images/002/image-3723-16-j.webp)
1. Arduino Nano
2. MPL3115A2
3. I²C Kablosu
4. Arduino Nano için I²C Kalkanı
Adım 2: Bağlantılar:
![Bağlantılar Bağlantılar](https://i.howwhatproduce.com/images/002/image-3723-17-j.webp)
![Bağlantılar Bağlantılar](https://i.howwhatproduce.com/images/002/image-3723-18-j.webp)
![Bağlantılar Bağlantılar](https://i.howwhatproduce.com/images/002/image-3723-19-j.webp)
![Bağlantılar Bağlantılar](https://i.howwhatproduce.com/images/002/image-3723-20-j.webp)
Arduino Nano için bir I2C kalkanı alın ve yavaşça Nano'nun pimlerinin üzerine itin.
Ardından I2C kablosunun bir ucunu MPL3115A2 sensörüne ve diğer ucunu I2C blendajına bağlayın.
Bağlantılar yukarıdaki resimde gösterilmiştir.
Adım 3: Kod:
![Kod Kod](https://i.howwhatproduce.com/images/002/image-3723-21-j.webp)
MPL3115A2 için arduino kodu, github deposu-DCUBE Mağazamızdan indirilebilir.
İşte aynısı için bağlantı:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Sensörün Arduino kartı ile I2c iletişimini kolaylaştırmak için Wire.h kitaplığını ekledik.
Kodu buradan da kopyalayabilirsiniz, aşağıdaki şekilde verilmiştir:
// Özgür irade lisansıyla dağıtılır.
// İlişkili çalışmalarının lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın.
// MPL3115A2
// Bu kod, MPL3115A2_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.
#Dahil etmek
// MPL3115A2 I2C adresi 0x60(96)
#define Addr 0x60
geçersiz kurulum()
{
// I2C iletişimini başlat
Wire.begin();
// Seri İletişimi Başlat, baud hızını ayarla = 9600
Seri.başla(9600);
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Kontrol kaydı seç
Wire.write(0x26);
// Aktif mod, OSR = 128, altimetre modu
Wire.write(0xB9);
// I2C iletimini durdur
Wire.endTransmission();
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Veri yapılandırma kaydını seç
Wire.write(0x13);
// Rakım, basınç, sıcaklık için veri hazır olayı etkinleştirildi
Wire.write(0x07);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(300);
}
boşluk döngüsü()
{
imzasız int veri[6];
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Kontrol kaydı seç
Wire.write(0x26);
// Aktif mod, OSR = 128, altimetre modu
Wire.write(0xB9);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(1000);
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Veri kaydını seç
Wire.write(0x00);
// I2C iletimini durdur
Wire.endTransmission();
// 6 bayt veri iste
Wire.requestFrom(Adr, 6);
// 0x00(00) adresinden 6 bayt veri oku
// durum, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
if (Wire.available() == 6)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
veri[3] = Wire.read();
veri[4] = Wire.read();
veri[5] = Wire.read();
}
// Veriyi 20 bit'e çevir
int tHeight = (((uzun)(veri[1] * (uzun)65536) + (veri[2] * 256) + (veri[3] & 0xF0)) / 16);
int temp = ((veri[4] * 256) + (veri[5] & 0xF0)) / 16;
yüzer yükseklik = tYükseklik / 16.0;
float cTemp = (sıcaklık / 16.0);
kayan nokta fTemp = cTemp * 1.8 + 32;
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Kontrol kaydı seç
Wire.write(0x26);
// Aktif mod, OSR = 128, barometre modu
Wire.write(0x39);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(1000);
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Veri kaydını seç
Wire.write(0x00);
// I2C iletimini durdur
Wire.endTransmission();
// 4 bayt veri iste
Wire.requestFrom(Adr, 4);
// 4 bayt veri oku
// durum, msb1'e bas, msb'ye bas, lsb'ye bas
if (Wire.available() == 4)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
veri[3] = Wire.read();
}
// Veriyi 20 bit'e çevir
uzun bas = (((uzun)veri[1] * (uzun)65536) + (veri[2] * 256) + (veri[3] & 0xF0)) / 16;
şamandıra basıncı = (pres / 4.0) / 1000.0;
// Verileri seri monitöre çıkar
Serial.print("Yükseklik: ");
Seri.print(yükseklik);
Seri.println("m");
Serial.print("Basınç: ");
Seri.print(basınç);
Serial.println(" kPa");
Serial.print("Sıcaklık Santigrat Olarak: ");
Seri.print(cTemp);
Serial.println("C");
Serial.print("Sıcaklık Fahrenhayt Olarak: ");
Seri.print(fTemp);
Serial.println("F");
gecikme(500);
}
Adım 4: Uygulamalar:
MPL3115A2'nin çeşitli uygulamaları arasında Yüksek Doğruluk Altimetri, Akıllı Telefonlar/Tabletler, Kişisel Elektronik Altimetri vb. bulunur. Ayrıca GPS Ölü Hesaplama, Acil Servisler için GPS Geliştirme, Harita Yardımı, Navigasyon ve Hava İstasyonu Ekipmanlarına da dahil edilebilir.
Önerilen:
Arduino Nano ile Waveshare E-ink Ekran Hassas Voltmetre (0-90v DC): 3 Adım
![Arduino Nano ile Waveshare E-ink Ekran Hassas Voltmetre (0-90v DC): 3 Adım Arduino Nano ile Waveshare E-ink Ekran Hassas Voltmetre (0-90v DC): 3 Adım](https://i.howwhatproduce.com/images/002/image-3652-j.webp)
Arduino Nano ile Waveshare E-mürekkep Ekran Hassas Voltmetre (0-90v DC) E-Kağıt Ekranında volt DC. Bu talimat, önceki iki projeyi birleştirir: - Ardui
Arduino Hassas ve Doğru Volt Metre (0-90V DC): 3 Adım
![Arduino Hassas ve Doğru Volt Metre (0-90V DC): 3 Adım Arduino Hassas ve Doğru Volt Metre (0-90V DC): 3 Adım](https://i.howwhatproduce.com/images/002/image-5057-j.webp)
Arduino Hassas ve Doğru Volt Ölçer (0-90V DC): Bu talimatta, bir Arduino Nano kullanarak yüksek voltajları DC (0-90v) göreceli hassasiyet ve doğrulukla ölçmek için bir voltmetre oluşturdum. Aldığım test ölçümleri yeterince doğruydu, çoğunlukla ölçülen gerçek voltajın 0,3v'si içinde
Arduino: Hassas Robot: 6 Adım
![Arduino: Hassas Robot: 6 Adım Arduino: Hassas Robot: 6 Adım](https://i.howwhatproduce.com/images/003/image-8137-j.webp)
Arduino: Hassas Robot: Merhaba.Arduino ve diğer birkaç parça ile nasıl robot yapabileceğinizi göstermek istiyorum. Peki neye ihtiyacımız var? Arduino. Leonardo'm var ama önemli değil H köprüsü TB6612FNG veya diğer Robot Şasi, örneğin DAGU DG012-SV
DropArt - Hassas İki Damla Fotoğraf Çarpıştırıcısı: 11 Adım (Resimlerle)
![DropArt - Hassas İki Damla Fotoğraf Çarpıştırıcısı: 11 Adım (Resimlerle) DropArt - Hassas İki Damla Fotoğraf Çarpıştırıcısı: 11 Adım (Resimlerle)](https://i.howwhatproduce.com/images/006/image-15880-j.webp)
DropArt - Hassas İki Damla Fotoğraf Çarpıştırıcısı: Herkese merhaba, Bu derste bilgisayar kontrollü iki sıvı damla çarpıştırıcısı için tasarımımı sunuyorum. Tasarım detaylarına geçmeden önce tasarımın amacının ne olduğunu tam olarak açıklamanın mantıklı olduğunu düşünüyorum.Eğlenceli, ilginç
Arduino: Step Motor için Hassas Lib: 19 Adım
![Arduino: Step Motor için Hassas Lib: 19 Adım Arduino: Step Motor için Hassas Lib: 19 Adım](https://i.howwhatproduce.com/images/002/image-3950-62-j.webp)
Arduino: Step Motor için Precision Lib: Bugün sizlere limit anahtarlı tam adım motor sürücüsü, hızlanma ve mikro adımlı motor hareketi için bir kitaplık göstereceğim. Hem Arduino Uno'da hem de Arduino Mega'da çalışan bu Lib, motorları tek