فهرست مطالب:

اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و ذره فوتون: 4 مرحله
اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و ذره فوتون: 4 مرحله

تصویری: اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و ذره فوتون: 4 مرحله

تصویری: اندازه گیری میدان مغناطیسی با استفاده از HMC5883 و ذره فوتون: 4 مرحله
تصویری: homemade magnetometer P2 ساخت مگنتومتر مغناطیس سنج دست ساز ق2 2024, جولای
Anonim
Image
Image

HMC5883 یک قطب نمای دیجیتالی است که برای سنجش مغناطیسی میدان کم طراحی شده است. این دستگاه دارای طیف وسیعی از میدان مغناطیسی +/- 8 Oe و نرخ خروجی 160 هرتز است. سنسور HMC5883 شامل درایور تسمه زدایی اتوماتیک تسمه ، لغو افست و ADC 12 بیتی است که دقت عنوان بندی قطب نما را 1 تا 2 درجه امکان پذیر می کند. همه ماژول های I²C Mini طوری طراحی شده اند که در 5VDC کار کنند.

در این آموزش ، ما قصد داریم کار دقیق HMC5883 را با ذرات فوتون توضیح دهیم. ذرات فوتون تخته ای است که ارسال و دریافت داده ها را از وب سایت تسهیل می کند ، که از اساسی ترین ویژگی اینترنت اشیا (IoT) پشتیبانی می کند.

مرحله 1: سخت افزار مورد نیاز:

سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز
سخت افزار مورد نیاز

مواد مورد نیاز برای تحقق هدف ما شامل اجزای سخت افزاری زیر است:

1. HMC5883

2. ذره فوتون

3. کابل I2C

4. I2C Shield برای ذرات فوتون

مرحله 2: اتصال سخت افزاری:

اتصال سخت افزاری
اتصال سخت افزاری
اتصال سخت افزاری
اتصال سخت افزاری

بخش اتصال سخت افزاری اساساً اتصالات سیم کشی مورد نیاز بین سنسور و فوتون ذره را توضیح می دهد. اطمینان از اتصالات صحیح ضروری ترین ضرورت در هنگام کار بر روی هر سیستم برای خروجی مورد نظر است. بنابراین ، اتصالات مورد نیاز به شرح زیر است:

HMC5883 روی I2C کار خواهد کرد. در اینجا مثال نمودار سیم کشی است که نحوه اتصال هر رابط سنسور را نشان می دهد.

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

فقط چهار اتصال نیاز به پین های Vcc ، Gnd ، SCL و SDA دارد و این اتصالات با کمک کابل I2C متصل می شوند.

این اتصالات در تصاویر بالا نشان داده شده است.

مرحله 3: کد برای اندازه گیری شدت میدان مغناطیسی:

کد برای اندازه گیری شدت میدان مغناطیسی
کد برای اندازه گیری شدت میدان مغناطیسی

بیایید اکنون با کد ذره شروع کنیم.

هنگام استفاده از ماژول سنسور با آردوینو ، ما کتابخانه application.h و spark_wiring_i2c.h را شامل می شود. کتابخانه "application.h" و spark_wiring_i2c.h شامل توابع است که ارتباط i2c بین سنسور و ذره را تسهیل می کند.

برای راحتی کاربر ، کل کد ذرات در زیر آورده شده است:

#عبارتند از

#عبارتند از

// آدرس HMC5883 I2C 0x1E است (30)

#تعریف Addr 0x1E

int xMag = 0 ، yMag = 0 ، zMag = 0 ؛

void setup ()

{

// تنظیم متغیر

Particle.variable ("i2cdevice" ، "HMC5883") ؛

Particle.variable ("xMag" ، xMag) ؛

Particle.variable ("yMag" ، yMag) ؛

Particle.variable ("zMag" ، zMag) ؛

// راه اندازی ارتباط I2C به عنوان MASTER

Wire.begin ()؛

// برقراری ارتباط اولیه ، تنظیم نرخ باود = 9600

Serial.begin (9600)؛

// شروع انتقال I2C

Wire.beginTransmission (Addr)؛

// configure register A را انتخاب کنید

Wire.write (0x00) ؛

// تنظیمات اندازه گیری معمولی ، میزان خروجی داده = 0.75 هرتز

Wire.write (0x60) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

// شروع انتقال I2C

Wire.beginTransmission (Addr)؛

// حالت ثبت نام را انتخاب کنید

Wire.write (0x02) ؛

// اندازه گیری مداوم را تنظیم کنید

Wire.write (0x00) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

تأخیر (300) ؛

}

حلقه خالی ()

{

اطلاعات int بدون علامت [6]؛

// شروع انتقال I2C

Wire.beginTransmission (Addr)؛

// ثبت داده را انتخاب کنید

Wire.write (0x03) ؛

// توقف انتقال I2C

Wire.endTransmission ()؛

// درخواست 6 بایت داده

سیم. درخواست از (Addr، 6)؛

// خواندن 6 بایت داده

// xMag msb، xMag lsb، zMag msb، zMag lsb، yMag msb، yMag lsb

if (Wire.available () == 6)

{

داده [0] = Wire.read ()؛

داده [1] = Wire.read ()؛

داده [2] = Wire.read ()؛

داده [3] = Wire.read ()؛

داده [4] = Wire.read ()؛

داده [5] = Wire.read ()؛

}

تأخیر (300) ؛

// تبدیل داده ها

xMag = ((داده [0] * 256) + داده [1]) ؛

if (xMag> 32767)

{

xMag -= 65536 ؛

}

zMag = ((داده [2] * 256) + داده [3]) ؛

if (zMag> 32767)

{

zMag -= 65536 ؛

}

yMag = ((داده [4] * 256) + داده [5]) ؛

if (yMag> 32767)

{

yMag -= 65536 ؛

}

// خروجی داده ها به داشبورد

Particle.publish ("میدان مغناطیسی در محور X:" ، رشته (xMag)) ؛

تاخیر (1000) ؛

Particle.publish ("میدان مغناطیسی در محور Y:" ، رشته (yMag)) ؛

تاخیر (1000) ؛

Particle.publish ("میدان مغناطیسی در محور Z:" ، رشته (zMag)) ؛

تاخیر (1000) ؛

}

تابع Particle.variable () متغیرهایی را برای ذخیره خروجی سنسور ایجاد می کند و تابع Particle.publish () خروجی را در داشبورد سایت نمایش می دهد.

خروجی سنسور در تصویر بالا برای مرجع شما نشان داده شده است.

مرحله 4: برنامه های کاربردی:

برنامه های کاربردی
برنامه های کاربردی

HMC5883 یک ماژول چند سطحی برای نصب روی سطح است که برای سنجش مغناطیسی میدان کم با رابط دیجیتالی برای برنامه هایی مانند قطب نمای کم هزینه و مغناطیس سنجی طراحی شده است. دقت و دقت یک تا دو درجه ای آن ، برنامه های ناوبری عابر پیاده و برنامه های LBS را امکان پذیر می کند.

توصیه شده: