فهرست مطالب:

آموزش آردوینو نانو-MMA8452Q 3 محور 12 بیت/8 بیت دیجیتال شتاب سنج: 4 مرحله
آموزش آردوینو نانو-MMA8452Q 3 محور 12 بیت/8 بیت دیجیتال شتاب سنج: 4 مرحله

تصویری: آموزش آردوینو نانو-MMA8452Q 3 محور 12 بیت/8 بیت دیجیتال شتاب سنج: 4 مرحله

تصویری: آموزش آردوینو نانو-MMA8452Q 3 محور 12 بیت/8 بیت دیجیتال شتاب سنج: 4 مرحله
تصویری: چطور به کمک چت جی پی تی با آردوینو برنامه نویسی کنیم؟ [Chat GPT] [Arduino] 2024, جولای
Anonim
Image
Image

MMA8452Q یک شتاب سنج هوشمند ، کم مصرف ، سه محوری ، خازنی و میکرو ماشین با وضوح 12 بیت است. گزینه های قابل برنامه ریزی کاربر منعطف با کمک توابع تعبیه شده در شتاب سنج ، قابل تنظیم در دو پین وقفه ارائه شده است. دارای مقیاس های کامل قابل انتخاب توسط کاربر of 2g/± 4g/g 8g با داده های فیلتر شده با گذر بالا و همچنین داده های بدون فیلتر موجود در زمان واقعی است. در اینجا نمایش آن با آردوینو نانو است.

مرحله 1: آنچه شما نیاز دارید..

آنچه شما نیاز دارید.. !!
آنچه شما نیاز دارید.. !!

1. آردوینو نانو

2. MMA8452Q

3. کابل I²C

4. I²C Shield برای آردوینو نانو

مرحله 2: اتصال:

ارتباط
ارتباط
ارتباط
ارتباط
ارتباط
ارتباط
ارتباط
ارتباط

یک سپر I2C برای آردوینو نانو بگیرید و آن را به آرامی روی پین های نانو فشار دهید.

سپس یک سر کابل I2C را به سنسور MMA8452Q و سر دیگر را به سپر I2C وصل کنید.

اتصالات در تصویر بالا نشان داده شده است.

مرحله 3: کد:

کد
کد

کد آردوینو برای MMMA8452Q را می توانید از مخزن github ما- فروشگاه DCUBE بارگیری کنید.

اینجا پیوند است.

ما کتابخانه Wire.h را برای تسهیل ارتباط I2c سنسور با برد آردوینو قرار می دهیم.

همچنین می توانید کد را از اینجا کپی کنید ، به صورت زیر آمده است:

// با مجوز اراده آزاد توزیع می شود.

// از آن به هر نحوی که می خواهید استفاده کنید ، سودمند یا رایگان ، مشروط بر اینکه در مجوز آثار مربوط به آن متناسب باشد.

// MMA8452Q

// این کد برای کار با ماژول کوتاه MMA8452Q_I2CS I2C طراحی شده است.

#عبارتند از

// آدرس MMA8452Q I2C 0x1C است (28)

#تعریف Addr 0x1C

void setup ()

{

// راه اندازی ارتباط I2C به عنوان MASTER

Wire.begin ()؛

// برقراری ارتباط اولیه ، تنظیم نرخ باود = 9600

Serial.begin (9600)؛

// شروع انتقال I2C

Wire.beginTransmission (Addr)؛

// کنترل ثبت را انتخاب کنید

Wire.write (0x2A) ؛

// حالت StandBy

Wire.write (0x00) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

// شروع انتقال I2C

Wire.beginTransmission (Addr)؛

// کنترل ثبت را انتخاب کنید

Wire.write (0x2A) ؛

// حالت فعال

Wire.write (0x01) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

// شروع انتقال I2C

Wire.beginTransmission (Addr)؛

// کنترل ثبت را انتخاب کنید

Wire.write (0x0E) ؛

// محدوده را روی +/- 2g تنظیم کنید

Wire.write (0x00) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

تأخیر (300) ؛

}

حلقه خالی ()

{

اطلاعات int بدون علامت [7]؛

// درخواست 7 بایت داده

سیم. درخواست از (Addr، 7)؛

// 7 بایت داده را بخوانید

// staus ، xAccl lsb ، xAccl msb ، yAccl lsb ، yAccl msb ، zAccl lsb ، zAccl msb

if (Wire.available () == 7)

{

داده [0] = Wire.read ()؛

داده [1] = Wire.read ()؛

داده [2] = Wire.read ()؛

داده [3] = Wire.read ()؛

داده [4] = Wire.read ()؛

داده [5] = Wire.read ()؛

داده [6] = Wire.read ()؛

}

// تبدیل داده ها به 12 بیت

int xAccl = ((داده [1] * 256) + داده [2]) / 16؛

if (xAccl> 2047)

{

xAccl -= 4096 ؛

}

int yAccl = ((داده [3] * 256) + داده [4]) / 16؛

if (yAccl> 2047)

{

yAccl -= 4096 ؛

}

int zAccl = ((داده [5] * 256) + داده [6]) / 16؛

if (zAccl> 2047)

{

zAccl -= 4096 ؛

}

// خروجی داده ها به مانیتور سریال

Serial.print ("شتاب در محور X:") ؛

Serial.println (xAccl) ؛

Serial.print ("شتاب در محور Y:") ؛

Serial.println (yAccl) ؛

Serial.print ("شتاب در محور Z:") ؛

Serial.println (zAccl) ؛

تأخیر (500) ؛

}

مرحله 4: برنامه های کاربردی:

MMA8452Q دارای برنامه های مختلفی است که شامل برنامه های E-Compass ، تشخیص جهت گیری استاتیک که شامل عمودی/منظره ، بالا/پایین ، چپ/راست ، شناسایی موقعیت عقب/جلو ، نوت بوک ، خواننده الکترونیکی ، و تشخیص لغزش و سقوط آزاد ، زمان واقعی است تشخیص جهت گیری از جمله واقعیت مجازی و بازخورد موقعیت کاربر 3D بازی ، تجزیه و تحلیل فعالیت در زمان واقعی مانند شمارش گام شمار ، تشخیص افت سقوط آزاد برای هارد دیسک ، پشتیبان گیری GPS حساب شده و موارد دیگر.

توصیه شده: