جدول المحتويات:
- الخطوة 1: الأجهزة المطلوبة:
- الخطوة 2: ربط الأجهزة:
- الخطوة الثالثة: كود قياس التسارع:
- الخطوة 4: التطبيقات:
فيديو: قياس التسارع باستخدام ADXL345 و Arduino Nano: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
ADXL345 هو مقياس تسارع صغير ورفيع وقوي للغاية وثلاثة محاور بدقة عالية (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.
هذه الوصلات موضحة في الصور أعلاه.
الخطوة الثالثة: كود قياس التسارع:
لنبدأ بكود اردوينو الآن.
أثناء استخدام وحدة الاستشعار مع اردوينو ، نقوم بتضمين مكتبة Wire.h. تحتوي مكتبة "Wire" على الوظائف التي تسهل اتصال i2c بين المستشعر ولوحة اردوينو.
يتم تقديم كود اردوينو بالكامل أدناه لراحة المستخدم:
#يشمل
// عنوان ADXL345 I2C هو 0x53 (83)
#define Addr 0x53
الإعداد باطل()
{
// تهيئة اتصال I2C باعتباره MASTER
Wire.begin () ؛
// تهيئة الاتصال التسلسلي ، اضبط معدل الباود = 9600
Serial.begin (9600) ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل معدل عرض النطاق الترددي
Wire.write (0x2C) ؛
// الوضع العادي ، معدل بيانات الإخراج = 100 هرتز
Wire.write (0x0A) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل التحكم في الطاقة
Wire.write (0x2D) ؛
// تعطيل النوم التلقائي
Wire.write (0x08) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل تنسيق البيانات
Wire.write (0x31) ؛
// تم تعطيل الاختبار الذاتي ، واجهة بأربعة أسلاك ، دقة كاملة ، النطاق = +/- 2 جم
Wire.write (0x08) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
تأخير (300) ؛
}
حلقة فارغة()
{
بيانات int غير الموقعة [6] ؛
لـ (int i = 0 ؛ i <6 ؛ i ++)
{
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل البيانات
Wire.write ((50 + i)) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
// طلب 1 بايت من البيانات
Wire.request From (Addr، 1) ؛
// قراءة 6 بايت من البيانات
// xAccl lsb و xAccl msb و yAccl lsb و yAccl msb و zAccl lsb و zAccl msb
إذا (Wire.available () == 1)
{
البيانات = Wire.read () ؛
}
}
// تحويل البيانات إلى 10 بت
int xAccl = (((data [1] & 0x03) * 256) + data [0]) ؛
إذا (xAccl> 511)
{
xAccl - = 1024 ؛
}
int yAccl = (((data [3] & 0x03) * 256) + data [2]) ؛
إذا (yAccl> 511)
{
yAccl - = 1024 ؛
}
int zAccl = (((data [5] & 0x03) * 256) + data [4]) ؛
إذا (zAccl> 511)
{
zAccl - = 1024 ؛
}
// إخراج البيانات إلى الشاشة التسلسلية
Serial.print ("التسريع في المحور X هو:")؛
Serial.println (xAccl) ؛
Serial.print ("التسريع في المحور ص هو:")؛
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 هو مقياس تسارع صغير ورفيع وقوة منخفضة للغاية وثلاثة محاور بدقة عالية (13 بت) قياس يصل إلى ± 16 جم. يتم تنسيق بيانات الإخراج الرقمية كمكمل ثنائي 16 بت ويمكن الوصول إليها من خلال الواجهة الرقمية I2 C. يقيس
قياس التسارع باستخدام H3LIS331DL و Arduino Nano: 4 خطوات
قياس التسارع باستخدام H3LIS331DL و Arduino Nano: H3LIS331DL ، هو مقياس تسارع خطي منخفض الطاقة وعالي الأداء ثلاثي المحاور ينتمي إلى عائلة "nano" ، مع واجهة تسلسلية رقمية I²C. يحتوي H3LIS331DL على مقاييس كاملة يمكن اختيارها من قبل المستخدم تبلغ ± 100 جم / ± 200 جم / ± 400 جم وهي قادرة على قياس التسارع
قياس التسارع باستخدام ADXL345 و Raspberry Pi: 4 خطوات
قياس التسارع باستخدام ADXL345 و Raspberry Pi: يعد ADXL345 مقياس تسارع صغير ورفيع وذي قوة منخفضة للغاية وثلاثة محاور بدقة عالية (13 بت) قياس يصل إلى ± 16 جم. يتم تنسيق بيانات الإخراج الرقمية كمكمل ثنائي 16 بت ويمكن الوصول إليها من خلال الواجهة الرقمية I2 C. يقيس
قياس التسارع باستخدام BMA250 و Arduino Nano: 4 خطوات
قياس التسارع باستخدام BMA250 و Arduino Nano: BMA250 عبارة عن مقياس تسارع صغير ورفيع وذي قوة منخفضة للغاية وثلاثة محاور بدقة قياس عالية (13 بت) تصل إلى ± 16 جم. يتم تنسيق بيانات الإخراج الرقمية كمكمل ثنائي 16 بت ويمكن الوصول إليها من خلال الواجهة الرقمية I2C. يقيس ثابت
Arduino Nano و Visuino: تحويل التسارع إلى زاوية من مقياس التسارع ومستشعر الجيروسكوب MPU6050 I2C: 8 خطوات (بالصور)
Arduino Nano و Visuino: تحويل التسارع إلى زاوية من مقياس التسارع ومستشعر الجيروسكوب MPU6050 I2C: منذ فترة ، قمت بنشر برنامج تعليمي حول كيفية توصيل MPU9250 Accelerometer و Gyroscope و Compass Sensor إلى Arduino Nano وبرمجته باستخدام Visuino لإرسال بيانات الحزمة وعرضها على النطاق والأدوات المرئية. يرسل مقياس التسارع X ، Y ،