فهرست مطالب:

اندازه گیری شتاب با استفاده از ADXL345 و آردوینو نانو: 4 مرحله
اندازه گیری شتاب با استفاده از ADXL345 و آردوینو نانو: 4 مرحله

تصویری: اندازه گیری شتاب با استفاده از ADXL345 و آردوینو نانو: 4 مرحله

تصویری: اندازه گیری شتاب با استفاده از ADXL345 و آردوینو نانو: 4 مرحله
تصویری: How to use MPU-6050 Accelerometer and Gyroscope with Arduino code 2024, نوامبر
Anonim
Image
Image

ADXL345 یک شتاب سنج کوچک ، باریک ، فوق العاده کم ، 3 محور با اندازه گیری وضوح بالا (13 بیت) تا 16 گرم پوند است. داده های خروجی دیجیتال به صورت مکمل 16 بیتی دو فرمت شده و از طریق رابط دیجیتال I2 C قابل دسترسی است. شتاب ثابتی گرانش را در برنامه های حسگر شیب و همچنین شتاب پویا ناشی از حرکت یا ضربه اندازه گیری می کند. وضوح بالا (3.9 میلی گرم/LSB) اندازه گیری تغییرات شیب کمتر از 1.0 درجه را امکان پذیر می کند.

در این آموزش ، رابط ماژول سنسور ADXL345 با آردوینو نانو نشان داده شده است. برای خواندن مقادیر شتاب ، ما از آردوینو با آداپتور I2c استفاده کرده ایم. این آداپتور I2C اتصال به ماژول سنسور را آسان و قابل اطمینان تر می کند.

مرحله 1: سخت افزار مورد نیاز:

سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز

مواد مورد نیاز برای تحقق هدف ما شامل اجزای سخت افزاری زیر است:

1. ADXL345

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

3. کابل I2C

4. I2C Shield برای آردوینو نانو

مرحله 2: اتصال سخت افزاری:

اتصال سخت افزاری
اتصال سخت افزاری
اتصال سخت افزاری
اتصال سخت افزاری

بخش اتصال سخت افزاری اساساً اتصالات سیم کشی مورد نیاز بین سنسور و آردوینو نانو را توضیح می دهد. اطمینان از اتصالات صحیح ضروری ترین ضرورت در هنگام کار بر روی هر سیستم برای خروجی مورد نظر است. بنابراین ، اتصالات مورد نیاز به شرح زیر است:

ADXL345 از طریق I2C کار خواهد کرد. در اینجا مثال نمودار سیم کشی است که نحوه اتصال هر رابط سنسور را نشان می دهد.

خارج از جعبه ، برد برای یک رابط I2C پیکربندی شده است ، بنابراین توصیه می کنیم در غیر این صورت آگنوستیک از این اتصال استفاده کنید.

تنها چیزی که نیاز دارید چهار سیم است! فقط چهار اتصال نیاز به پین های Vcc ، Gnd ، SCL و SDA دارد و این اتصالات با کمک کابل I2C متصل می شوند.

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

مرحله 3: کد اندازه گیری شتاب:

کد اندازه گیری شتاب
کد اندازه گیری شتاب

بیایید اکنون با کد arduino شروع کنیم.

هنگام استفاده از ماژول سنسور با آردوینو ، ما کتابخانه Wire.h را شامل می شود. کتابخانه "Wire" شامل عملکردهایی است که ارتباط i2c بین سنسور و برد آردوینو را تسهیل می کند.

برای راحتی کاربر ، کل کد آردوینو در زیر آورده شده است:

#عبارتند از

// آدرس ADXL345 I2C 0x53 است (83)

#تعریف Addr 0x53

void setup ()

{

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

Wire.begin ()؛

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

Serial.begin (9600)؛

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

Wire.beginTransmission (Addr)؛

// ثبت نرخ نرخ پهنای باند

Wire.write (0x2C) ؛

// حالت عادی ، نرخ داده خروجی = 100 هرتز

Wire.write (0x0A) ؛

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

Wire.endTransmission ()؛

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

Wire.beginTransmission (Addr)؛

// power control register را انتخاب کنید

Wire.write (0x2D) ؛

// غیرفعال کردن حالت خواب خودکار

Wire.write (0x08) ؛

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

Wire.endTransmission ()؛

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

Wire.beginTransmission (Addr)؛

// ثبت فرمت داده را انتخاب کنید

Wire.write (0x31) ؛

// خودآزمایی غیرفعال ، رابط 4 سیم ، وضوح کامل ، محدوده = +/- 2g

Wire.write (0x08) ؛

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

Wire.endTransmission ()؛

تأخیر (300) ؛

}

حلقه خالی ()

{

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

برای (int i = 0 ؛ i <6؛ i ++)

{

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

Wire.beginTransmission (Addr)؛

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

Wire.write ((50 + i)) ؛

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

Wire.endTransmission ()؛

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

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

// خواندن 6 بایت داده

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

if (Wire.available () == 1)

{

داده = Wire.read ()؛

}

}

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

int xAccl = (((داده [1] & 0x03) * 256) + داده [0])؛

if (xAccl> 511)

{

xAccl -= 1024 ؛

}

int yAccl = (((داده [3] & 0x03) * 256) + داده [2])؛

if (yAccl> 511)

{

yAccl -= 1024 ؛

}

int zAccl = (((داده [5] & 0x03) * 256) + داده [4])؛

if (zAccl> 511)

{

zAccl -= 1024 ؛

}

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

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

Serial.println (xAccl) ؛

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

Serial.println (yAccl) ؛

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

Serial.println (zAccl) ؛

تأخیر (300) ؛

}

در کتابخانه سیم Wire.write () و Wire.read () برای نوشتن دستورات و خواندن خروجی سنسور استفاده می شود.

Serial.print () و Serial.println () برای نمایش خروجی سنسور در مانیتور سریال Arduino IDE استفاده می شود.

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

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

برنامه های کاربردی
برنامه های کاربردی

ADXL345 یک شتاب سنج کوچک ، باریک ، فوق العاده کم ، سه محور است که می تواند در گوشی ها ، ابزار پزشکی و غیره استفاده شود. برنامه کاربردی آن همچنین شامل دستگاه های بازی و اشاره ، ابزارهای صنعتی ، دستگاه های ناوبری شخصی و حفاظت از هارد دیسک (HDD) است.

توصیه شده: