آموزش راه اندازی قطب نمای 3 محوره GY-511 LSM303 با آردوینو

ویژگی های ماژول قطب نمای GY-511

جریان و میدان مغناطیسی ارتباط مستقیمی با یکدیگر دارند. زمانی که جریان در یک سیم جاری می شود (الکترون ها در یک جهت شروع به حرکت می کنند)، میدان مغناطیسی ایجاد می شود. ایده ی اصلی سنسور های قطب نما هم بر اساس همین رابطه است. جهت میدان مغناطیسی زمین روی جریان حرکت الکترون ها در سنسور تاثیر می گذارد. با اندازه گیری این تغییرات در جریان، سنسور قادر خواهد بود  تا جهت ها را تشخیص دهد.

ماژول GY-511 از تراشه ی LSM303DLHC برای تشخیص میدان های مغناطیسی و جهت آن ها استفاده می کند. پروتکل ارتباطی این ماژول I2C است و می توانید با استفاده از 2 پایه SCL و SDA آن را به پردازنده های مختلف از جمله بردهای آردوینو متصل کنید.

دیتاشیت تراشه ی LSM303DLHC رامی توانید از اینجا دانلود کنید.

معرفی پایه ها (Pinout) ماژول قطب نمای GY-511

ماژول GY-511 دارای 8 پایه به شرح زیر است:

  • VIN: تغذیه ماژول – 3.3 تا 5 ولت
  • 3V: در ماژول یک روگلاتور 5 به 3.3 ولت وجود دارد. درصورت نیاز از این پایه می توانید برای تغذیه ی باقی مدار که نیاز به ولتاژ 3.3 ولت دارند استفاده کنید. بیشترین جریان قابل تامین توسط این پایه، 100 میلی آمپر است.
  • GND: زمین
  • SCL: پایه کلاک ارتباط I2C
  • SDA: پایه دیتا ارتباط I2C
  • INT2: وقفه 2
  • INT1: وقفه 1
  • DRDY یا DataReady: زمانی که مقادیر جدیدی توسط سنسور اندازه گیری شده و در خروجی قرار می گیرد، این پایه فعال می شود.

پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.

نکته

از وقفه های ماژول برای تشخیص سقوط آزاد و تشخیص حرکت استفاده می شود.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

برد آردوینو Uno × 1
قطب نمای الکترونیکی سه محوره GY-511 LSM303DLHC × 1
برد بورد × 1
سیم جامپر × 1

نرم‌افزارهای مورد نیاز

Arduino IDE

راه اندازی ماژول قطب نمای GY-511 با آردوینو

گام اول: سیم بندی

مطابق مدار زیر، ماژول را به آردوینو وصل کنید.

گام دوم: نصب کتابخانه

کتابخانه ی ماژول را از اینجا دانلود کرده و نصب کنید.

توجه

اگر برای نصب کتابخانه نیاز به راهنمایی بیشتر دارید، به اینجا مراجعه کنید.

این کتابخانه، مثال های متنوعی برای راه اندازی ماژول قطب نما دارد. در صورت نیاز می توانید از این مثال ها نیز استفاده کنید.

گام سوم: کد

پس از نصب کتابخانه، کد زیر را روی برد آردوینو خود آپلود کنید. سپس پنجره ی سریال را باز کنید تا خروجی قطب نما به شما نمایش داده شود.

همچنین می توانید با استفاده از مثال های کتابخانه، سنسور خود را کالیبره کنید تا اندازه گیری شما دقیق تر شود.

/*
  GY-511 Compass
  modified on 05 Sep 2020
  by Mohammad Reza Akbari @ Electropeak
  Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak | Ultimate Robotics Solutions" src="https://electropeak.com/learn/embed/#?secret=4NP2TcRdOA" data-secret="4NP2TcRdOA" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

  Library: https://github.com/pololu/lsm303-arduino
*/

// I2C Library
#include <Wire.h>
// LSM303 Compass Library
#include <LSM303.h>

LSM303 cmps;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  cmps.init();
  cmps.enableDefault();

  Serial.println("Setup complete...");
  
  /*
  Calibration values; the default values of +/-32767 for each axis
  lead to an assumed magnetometer bias of 0. Use the Calibrate example
  program to determine appropriate values for your particular unit.
  */
  cmps.m_min = (LSM303::vector<int16_t>){-32767, -32767, -32767};
  cmps.m_max = (LSM303::vector<int16_t>){+32767, +32767, +32767};
}

void loop() {
  cmps.read();
  
  float heading = cmps.heading();

  Serial.print("Heading:  ");
  Serial.println(heading);
  delay(200);
}
Arduino

آموزش های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.