پروژه الکترونیکپروژه های آردوینوپروژه های بازی و سرگرمی

آموزش پروژه راه اندازی قطب نما دیجیتال با آردوینو و سنسور مغناطیس سنج

سلام. آموزش پروژه راه اندازی قطب نما دیجیتال با آردوینو و سنسور مغناطیس سنج QMC583 یا HMC5883 را آماده کردیم. فیلم عملکرد مدار را ببینید !

آموزش راه اندازی قطب نما دیجیتال با آردوینو

آموزش راه اندازی قطب نما دیجیتال با آردوینو

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

این سنسور میتواند موقعیت جغرافیایی شمال ، جنوب ، شرق و غرب را نشان دهد. ما در این پروژه آردوینو میخواهیم یک سنسور مغناطیس سنج را راه اندازی کنیم و با استفاده از آن یک قطب نمای دیجیتال بسازیم. این قطب نما با روشن کردن یک چراخ ال ای دی جهت شمال را به ما نشان میدهد.

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

  1. برد آردوینو Pro mini
  2. سنسور مغناطیس سنج QMC583 یا HMC5883
  3. لامپ ال ای دی – 8 عدد
  4. مقاومت 470 اهم – 8 عدد

سنسور مغناطیس سنج QMC5883 / HMC5883

سنسور مغناطیس سنج QMC5883

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

توضیحات کامل در : دانلود کتابخانه مشخصات سنسور مغناطیس سنج QMC5883

تفاوت سنسور HMC5883 با QMC5883

این دو سنسور بسیار شبیه هم هستند. در این پروژه میتوان از دو سنسور استفاده کرد. اما این دو سنسور با هم تفاوت دارند و باید کتابخانه های مخصوص آن سنسور را استفاده کرد. نحوه تشخیص سنسور HMC5883 با QMC5883 در تصویر زیر مشخص شده است.

حتما ببینید :  پروژه ساعت زنگ دار با نور قابل تنظیم توسط بلوتوث گوشی اندروید در آردوینو (آلارم+RGB)

تفاوت سنسور HMC5883 با QMC5883

ما در کد این پروژه از سنسور QMC5883 استفاده میکنیم.

توضیحات مدار پروژه قطب نما با آردوینو

مدار پروژه قطب نما با آردوینو

مدار این پروژه بسیار ساده است. ما باید برد آردوینو را با سنسور QMC583 و 8 ال ای دی متصل کنیم. ماژول سنسور دارای 5 پین است که پین DRDY در پروژه ما استفاده نمیشود. پین VCC و GND به پین 5 ولت Arduino متصل میشوند. پین های SCL و SDA ماژول سنسور مغناطیس سنج به پین A4 و A5 برد آردوینو Pro mini متصل میشوند.

برای نشان دادن جهت شمال ما از 8 عدد ال ای دی استفاده کردیم که همه آنها از طریق یک مقاومت 470 اهم به پین های GPIO آردوینو متصل میشوند. مدار توسط باتری 9 ولت تغذیه میشود و این باتری به پین Vin آردوینو متصل میشوند و توسط رگولاتور موجود در آردوینو به 5 ولت تبدیل میشوند.

فایل PCB مدار در فایل دانلودی قرار داده شده است.

توضیحات کد پروژه

مثل همیشه ما در ابتدا کتابخانه های مورد نیاز را فراخوانی میکنیم. خط اول کتابخانه برای ارتباط I2C است و خط دوم برای فراخوانی کتابخانه سنسور است. لینک دانلود کتابخانه در قسمت توضیحات سنسور (کمی بالاتر) قرار داده شده است.

#include <Wire.h> 
#include <MechaQMC5883.h>

در این قسمت ما پین های ال ای دی ها را تعریف کرده ایم :

int ledPins[] = {2,3,4,5,6,7,8,9};

نحوه تعریف قطب های مغناطیسی در آردوینو

با توجه به جدول پایین و کد میتوانید بفهمید ما چگونه این کار را انجام میدهیم.

جهتدرجه جهت محدوده درجه جهت
شمال0° / 360°>338° یا< 22°
شمال شرقی45°22° تا 68°
شرق90°68° تا 113°
جنوب شرقی135°113° تا 158°
جنوب180°158° تا 203°
جنوب غربی225°203° تا 248°
غربی170°248° تا 293°
شمال غربی315°293° تا 338°
حتما ببینید :  پروژه کیبورد لمسی با کامپایلر اتمل استودیو

 

 if (heading > 338 || heading < 22) // اگر در این محدوده بود
  {
    Serial.println("NORTH"); //شمال
    digitalWrite(ledPins[0],HIGH); // ال ای دی شمالی روشن شود
  }

  if (heading > 22 && heading < 68) // اگر در این محدوده بود
  {
    Serial.println("NORTH-EAST"); //شمال شرقی
    digitalWrite(ledPins[7],HIGH); // ال ای دی شمال شرقی روشن شود
  }

  if (heading > 68 && heading < 113) // اگر در این محدوده بود
  {
    Serial.println("EAST"); // شرق
    digitalWrite(ledPins[6],HIGH); // ال ای دی شرقی روشن شود
  }

  if (heading > 113 && heading < 158) // اگر در این محدوده بود
  {
    Serial.println("SOUTH-EAST"); // جنوب شرقی
    digitalWrite(ledPins[5],HIGH); // ال ای دی جنوب شرقی روشن شود
  }

  if (heading > 158 && heading < 203) // اگر در این محدوده بود
  {
    Serial.println("SOUTH"); // جنوب
    digitalWrite(ledPins[4],HIGH); // ال ای دی جنوبی روشن شود
  }

  if (heading > 203 && heading < 248) // اگر در این محدوده بود
  {
    Serial.println("SOTUH-WEST"); // جنوب غربی
    digitalWrite(ledPins[3],HIGH); // ال ای دی جنوب غربی روشن شود
  }

  if (heading > 248 && heading < 293) // اگر در این محدوده بود
  {
    Serial.println("WEST"); // غرب
    digitalWrite(ledPins[2],HIGH); // ال ای دی غربی روشن شود
  }

  if (heading > 293 && heading < 338) // اگر در این محدوده بود
  {
    Serial.println("NORTH-WEST"); // شمال غربی
    digitalWrite(ledPins[1],HIGH); // ال ای دی شمال غربی روشن شود
  }

فیلم عملکرد مدار : کلیک کنید !

موارد موجود در فایل : فایل PCB ، شماتیک ، فایل Hex ، فایل آردوینو ، و …
برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

close
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید مشاهده لیست پروژه های آردوینو
برچسب ها

محمد رحیمی

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن