Mundarija:

Arduino Nano-MMA8452Q 3 o'qli 12 bitli/8 bitli raqamli akselerometr bo'yicha qo'llanma: 4 qadam
Arduino Nano-MMA8452Q 3 o'qli 12 bitli/8 bitli raqamli akselerometr bo'yicha qo'llanma: 4 qadam

Video: Arduino Nano-MMA8452Q 3 o'qli 12 bitli/8 bitli raqamli akselerometr bo'yicha qo'llanma: 4 qadam

Video: Arduino Nano-MMA8452Q 3 o'qli 12 bitli/8 bitli raqamli akselerometr bo'yicha qo'llanma: 4 qadam
Video: Arduino Nano MMA8452Q with 8x8 Dot Matrix 2024, Noyabr
Anonim
Image
Image

MMA8452Q-aqlli, kam quvvatli, uch o'qli, sig'imli, mikromashinali 12 bitli o'lchamli akselerometr. Foydalanuvchilar tomonidan dasturlashtiriladigan moslashuvchan variantlar akselerometrga o'rnatilgan ikkita funktsiya yordamida ta'minlanadi, ular ikkita uzilish pimiga o'rnatiladi. U ± 2g/± 4g/± 8g foydalanuvchi tomonidan tanlanishi mumkin bo'lgan to'liq o'lchovlarga ega, yuqori o'tkazuvchan filtrli filtrlangan ma'lumotlar va real vaqtda mavjud bo'lgan filtrlanmagan ma'lumotlar. Mana, Arduino nano bilan uning namoyishi.

1 -qadam: Sizga nima kerak.. !

Sizga nima kerak.. !!
Sizga nima kerak.. !!

1. Arduino Nano

2. MMA8452Q

3. I²C kabeli

4. Arduino Nano uchun I²C qalqoni

2 -qadam: Ulanish:

Ulanish
Ulanish
Ulanish
Ulanish
Ulanish
Ulanish
Ulanish
Ulanish

Arduino Nano uchun I2C qalqonini oling va uni muloyimlik bilan Nano pinlariga suring.

Keyin I2C kabelining bir uchini MMA8452Q sensoriga, ikkinchi uchini esa I2C ekraniga ulang.

Ulanishlar yuqoridagi rasmda ko'rsatilgan.

3 -qadam: Kod:

Kod
Kod

MMMA8452Q uchun arduino kodini bizning github omboridan- DCUBE do'konidan yuklab olish mumkin.

Mana havola.

Sensorning Arduino platasi bilan I2c aloqasini osonlashtirish uchun biz Wire.h kutubxonasini o'z ichiga olamiz.

Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:

// Ixtiyoriy litsenziya bilan tarqatilgan.

// Agar xohlasangiz, foyda yoki tekin ishlating, agar u tegishli asarlar litsenziyalariga mos kelsa.

// MMA8452Q

// Bu kod MMA8452Q_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.

#qo'shing

// MMA8452Q I2C manzili - 0x1C (28)

#Addr 0x1C ni aniqlang

bo'sh o'rnatish ()

{

// I2C aloqasini MASTER sifatida boshlang

Wire.begin ();

// Serial aloqani ishga tushiring, bod tezligi = 9600

Serial.begin (9600);

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Boshqarish registrini tanlang

Wire.write (0x2A);

// Kutish rejimi

Wire.write (0x00);

// I2C uzatishni to'xtating

Wire.endTransmission ();

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Boshqarish registrini tanlang

Wire.write (0x2A);

// Faol rejim

Wire.write (0x01);

// I2C uzatishni to'xtating

Wire.endTransmission ();

// I2C uzatishni boshlang

Wire.beginTransmission (Addr);

// Boshqarish registrini tanlang

Wire.write (0x0E);

// +/- 2g oralig'ini o'rnating

Wire.write (0x00);

// I2C uzatishni to'xtating

Wire.endTransmission ();

kechikish (300);

}

bo'sh halqa ()

{

imzosiz int ma'lumotlari [7];

// 7 bayt ma'lumotni so'rang

Wire.requestFrom (Addr, 7);

// 7 bayt ma'lumotni o'qing

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

agar (Wire.available () == 7)

{

ma'lumotlar [0] = Wire.read ();

ma'lumotlar [1] = Wire.read ();

ma'lumotlar [2] = Wire.read ();

ma'lumotlar [3] = Wire.read ();

ma'lumotlar [4] = Wire.read ();

ma'lumotlar [5] = Wire.read ();

ma'lumotlar [6] = Wire.read ();

}

// Ma'lumotni 12 bitga aylantiring

int xAccl = ((ma'lumotlar [1] * 256) + ma'lumotlar [2]) / 16;

agar (xAccl> 2047)

{

xAccl -= 4096;

}

int yAccl = ((ma'lumotlar [3] * 256) + ma'lumotlar [4]) / 16;

agar (yAccl> 2047)

{

yAccl -= 4096;

}

int zAccl = ((ma'lumotlar [5] * 256) + ma'lumotlar [6]) / 16;

agar (zAccl> 2047)

{

zAccl -= 4096;

}

// Ma'lumotlarni ketma -ket monitorga chiqarish

Serial.print ("X o'qida tezlashtirish:");

Serial.println (xAccl);

Serial.print ("Y o'qida tezlashtirish:");

Serial.println (yAccl);

Serial.print ("Z o'qida tezlashtirish:");

Serial.println (zAccl);

kechikish (500);

}

4 -qadam: Ilovalar:

MMA8452Q turli xil ilovalarga ega, ular orasida elektron kompas ilovalari, statik yo'nalishni aniqlash, portret/landshaft, yuqoriga/pastga, chapga/o'ngga, orqaga/oldingi holatni aniqlash, daftar, elektron o'quvchi, noutbukning qulashi va tushishini aniqlash, real vaqtda. yo'nalishlarni aniqlash, shu jumladan virtual haqiqat va o'yindagi 3D foydalanuvchi pozitsiyasi haqidagi fikr-mulohazalar, pedometr qadamlarini sanash, HDD uchun tushishni aniqlash, o'lik hisob-kitobli GPS zaxirasi va boshqalar kabi real vaqtda faoliyatni tahlil qilish.

Tavsiya: