İçindekiler:

H3LIS331DL ve Parçacık Fotonu Kullanarak Hızlanma Ölçümü: 4 Adım
H3LIS331DL ve Parçacık Fotonu Kullanarak Hızlanma Ölçümü: 4 Adım

Video: H3LIS331DL ve Parçacık Fotonu Kullanarak Hızlanma Ölçümü: 4 Adım

Video: H3LIS331DL ve Parçacık Fotonu Kullanarak Hızlanma Ölçümü: 4 Adım
Video: Product Showcase: H3LIS331DL Triple Axis Accelerometer Breakout 2024, Temmuz
Anonim
Image
Image

H3LIS331DL, dijital I²C seri arabirimli, “nano” ailesine ait, düşük güçlü, yüksek performanslı, 3 eksenli bir doğrusal ivmeölçerdir. H3LIS331DL, kullanıcı tarafından seçilebilir ±100g/±200g/±400g tam ölçeklere sahiptir ve 0,5 Hz ila 1 kHz çıkış veri hızları ile ivmeleri ölçebilir. H3LIS331DL'nin -40 °C ila +85 °C arasında geniş bir sıcaklık aralığında çalışması garanti edilir.

Bu derste H3LIS331DL'nin parçacık foton ile arayüzlenmesini göstereceğiz.

Adım 1: Donanım Gerekli:

Gerekli Donanım
Gerekli Donanım
Gerekli Donanım
Gerekli Donanım
Gerekli Donanım
Gerekli Donanım

Hedefimizi gerçekleştirmek için ihtiyaç duyduğumuz malzemeler aşağıdaki donanım bileşenlerini içerir:

1. H3LIS331DL

2. Parçacık Fotonu

3. I2C Kablosu

4. Parçacık fotonu için I2C kalkanı

Adım 2: Donanım Bağlantısı:

Donanım Bağlantısı
Donanım Bağlantısı
Donanım Bağlantısı
Donanım Bağlantısı

Donanım bağlantısı bölümü temel olarak sensör ve parçacık fotonu arasında gerekli olan kablo bağlantılarını açıklar. İstenilen çıktı için herhangi bir sistem üzerinde çalışırken doğru bağlantıların sağlanması temel zorunluluktur. Yani, gerekli bağlantılar aşağıdaki gibidir:

H3LIS331DL, I2C üzerinde çalışacaktır. Sensörün her bir arayüzünün nasıl bağlanacağını gösteren örnek kablo şeması buradadır.

Kutudan çıktığı gibi, kart bir I2C arayüzü için yapılandırılmıştır, bu nedenle, aksi takdirde agnostik iseniz bu bağlantıyı kullanmanızı öneririz. Tek ihtiyacınız olan dört tel!

Vcc, Gnd, SCL ve SDA pinlerinden sadece dört bağlantı gereklidir ve bunlar I2C kablosu yardımıyla bağlanır.

Bu bağlantılar yukarıdaki resimlerde gösterilmiştir.

Adım 3: İvme Ölçümü Kodu:

İvme Ölçümü Kodu
İvme Ölçümü Kodu

Şimdi parçacık koduyla başlayalım.

Sensör modülünü arduino ile kullanırken application.h ve spark_wiring_i2c.h kütüphanesini dahil ediyoruz. "application.h" ve spark_wiring_i2c.h kitaplığı, sensör ve parçacık arasındaki i2c iletişimini kolaylaştıran işlevleri içerir.

Parçacık kodunun tamamı, kullanıcının rahatlığı için aşağıda verilmiştir:

#Dahil etmek

#Dahil etmek

// H3LIS331DL I2C adresi 0x18(24)

#define Addr 0x18

int xAccl = 0, yAccl = 0, zAccl = 0;

geçersiz kurulum()

{

// Değişken ayarla

Particle.variable("i2ccihaz", "H3LIS331DL");

Particle.variable("xAccl", xAccl);

Particle.variable("yAccl",yAccl);

Particle.variable("zAccl",zAccl);

// I2C iletişimini MASTER olarak başlat

Wire.begin();

// Seri iletişimi başlat, baud hızını ayarla = 9600

Seri.başla(9600);

// I2C İletimini Başlat

Wire.beginTransmission(Adr);

// Kontrol kaydı 1'i seç

Wire.write(0x20);

// X, Y, Z eksenini etkinleştir, güç açık modu, veri çıkış hızı 50Hz

Wire.write(0x27);

// I2C İletimini Durdur

Wire.endTransmission();

// I2C İletimini Başlat

Wire.beginTransmission(Adr);

// Kontrol kaydı 4'ü seç

Wire.write(0x23);

// Tam ölçeği ayarla, +/- 100g, sürekli güncelleme

Wire.write(0x00);

// I2C İletimini Durdur

Wire.endTransmission();

gecikme(300);

}

boşluk döngüsü()

{

imzasız int veri[6];

for(int i = 0; i < 6; i++)

{

// I2C İletimini Başlat

Wire.beginTransmission(Adr);

// Veri kaydını seç

Wire.write((40 + i));

// I2C İletimini Durdur

Wire.endTransmission();

// 1 bayt veri iste

Wire.requestFrom(Adr, 1);

// 6 bayt veri oku

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

if(Wire.available() == 1)

{

data = Wire.read();

}

gecikme(300);

}

// Verileri dönüştür

int xAccl = ((veri[1] * 256) + veri[0]);

if(xAccl > 32767)

{

xAccl -= 65536;

}

int yAccl = ((veri[3] * 256) + veri[2]);

if(yAccl > 32767)

{

yAccl -= 65536;

}

int zAccl = ((veri[5] * 256) + veri[4]);

if(zAccl > 32767)

{

zAccl -= 65536;

}

// Gösterge tablosuna veri çıkışı

Particle.publish("X-Ekseninde İvme:", String(xAccl));

Particle.publish("Y Ekseninde İvme:", String(yAccl));

Particle.publish("Z-Ekseninde İvme:", String(zAccl));

gecikme(300);

}

Particle.variable() işlevi, sensörün çıktısını depolamak için değişkenleri oluşturur ve Particle.publish() işlevi, çıktıyı sitenin panosunda görüntüler.

Sensör çıkışı, referansınız için yukarıdaki resimde gösterilmektedir.

Adım 4: Uygulamalar:

Uygulamalar
Uygulamalar

H3LIS331DL gibi ivmeölçerler, uygulamalarını çoğunlukla oyunlarda bulur ve profil değiştirmeyi görüntüler. Bu sensör modülü, mobil uygulamalar için gelişmiş güç yönetim sisteminde de kullanılır. H3LIS331DL, akıllı bir çip üzerinde hareketle tetiklenen kesinti kontrolörü ile birleştirilmiş üç eksenli bir dijital hızlanma sensörüdür.

Önerilen: