آموزش آردوینوپروژه های آردوینو

ساخت مگنومتر با آردوینو (مغناطیس سنج QMC5883L)

مغناطیس‌ سنج‌ ها میدان مغناطیسی را در امتداد یک یا چند محور اندازه‌گیری می‌کنند. با یک مغناطیس سنج می توانید آردوینو خود را به یک قطب نما دیجیتال تبدیل کنید. آنها برای سیستم های ناوبری و هدایت در وسایل نقلیه کنترل از راه دور عالی هستند. حتی می توانید از آنها برای تشخیص جریان الکتریکی در سیم ها استفاده کنید.

در این مقاله قصد داریم از یک مغناطیس سنج برای ساخت قطب نمای دیجیتال با آردوینو استفاده کنیم. متوجه شدم که اگرچه مغناطیس سنج من به عنوان HMC5883L برچسب گذاری شده بود، اما در واقع یک QMC5883L بود. کتابخانه های نوشته شده برای HMC5883L با QMC5883L کار نمی کنند. بنابراین وقتی یک مغناطیس‌سنج آنلاین می‌خرید، احتمال زیادی وجود دارد که HMC5883L شما در واقع یک QMC5883L باشد. در حال حاضر آموزش های زیادی برای HMC5883L به صورت آنلاین وجود دارد، بنابراین در این مقاله نحوه راه اندازی و برنامه ریزی مغناطیس سنج QMC5883L را خواهیم دید.

معرفی مگنتومتر QMC5883L

QMC5883L دارای 5 پین است: Vcc، GND، SCL، SDA و DRDY:

معرفی مگنتومتر QMC5883L

تراشه حسگر در بالای برد قرار دارد. مغناطیس‌سنج‌ها و سایر حسگرهای جهت دار دارای فلش‌هایی بر روی خود خواهند بود. اینها جهت گیری سنسور را نسبت به PCB به شما نشان می دهند. این مغناطیس سنج میدان های مغناطیسی را در سه محور x، y و z تشخیص می دهد. محور z به بالا و پایین، عمود بر محورهای x و y اشاره می کند.

اتصال مغناطیس سنج QMC5883L به آردوینو

QMC5883L از I2C برای ارتباط با آردوینو استفاده می کند، بنابراین برای اتصال آن تنها به دو سیم داده و دو سیم برق نیاز است. مغناطیس سنج را به این صورت به آردوینو وصل کنید:

اتصال مغناطیس سنج QMC5883L به آردوینو

در اینجا قطعات مورد نیاز آمده است:

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

ما کتابخانه ای از Sunfounder را برای برنامه ریزی مغناطیس سنج استفاده خواهیم کرد. این کتابخانه در فایل دانلودی انتهای صفحه قرار داده شده است. این برنامه مقادیر خام را از هر محور مغناطیس سنج به نمایشگر سریال خروجی می دهد.

کد کامل در انتهای صفحه قرار داده شده است در اینجا قسمت های مختلف کد را بررسی میکنیم.

از آنجایی که مغناطیس سنج از ارتباط I2C استفاده می کند، باید کتابخانه Wire را اضافه کنیم. ما همچنین باید کتابخانه QMC5883L را نیز اضافه کنیم. سپس یک شی به نام compass ایجاد می کنیم که عضوی از کلاس QMC5883L است تا بتوانیم به توابع موجود در کتابخانه دسترسی داشته باشیم.

#include <Wire.h> 
#include <QMC5883L.h>

QMC5883L compass;

در بخش setup() رابط I2C را با Wire.begin() مقداردهی اولیه می کنیم. سپس مانیتور سریال را مقداردهی اولیه می کنیم و شی قطب نما را با تابع init() از کلاس QMC5883L مقداردهی اولیه می کنیم.

void setup() { 
Wire.begin(); 
Serial.begin(9600); 
compass.init(); 
}

در بخش loop() باید چند متغیر int را ایجاد کنیم. QMC5883L میزان مغناطیس جداگانه ای را برای هر محور خروجی می دهد. بنابراین بیایید متغیرهایی را برای هر محور اعلام کنیم یعنی x، y و z. اکنون می توانیم خوانش های سنسور را دریافت کنیم.

کتابخانه QMC5883L تابعی به نام read() دارد که مقادیر را از حسگر می گیرد. تابع read() سه پارامتر دارد. اولین پارامتر متغیری است که قرائت را از محور x حسگر ذخیره می کند. پارامتر دوم متغیری است که قرائت را از محور y حسگر ذخیره می کند. سومین پارامتر متغیری است که قرائت محور z را ذخیره می کند.

اکنون فقط باید متغیرهای x، y و z را در سریال مانیتور چاپ کنیم. بنابراین ما یک سری توابع ()Serial.print برای چاپ متغیرهای x، y و z داریم. در انتهای حلقه، 250 میلی ثانیه صبر می کنیم تا سرعت خروجی کمی کاهش یابد.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
void loop() {
  int x, y, z;

  compass.read(&x, &y, &z);

  Serial.print("x: ");
  Serial.print(x);
  Serial.print("    y: ");
  Serial.print(y);
  Serial.print("    z: ");
  Serial.println(z);

  delay(250);
}

هنگامی که مغناطیس سنج وصل شد و کد در آردوینو آپلود شد، مانیتور سریال را باز کنید:

خروجی مگنومتر در سریال مانیتور آردوینو

مقادیر خامی که در اینجا می بینید، بزرگی میدان مغناطیسی در امتداد هر محور در واحد میکروتسلا است.

اگر آهنربای میله ای دارید، قطب شمال آهنربا را در مقابل محور x قرار دهید تا مقدار x به میزان قابل توجهی کاهش یابد. اگر آهنربا را جلوی محورهای y و z قرار دهید، مقادیر آنها نیز باید کاهش یابد.

اما حتی بدون آهنربا، حسگر آنقدر حساس است که میدان مغناطیسی زمین را تشخیص دهد. بنابراین اکنون بیایید از این قرائت ها برای ایجاد یک قطب نما استفاده کنیم.

موارد موجود در فایل : سورس ها و کتابخانه

دانلود فایل های پروژه

5/5 - (1 امتیاز)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.
تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

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

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