İçindekiler:

Arduino Nano - MMA8452Q 3-Eksen 12-bit/8-bit Dijital İvmeölçer Eğitimi: 4 Adım
Arduino Nano - MMA8452Q 3-Eksen 12-bit/8-bit Dijital İvmeölçer Eğitimi: 4 Adım

Video: Arduino Nano - MMA8452Q 3-Eksen 12-bit/8-bit Dijital İvmeölçer Eğitimi: 4 Adım

Video: Arduino Nano - MMA8452Q 3-Eksen 12-bit/8-bit Dijital İvmeölçer Eğitimi: 4 Adım
Video: Как использовать гироскоп, акселерометр, магнитометр MPU-9250 для Arduino 2024, Temmuz
Anonim
Image
Image

MMA8452Q, 12 bit çözünürlüğe sahip akıllı, düşük güçlü, üç eksenli, kapasitif, mikro makinede işlenmiş bir ivmeölçerdir. İvmeölçerdeki yerleşik fonksiyonların yardımıyla, iki kesme pinine yapılandırılabilen esnek, kullanıcı tarafından programlanabilen seçenekler sunulur. Kullanıcı tarafından seçilebilen ±2g/±4g/±8g tam ölçeklere sahip olup, yüksek geçişli filtre filtreli veriler ve filtrelenmemiş veriler gerçek zamanlı olarak mevcuttur. İşte Arduino nano ile gösterimi.

Adım 1: İhtiyacınız Olan Şey..!

Neye ihtiyacın var..!!
Neye ihtiyacın var..!!

1. Arduino Nano

2. MMA8452Q

3. I²C Kablosu

4. Arduino Nano için I²C Kalkanı

Adım 2: Bağlantı:

Bağlantı
Bağlantı
Bağlantı
Bağlantı
Bağlantı
Bağlantı
Bağlantı
Bağlantı

Arduino Nano için bir I2C kalkanı alın ve yavaşça Nano'nun pimlerinin üzerine itin.

Ardından I2C kablosunun bir ucunu MMA8452Q 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

MMMA8452Q için arduino kodu, github depomuz olan DCUBE Store'dan indirilebilir.

Bağlantı burada.

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.

// MMA8452Q

// Bu kod, MMA8452Q_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.

#Dahil etmek

// MMA8452Q I2C adresi 0x1C(28)

#define Addr 0x1C

geçersiz kurulum()

{

// I2C iletişimini MASTER olarak başlat

Wire.begin();

// Seri İletişimi Başlat, baud hızını ayarla = 9600

Seri.başla(9600);

// I2C İletimini Başlat

Wire.beginTransmission(Adr);

// Kontrol kaydı seç

Wire.write(0x2A);

// Bekleme modu

Wire.write(0x00);

// I2C İletimini Durdur

Wire.endTransmission();

// I2C İletimini Başlat

Wire.beginTransmission(Adr);

// Kontrol kaydı seç

Wire.write(0x2A);

// Aktif mod

Wire.write(0x01);

// I2C İletimini Durdur

Wire.endTransmission();

// I2C İletimini Başlat

Wire.beginTransmission(Adr);

// Kontrol kaydı seç

Wire.write(0x0E);

// Aralığı +/- 2g olarak ayarla

Wire.write(0x00);

// I2C İletimini Durdur

Wire.endTransmission();

gecikme(300);

}

boşluk döngüsü()

{

imzasız int veri[7];

// 7 bayt veri iste

Wire.requestFrom(Adr, 7);

// 7 bayt veri oku

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

if(Wire.available() == 7)

{

data[0] = Wire.read();

data[1] = Wire.read();

data[2] = Wire.read();

veri[3] = Wire.read();

veri[4] = Wire.read();

veri[5] = Wire.read();

veri[6] = Wire.read();

}

// Veriyi 12 bit'e çevir

int xAccl = ((veri[1] * 256) + veri[2]) / 16;

eğer (xAccl > 2047)

{

xAccl -= 4096;

}

int yAccl = ((veri[3] * 256) + veri[4]) / 16;

if (yAccl > 2047)

{

yAccl -= 4096;

}

int zAccl = ((veri[5] * 256) + veri[6]) / 16;

if (zAccl > 2047)

{

zAccl -= 4096;

}

// Verileri seri monitöre çıkar

Serial.print("X Ekseninde Hızlanma: ");

Serial.println(xAccl);

Serial.print("Y Ekseninde İvme: ");

Seri.println(yAccl);

Serial.print("Z Ekseninde İvme: ");

Serial.println(zAccl);

gecikme(500);

}

Adım 4: Uygulamalar:

MMA8452Q, E-Pusula uygulamaları, Dikey/Yatay, Yukarı/Aşağı, Sol/Sağ, Arka/Ön konum tanımlama, Dizüstü Bilgisayar, e-okuyucu ve Dizüstü Bilgisayar Düşme ve Serbest Düşme Algılamayı içeren Statik yön algılama, Gerçek zamanlı gibi çeşitli uygulamalara sahiptir. sanal gerçeklik ve oyun 3D kullanıcı konumu geri bildirimi dahil oryantasyon algılama, pedometre adım sayma gibi gerçek zamanlı etkinlik analizi, HDD için serbest düşüş algılama, ölü hesaplama GPS yedekleme ve çok daha fazlası.

Önerilen: