فهرست مطالب:
- مرحله 1: سخت افزار مورد نیاز:
- مرحله 2: اتصال سخت افزاری:
- مرحله 3: کد اندازه گیری شتاب:
- مرحله 4: برنامه های کاربردی:
تصویری: اندازه گیری شتاب با استفاده از ADXL345 و ذره فوتون: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
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: کد اندازه گیری شتاب:
اجازه دهید اکنون با کد ذره شروع کنیم.
هنگام استفاده از ماژول حسگر با ذره ، کتابخانه application.h و spark_wiring_i2c.h را شامل می شود. کتابخانه "application.h" و spark_wiring_i2c.h شامل توابع است که ارتباط i2c بین سنسور و ذره را تسهیل می کند.
برای راحتی کاربر ، کل کد ذرات در زیر آورده شده است:
#عبارتند از
#عبارتند از
// آدرس ADXL345 I2C 0x53 است (83)
#تعریف Addr 0x53
int xAccl = 0 ، yAccl = 0 ، zAccl = 0 ؛
void setup ()
{
// تنظیم متغیر
Particle.variable ("i2cdevice" ، "ADXL345") ؛
Particle.variable ("xAccl" ، xAccl) ؛
Particle.variable ("yAccl" ، yAccl) ؛
Particle.variable ("zAccl"، zAccl)؛
// راه اندازی ارتباط 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) ؛
// Auto sleep disable را انتخاب کنید
Wire.write (0x08) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ثبت فرمت داده را انتخاب کنید
Wire.write (0x31) ؛
// وضوح کامل ، +/- 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 ()؛
}
تأخیر (300) ؛
}
// تبدیل داده ها به 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 ؛
}
// خروجی داده ها به داشبورد
Particle.publish ("شتاب در محور X است:" ، رشته (xAccl)) ؛
Particle.publish ("شتاب در محور Y است:" ، رشته (yAccl)) ؛
Particle.publish ("شتاب در محور Z است:" ، رشته (zAccl)) ؛
}
تابع Particle.variable () متغیرهایی را برای ذخیره خروجی سنسور ایجاد می کند و تابع Particle.publish () خروجی را در داشبورد سایت نمایش می دهد.
خروجی سنسور در تصویر بالا برای مرجع شما نشان داده شده است.
مرحله 4: برنامه های کاربردی:
ADXL345 یک شتاب سنج کوچک ، باریک ، فوق العاده کم ، سه محور است که می تواند در گوشی ها ، ابزار پزشکی و غیره استفاده شود. برنامه کاربردی آن همچنین شامل دستگاه های بازی و اشاره ، ابزارهای صنعتی ، دستگاه های ناوبری شخصی و حفاظت از هارد دیسک (HDD) است.
توصیه شده:
اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و ذره فوتون: 4 مرحله
اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و ذره فوتون: HMC5883 یک قطب نمای دیجیتالی است که برای سنجش مغناطیسی میدان کم طراحی شده است. این دستگاه دارای طیف وسیعی از میدان مغناطیسی +/- 8 Oe و نرخ خروجی 160 هرتز است. سنسور HMC5883 شامل درایورهای جداکننده اتوماتیک تسمه بند ، لغو افست و
اندازه گیری رطوبت با استفاده از HYT939 و ذره فوتون: 4 مرحله
اندازه گیری رطوبت با استفاده از HYT939 و ذره فوتون: HYT939 یک سنسور رطوبت دیجیتال است که بر روی پروتکل ارتباطی I2C کار می کند. رطوبت یک پارامتر مهم در مورد سیستم های پزشکی و آزمایشگاه ها است ، بنابراین به منظور دستیابی به این اهداف ما سعی کردیم HYT939 را با تمشک pi ارتباط دهیم. من
اندازه گیری شتاب با استفاده از H3LIS331DL و ذره فوتون: 4 مرحله
اندازه گیری شتاب با استفاده از H3LIS331DL و ذره فوتون: H3LIS331DL ، یک شتاب سنج خطی کم توان با عملکرد بالا 3 محور متعلق به خانواده "نانو" ، با رابط سریال دیجیتال I²C است. H3LIS331DL دارای مقیاس های کامل قابل انتخاب 100 گرم//200 گرم/400 گرم user است و قادر به اندازه گیری شتاب های
اندازه گیری دما با استفاده از MCP9803 و ذره فوتون: 4 مرحله
اندازه گیری دما با استفاده از MCP9803 و ذره فوتون: MCP9803 یک سنسور دمای 2 سیم با دقت بالا است. آنها با رجیسترهای قابل برنامه ریزی کاربر که برنامه های سنجش دما را تسهیل می کنند تجسم یافته اند. این سنسور برای سیستم نظارت بر درجه حرارت چند منطقه ای بسیار پیچیده مناسب است. در
اندازه گیری شتاب با استفاده از BMA250 و ذره فوتون: 4 مرحله
اندازه گیری شتاب با استفاده از BMA250 و ذره فوتون: BMA250 یک شتاب سنج کوچک ، باریک و فوق کم قدرت ، 3 محوره با اندازه گیری وضوح بالا (13 بیتی) تا 16 گرم پوند است. داده های خروجی دیجیتال به صورت مکمل 16 بیتی دو فرمت شده و از طریق رابط دیجیتال I2C قابل دسترسی است. اندازه گیری استاتیک