كيفية توصيل مقياس التسارع بـ Arduino

جدول المحتويات:

كيفية توصيل مقياس التسارع بـ Arduino
كيفية توصيل مقياس التسارع بـ Arduino
Anonim

هذه المرة سنتعامل مع توصيل مقياس التسارع ثلاثي المحاور التناظري ADXL335 بـ Arduino.

مقياس التسارع التناظري ADXL335
مقياس التسارع التناظري ADXL335

ضروري

  • - اردوينو
  • - مقياس التسارع ADXL335 ؛
  • - جهاز كمبيوتر شخصي مع بيئة تطوير Arduino IDE.

تعليمات

الخطوة 1

تستخدم مقاييس التسارع لتحديد متجه التسارع. يحتوي مقياس التسارع ADXL335 على ثلاثة محاور ، وبفضل ذلك ، يمكنه تحديد متجه التسارع في الفضاء ثلاثي الأبعاد. نظرًا لحقيقة أن قوة الجاذبية هي أيضًا متجه ، يمكن لمقياس التسارع تحديد اتجاهه في الفضاء ثلاثي الأبعاد بالنسبة إلى مركز الأرض.

يعرض الرسم التوضيحي صورًا من جواز السفر (https://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf) لمقياس التسارع ADXL335. تظهر هنا محاور إحداثيات حساسية مقياس التسارع فيما يتعلق بالموضع الهندسي لجسم الجهاز في الفضاء ، بالإضافة إلى جدول قيم الجهد من 3 قنوات مقياس تسارع اعتمادًا على اتجاهه في الفضاء. البيانات الواردة في الجدول معطاة لجهاز استشعار في حالة الراحة.

دعونا نلقي نظرة فاحصة على ما يظهره لنا مقياس التسارع. دع المستشعر يستلقي أفقيًا ، على سبيل المثال ، على منضدة. بعد ذلك ، سيكون إسقاط متجه التسارع مساوياً لـ 1g على طول المحور Z ، أو Zout = 1g. سيكون للمحورين الآخرين أصفار: Xout = 0 و Yout = 0. عندما يتم تشغيل المستشعر "على ظهره" ، سيتم توجيهه في الاتجاه المعاكس بالنسبة لمتجه الجاذبية ، أي. Zout = -1 جرام. وبالمثل ، يتم أخذ القياسات على المحاور الثلاثة. من الواضح أن مقياس التسارع يمكن وضعه في الفضاء حسب الرغبة ، لذلك سنأخذ قراءات أخرى بخلاف الصفر من القنوات الثلاث.

إذا اهتز المسبار بقوة على طول المحور Z الرأسي ، فستكون قيمة Zout أكبر من "1g". أقصى تسارع قابل للقياس هو "3g" في كل من المحاور في أي اتجاه (على سبيل المثال مع "زائد" و "ناقص").

محاور حساسية مقياس التسارع وجدول قيم الإخراج
محاور حساسية مقياس التسارع وجدول قيم الإخراج

الخطوة 2

أعتقد أننا توصلنا إلى مبدأ تشغيل مقياس التسارع. الآن دعونا نلقي نظرة على مخطط الاتصال.

شريحة مقياس التسارع التناظرية ADXL335 صغيرة نوعًا ما وموجودة في حزمة BGA ، ومن الصعب تركيبها على لوحة في المنزل. لذلك ، سأستخدم وحدة GY-61 جاهزة مع مقياس تسارع ADXL335. تكلف هذه الوحدات في المتاجر الصينية عبر الإنترنت ما يقرب من بنس واحد.

لتشغيل مقياس التسارع ، من الضروري توفير الجهد +3 ، 3 فولت إلى دبوس VCC للوحدة. ترتبط قنوات قياس المستشعر بالدبابيس التناظرية في Arduino ، على سبيل المثال ، "A0" و "A1" و " A2 ". هذه هي الدائرة بأكملها:)

مخطط الأسلاك لمقياس التسارع ADXL335 إلى Arduno
مخطط الأسلاك لمقياس التسارع ADXL335 إلى Arduno

الخطوه 3

لنقم بتحميل هذا الرسم التخطيطي في ذاكرة Arduino. سنقرأ القراءات من المدخلات التناظرية على ثلاث قنوات ، ونحولها إلى جهد ونخرجها إلى المنفذ التسلسلي.

يحتوي Arduino على ADC 10 بت ، والحد الأقصى المسموح به لجهد الدبوس هو 5 فولت. يتم ترميز الفولتية المقاسة بالبتات التي يمكن أن تأخذ قيمتين فقط - 0 أو 1. وهذا يعني أنه سيتم تقسيم نطاق القياس بالكامل على (1 + 1) إلى القوة العاشرة ، أي على 1024 قطعة متساوية.

لتحويل القراءات إلى فولت ، تحتاج إلى تقسيم كل قيمة تقاس عند الإدخال التناظري على 1024 (مقاطع) ، ثم الضرب في 5 (فولت).

دعونا نرى ما يأتي حقًا من مقياس التسارع باستخدام المحور Z كمثال (العمود الأخير). عندما يتم وضع المستشعر أفقيًا ويبحث عن أعلى ، تأتي الأرقام (2.03 +/- 0.01). لذلك يجب أن يتوافق هذا مع العجلة "+ 1 جم" على طول المحور Z وزاوية مقدارها 0 درجة. اقلب المستشعر. تصل الأرقام (1 ، 69 +/- 0 ، 01) ، والتي يجب أن تتوافق مع "-1g" وزاوية 180 درجة.

رسم القراءة التسارع
رسم القراءة التسارع

الخطوة 4

لنأخذ القيم من مقياس التسارع بزاوية 90 و 270 درجة وندخلها في الجدول. يوضح الجدول زوايا دوران مقياس التسارع (العمود "A") وقيم Zout المقابلة بالفولت (العمود "B").

من أجل الوضوح ، يتم عرض قطعة من الفولتية عند إخراج Zout مقابل زاوية الدوران. الحقل الأزرق هو النطاق عند السكون (عند تسارع 1 جرام). المربع الوردي على الرسم البياني عبارة عن هامش حتى نتمكن من قياس التسارع حتى + 3 جم وحتى -3 جم.

عند دوران 90 درجة ، يكون للمحور Z تسارع صفري. هؤلاء. قيمة 1.67 فولت هي صفر Zo شرطي للمحور Z ، ثم يمكنك إيجاد التسارع كما يلي:

g = Zout - Zo / sensitivity_z ، هنا Zout هي القيمة المقاسة بالميليفولت ، Zo هي القيمة عند التسارع الصفري بالميليفولت ، الحساسية_z هي حساسية المستشعر على طول المحور Z. قم بمعايرة مقياس التسارع واحسب قيمة الحساسية على وجه التحديد الاستشعار باستخدام الصيغة:

sensitivity_z = [Z (0 درجة) - Z (90 درجة)] * 1000. في هذه الحالة حساسية مقياس التسارع على طول المحور Z = (2، 03 - 1، 68) * 1000 = 350 mV. وبالمثل ، يجب حساب الحساسية للمحاور X و Y.

يُظهر العمود "C" في الجدول التسارع المحسوب لخمس زوايا عند حساسية 350. كما ترى ، تتطابق عمليًا مع تلك الموضحة في الشكل 1.

تطابق زوايا دوران مقياس التسارع مع القراءات
تطابق زوايا دوران مقياس التسارع مع القراءات

الخطوة الخامسة

بتذكر دورة الهندسة الأساسية ، نحصل على صيغة لحساب زوايا دوران مقياس التسارع:

angle_X = arctg [sqrt (Gz ^ 2 + Gy ^ 2) / Gx].

القيم بالتقدير الدائري. لتحويلها إلى درجات ، اقسم على Pi واضرب في 180.

نتيجة لذلك ، يظهر في الرسم التوضيحي رسم كامل يحسب زوايا التسارع والدوران لمقياس التسارع على طول جميع المحاور. توفر التعليقات تفسيرات لرمز البرنامج.

عند الإخراج إلى منفذ "Serial.print ()" ، يشير الحرف "\ t" إلى حرف جدولة بحيث تكون الأعمدة زوجية ويتم وضع القيم واحدة تحت الأخرى. يعني "+" تسلسل (تسلسل) السلاسل. علاوة على ذلك ، فإن عامل التشغيل "String ()" يخبر المترجم صراحة أنه يجب تحويل القيمة الرقمية إلى سلسلة. يقوم عامل التشغيل الدائري () بتقريب الزاوية إلى أقرب درجة.

رسم يقوم بحساب عجلة مقياس التسارع وزواياه
رسم يقوم بحساب عجلة مقياس التسارع وزواياه

الخطوة 6

لذلك ، تعلمنا كيفية أخذ البيانات من مقياس التسارع التناظري ADXL335 ومعالجتها باستخدام Arduino. الآن يمكننا استخدام مقياس التسارع في تصميماتنا.

موصى به: