Съдържание:

Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки
Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки

Видео: Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки

Видео: Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки
Видео: Что мы знаем о Луне? Космический документальный фильм 2024, Ноември
Anonim
Image
Image

HMC5883 е цифров компас, предназначен за нискополеви магнитни сензори. Това устройство има широк диапазон на магнитно поле от +/- 8 Oe и изходна скорост 160 Hz. Сензорът HMC5883 включва драйвери на ленти за автоматично размагняване, отместване на офсета и 12-битов ADC, който позволява точност на насочване на компаса от 1 ° до 2 °. Всички I²C мини модули са проектирани да работят при 5VDC.

В този урок ще обясним подробната работа на HMC5883 с фотон на частици. Фотонът от частици е табла, която улеснява изпращането и получаването на данни от уебсайта, която поддържа най -основната функция на Internet Of Things (IoT).

Стъпка 1: Изисква се хардуер:

Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. HMC5883

2. Фотон от частици

3. I2C кабел

4. I2C щит за частичен фотон

Стъпка 2: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за свързване на хардуера основно обяснява необходимите кабелни връзки между сензора и фотона на частиците. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

HMC5883 ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици. Всичко, от което се нуждаете, са четири проводника!

Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

Тези връзки са показани на снимките по -горе.

Стъпка 3: Код за измерване на интензитета на магнитното поле:

Код за измерване на интензитета на магнитното поле
Код за измерване на интензитета на магнитното поле

Нека започнем с кода на частиците сега.

Докато използваме сензорния модул с Arduino, ние включваме библиотеката application.h и spark_wiring_i2c.h. Библиотеката "application.h" и spark_wiring_i2c.h съдържа функциите, които улесняват i2c комуникацията между сензора и частицата.

Целият код на частиците е даден по -долу за удобство на потребителя:

#включва

#включва

// HMC5883 I2C адресът е 0x1E (30)

#define 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);

// Изберете регистър за конфигуриране А

Wire.write (0x00);

// Задайте нормална конфигурация на измерване, изходна скорост = 0.75Hz

Wire.write (0x60);

// Спиране на I2C предаването

Wire.endTransmission ();

// Стартиране на I2C предаване

Wire.beginTransmission (Addr);

// Избор на регистър на режим

Wire.write (0x02);

// Задаване на непрекъснато измерване

Wire.write (0x00);

// Спиране на I2C предаването

Wire.endTransmission ();

забавяне (300);

}

void loop ()

{

беззнакови int данни [6];

// Стартиране на I2C предаване

Wire.beginTransmission (Addr);

// Изберете регистър на данни

Wire.write (0x03);

// Спиране на I2C предаването

Wire.endTransmission ();

// Изискване на 6 байта данни

Wire.requestFrom (Addr, 6);

// Прочетете 6 байта данни

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

ако (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]);

ако (xMag> 32767)

{

xMag -= 65536;

}

zMag = ((данни [2] * 256) + данни [3]);

ако (zMag> 32767)

{

zMag -= 65536;

}

yMag = ((данни [4] * 256) + данни [5]);

ако (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 приложения.

Препоръчано: