ویژگی های ماژول قطب نمای GY-271
جریان و میدان مغناطیسی ارتباط مستقیمی با یکدیگر دارند. زمانی که جریان در یک سیم جاری می شود (الکترون ها در یک جهت شروع به حرکت می کنند)، میدان مغناطیسی ایجاد می شود. ایده ی اصلی سنسور های قطب نما هم بر اساس همین رابطه است. جهت میدان مغناطیسی زمین روی جریان حرکت الکترون ها در سنسور تاثیر می گذارد. با اندازه گیری این تغییرات در جریان، سنسور قادر خواهد بود تا جهت ها را تشخیص دهد.
ماژول GY-271 از تراشه ی QMC5883L برای تشخیص میدان مهای مغناطیسی و جهت آن ها استفاده می کند. پروتکل ارتباطی این ماژول I2C است و می توانید با استفاده از 2 پایه SCL و SDA آن را به پردازنده های مختلف از جمله بردهای آردینو متصل کنید.
Datasheet-QMC5883L-1.0
معرفی پایه ها (Pinout) ماژول قطب نمای GY-271
ماژول GY-271 دارای 5 پایه است. کاربرد این پایه ها به شرح زیر است:
- VCC: تغذیه ماژول – بین 3 تا 5 ولت
- GND: زمین
- SCL: پایه کلاک ارتباط I2C
- SDA: پایه دیتا ارتباط I2C
- DRDY یا DataReady: زمانی که مقدار خروجی سنسور آماده باشد، در این پایه یک وقفه (Interrupt) رخ می دهد. این پایه به صورت پیش فرض در داخل ماژول Pull up شده است. زمانی که مقدار خروجی ماژول آماده باشد، این پایه به مدت 250 میکرو ثانیه “0” می شود.
پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرمافزارهای مورد نیاز
راه اندازی ماژول قطب نمای GY-271 با آردوینو
گام اول: سیم بندی
مطابق مدار زیر، ماژول را به آردوینو وصل کنید.
گام دوم: نصب کتابخانه
کتابخانه ی ماژول را از این لینک دانلود کرده و آن را نصب کنید.
این کتابخانه، مثال های متنوعی برای راه اندازی ماژول قطب نما دارد. در صورت نیاز می توانید از این مثال ها نیز استفاده کنید.
نکته
اگر تراشه ی شما از نوع HMC5883L است، باید از این کتابخانه برای راه اندازی قطب نمای خود استفاده کنید.
گام سوم: کد
پس از نصب کتابخانه، کد زیر را روی برد آردوینو خود آپلود کنید. سپس پنجره ی سریال را باز کنید تا خروجی قطب نما به شما نمایش داده شود.
/*
GY-271 Compass
modified on 02 Sep 2020
by Mohammad Reza Akbari @ Electropeak
Home
*/
// I2C Library
#include <Wire.h>
// QMC5883L Compass Library
#include <QMC5883LCompass.h>
QMC5883LCompass compass;
void setup() {
// Initialize the serial port.
Serial.begin(9600);
// Initialize I2C.
Wire.begin();
// Initialize the Compass.
compass.init();
}
void loop() {
int x, y, z;
// Read compass values
compass.read();
x = compass.getX();
y = compass.getY();
z = compass.getZ();
Serial.print("X: ");
Serial.print(x);
Serial.print(" Y: ");
Serial.print(y);
Serial.print(" Z: ");
Serial.println(z);
delay(300);
}
Comments (6)
سلام و خسته نباشید . ممنون از آموزش خوبتون .
یه سوال داشتم و این که مقدار x , y , z بر حسب چی هستند ؟ اگر توضیحی بفرمایید ممنون میشم .
سلام. خیلی ممنون از لطفتون… واحد این مقادیر mGs (میلی گاوس) هست.
با عرض سلام
سه تا سنسور خریدم (gy-271 qmc5883l) ولی هر سه تاش تو مانیتور آردینیو x,y,z رو صفر نشون میده هر چی کتاب خونه هم بود دانلود کردم
ممنون میشم راهنمایی کنید
سلام
شما لطفا ابتدا از لایبراری i2c scanner استفاده کنید جهت بررسی اینکه id سنسور رو دریافت کنید
که مطمئن بشید مشکل از سنسور یا سیم بندی نیست
با عرض سلام
سه تا ماژول خریدم ولی هر سه تاش در مانیتور اردینیو x,y,z رو فقط صفر نشون میده همه کتاب خانه هارو هم برای مدل q و هم h دانلود کردم ولی نشد
ماژول ها خراب است یا کتابخانه مخصوصی میخواهد ممنون میشم راهنمایی کنید
سلام وقت بخیر
لطفا از کتابخونه i2c scanner استفاده کنید ابتدا ببینید اصلا id سنسور رو میتونه بخونه