فهرست مطالب:
- مرحله 1: سخت افزار مورد نیاز:
- مرحله 2: اتصال سخت افزاری:
- مرحله 3: کد اندازه گیری شتاب:
- مرحله 4: برنامه های کاربردی:
تصویری: اندازه گیری شتاب با استفاده از ADXL345 و آردوینو نانو: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
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) است.
توصیه شده:
اندازه گیری شتاب با استفاده از ADXL345 و ذره فوتون: 4 مرحله
اندازه گیری شتاب با استفاده از ADXL345 و ذره فوتون: ADXL345 یک شتاب سنج کوچک ، نازک ، فوق العاده کم قدرت ، 3 محوره با اندازه گیری وضوح بالا (13 بیتی) تا 16 گرم است. داده های خروجی دیجیتال به صورت مکمل 16 بیتی دو فرمت شده و از طریق رابط دیجیتال I2 C قابل دسترسی است. اندازه گیری
اندازه گیری شتاب با استفاده از H3LIS331DL و آردوینو نانو: 4 مرحله
اندازه گیری شتاب با استفاده از H3LIS331DL و آردوینو نانو: H3LIS331DL ، یک شتاب سنج خطی کم توان با عملکرد بالا 3 محور متعلق به خانواده "نانو" ، با رابط سریال دیجیتال I²C است. H3LIS331DL دارای مقیاس های کامل قابل انتخاب 100 گرم//200 گرم/400 گرم user است و قادر به اندازه گیری شتاب های
اندازه گیری شتاب با استفاده از ADXL345 و Raspberry Pi: 4 مرحله
اندازه گیری شتاب با استفاده از ADXL345 و Raspberry Pi: ADXL345 یک شتاب سنج کوچک ، باریک ، فوق العاده کم قدرت ، 3 محوره با اندازه گیری وضوح بالا (13 بیتی) تا 16 گرم است. داده های خروجی دیجیتال به صورت مکمل 16 بیتی دو فرمت شده و از طریق رابط دیجیتال I2 C قابل دسترسی است. اندازه گیری
اندازه گیری شتاب با استفاده از BMA250 و آردوینو نانو: 4 مرحله
اندازه گیری شتاب با استفاده از BMA250 و آردوینو نانو: BMA250 یک شتاب سنج کوچک ، نازک ، فوق العاده کم قدرت ، 3 محوره با اندازه گیری وضوح بالا (13 بیت) تا 16 گرم پوند است. داده های خروجی دیجیتال به صورت مکمل دو بیتی 16 بیتی قالب بندی شده و از طریق رابط دیجیتال I2C قابل دسترسی است. اندازه گیری استاتیک
اندازه گیری زاویه با استفاده از ژیروسکوپ ، شتاب سنج و آردوینو: 5 مرحله
اندازه گیری زاویه با استفاده از ژیروسکوپ ، شتاب سنج و آردوینو: این دستگاه نمونه اولیه ای از چیزی است که در نهایت به یک ربات خود تعادل تبدیل می شود ، این قسمت دوم از سوراخ است (شتاب سنج را بخوانید و یک موتور را برای تعادل خود کنترل کنید). قسمت اول فقط با ژیروسکوپ را می توانید در اینجا پیدا کنید. در این inst