لنفكر في توصيل وحدة GY-273 بالبوصلة الرقمية ثلاثية المحاور Honeywell HMC5883L. يمكن استخدام هذه الدائرة الدقيقة للقياسات المغناطيسية ، أثناء التنقل ، إذا لم تكن دقة القياس العالية مطلوبة (مع خطأ 1 … 2 درجة وإمكانية المعايرة). الجهاز متصل عبر واجهة I2C.
ضروري
- - بوصلة رقمية HMC5883 ؛
- - اردوينو
- - لوحة النموذج الأولي وأسلاك التوصيل ؛
- - الحاسوب.
تعليمات
الخطوة 1
هذه هي السمات الرئيسية للبوصلة المغناطيسية:
- مستشعر حساس مغناطيسيًا ثلاثي المحاور ؛
- 12 بت ADC بدقة 2 مللي جرام (ملليجرام) ؛
- اختبار ذاتي مدمج ؛
- جهد تشغيل منخفض واستهلاك منخفض ؛
- واجهة رقمية I2C ؛
- معدل اقتراع مرتفع - يصل إلى 160 مرة في الثانية (وقت قياس واحد حوالي 6 مللي ثانية) ؛
- دقة تحديد الاتجاه هي 1 °… 2 ° ؛
- يمكن استخدامه في المجالات المغناطيسية القوية (حتى ± 8 غاوس).
يظهر الرسم التخطيطي لتوصيل المستشعر المغناطيسي HMC5883L بـ Arduino في الشكل. إنها مضغوطة للغاية وبسيطة ، لأن تعد واجهة I2C ثنائية الأسلاك رائعة لأنها تتطلب اتصالات قليلة. يمكنك استخدام اللوح.
الخطوة 2
يجب أن تبدو مثل الصورة. سأقوم أيضًا بتوصيل محلل منطقي بحافلات SCL و SDA لمراقبة تبادل المعلومات بين Arduino ووحدة HMC5883. ليس واجبا.
الخطوه 3
كمعارف أول ، دعنا نحاول قراءة سجلات التعريف 10 (0xA) و 11 (0xB) و 12 (0xC) للبوصلة الرقمية 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 مرة أخرى ، سنرى أن هذه هي القيم الافتراضية لسجلات التعريف الثلاثة.

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