كيفية توصيل بوصلة رقمية HMC5883 بأردوينو

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

كيفية توصيل بوصلة رقمية HMC5883 بأردوينو
كيفية توصيل بوصلة رقمية HMC5883 بأردوينو

فيديو: كيفية توصيل بوصلة رقمية HMC5883 بأردوينو

فيديو: كيفية توصيل بوصلة رقمية HMC5883 بأردوينو
فيديو: hmc5883l компас arduino, датчик магнитометра, навигация по компасу "Arduino Project для начинающих 2024, يمكن
Anonim

لنفكر في توصيل وحدة GY-273 بالبوصلة الرقمية ثلاثية المحاور Honeywell HMC5883L. يمكن استخدام هذه الدائرة الدقيقة للقياسات المغناطيسية ، أثناء التنقل ، إذا لم تكن دقة القياس العالية مطلوبة (مع خطأ 1 … 2 درجة وإمكانية المعايرة). الجهاز متصل عبر واجهة I2C.

بوصلة رقمية HMC5883
بوصلة رقمية HMC5883

ضروري

  • - بوصلة رقمية HMC5883 ؛
  • - اردوينو
  • - لوحة النموذج الأولي وأسلاك التوصيل ؛
  • - الحاسوب.

تعليمات

الخطوة 1

هذه هي السمات الرئيسية للبوصلة المغناطيسية:

- مستشعر حساس مغناطيسيًا ثلاثي المحاور ؛

- 12 بت ADC بدقة 2 مللي جرام (ملليجرام) ؛

- اختبار ذاتي مدمج ؛

- جهد تشغيل منخفض واستهلاك منخفض ؛

- واجهة رقمية I2C ؛

- معدل اقتراع مرتفع - يصل إلى 160 مرة في الثانية (وقت قياس واحد حوالي 6 مللي ثانية) ؛

- دقة تحديد الاتجاه هي 1 °… 2 ° ؛

- يمكن استخدامه في المجالات المغناطيسية القوية (حتى ± 8 غاوس).

يظهر الرسم التخطيطي لتوصيل المستشعر المغناطيسي HMC5883L بـ Arduino في الشكل. إنها مضغوطة للغاية وبسيطة ، لأن تعد واجهة I2C ثنائية الأسلاك رائعة لأنها تتطلب اتصالات قليلة. يمكنك استخدام اللوح.

توصيل البوصلة الرقمية HMC5883 بـ Arduino
توصيل البوصلة الرقمية HMC5883 بـ Arduino

الخطوة 2

يجب أن تبدو مثل الصورة. سأقوم أيضًا بتوصيل محلل منطقي بحافلات SCL و SDA لمراقبة تبادل المعلومات بين Arduino ووحدة HMC5883. ليس واجبا.

بوصلة رقمية HMC5883 متصلة بـ Arduino على لوح التجارب
بوصلة رقمية HMC5883 متصلة بـ Arduino على لوح التجارب

الخطوه 3

كمعارف أول ، دعنا نحاول قراءة سجلات التعريف 10 (0xA) و 11 (0xB) و 12 (0xC) للبوصلة الرقمية HMC5883 وكتابة مثل هذا الرسم كما في الشكل. تم تزويده بتعليقات مفصلة.

رسم تخطيطي لقراءة سجلات تعريف HMC5883
رسم تخطيطي لقراءة سجلات تعريف HMC5883

الخطوة 4

ستكون الإشارة التي تم الحصول عليها باستخدام محلل المنطق كما هو موضح في الرسم التوضيحي.

ماذا يعني ذلك؟ البايت الأول هو عنوان I2C الذي نقوم به (الجهاز الرئيسي ، Arduino) بإنشاء اتصال (7 بت عالية 0x1E) ، ووضع الكتابة (بت منخفض - 0 × 0) ؛ الرقم هو 0x3C. البايت الثاني هو رقم 0xA ، والذي كتبناه للعنوان 0x1E وبت التأكيد من مستشعر HMC5883L ، وهو العبد. هذا هو رقم التسجيل الذي سنبدأ منه في قراءة البيانات. هذا يختتم الصفقة الأولى. تبدأ المرحلة التالية. البايت الثالث هو طلب قراءة من العبد (أهم 7 بتات هي العنوان 0x1E ، البتة الثامنة هي عملية القراءة 0x1 ؛ الرقم الناتج هو 0x3D). آخر 3 بايتات هي الاستجابة من الرقيق HMC5883L من السجلات 0xA و 0xB و 0xC ، على التوالي.

تتحرك البوصلة الرقمية HMC5883L عبر السجلات بشكل مستقل أثناء القراءة المستمرة. أولئك. ليس من الضروري (ولكن ليس محظورًا) تحديد الحالة في كل مرة. على سبيل المثال ، إذا كتبنا 0x3 وقراءته 10 مرات بدلاً من 0xA ، فسنحصل على القيم في 10 سجلات ، بدءًا من الثالث إلى الثاني عشر.

وما هي هذه الأرقام الثلاثة - 0x48 ، 0x34 ، 0x33؟ باستخدام ورقة البيانات الخاصة بالبوصلة الرقمية HMC5883L مرة أخرى ، سنرى أن هذه هي القيم الافتراضية لسجلات التعريف الثلاثة.

مخطط توقيت تبادل I2C مع بوصلة رقمية HMC5883
مخطط توقيت تبادل I2C مع بوصلة رقمية HMC5883

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

للحصول على بيانات البوصلة الرقمية في المجال المغناطيسي ، تحتاج إلى قراءة السجلات من 3 إلى 8 ، تمامًا كما نقرأ سجلات التعريف. الاختلاف الوحيد هو أن البيانات لكل من المحاور الثلاثة X و Y و Z يتم تقديمها كأرقام ثنائية البايت. بتحويلها إلى أعداد عشرية ، نحصل على الاتجاهات على طول كل من المحاور الثلاثة.

موصى به: