Оглавление:

Измерение магнитного поля с использованием HMC5883 и фотона частиц: 4 шага
Измерение магнитного поля с использованием HMC5883 и фотона частиц: 4 шага

Видео: Измерение магнитного поля с использованием HMC5883 и фотона частиц: 4 шага

Видео: Измерение магнитного поля с использованием HMC5883 и фотона частиц: 4 шага
Видео: HMC5883L Магнитометр 2024, Декабрь
Anonim
Image
Image

HMC5883 - цифровой компас, разработанный для измерения магнитного поля в слабом поле. Это устройство имеет широкий диапазон магнитного поля +/- 8 Э и выходную частоту 160 Гц. Датчик HMC5883 включает в себя приводы ремня с автоматическим размагничиванием, отмену смещения и 12-разрядный АЦП, обеспечивающий точность направления по компасу от 1 ° до 2 °. Все мини-модули I²C рассчитаны на работу при 5 В постоянного тока.

В этом уроке мы собираемся подробно объяснить работу HMC5883 с фотонами частиц. Фотон частиц - это доска, которая облегчает отправку и получение данных с веб-сайта, которая поддерживает основную функцию Интернета вещей (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 между датчиком и частицей.

Полный код частицы приведен ниже для удобства пользователя:

#включают

#включают

// Адрес I2C HMC5883 0x1E (30)

#define Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

установка void ()

{

// Устанавливаем переменную

Particle.variable («i2cdevice», «HMC5883»);

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

// Инициализируем связь I2C как МАСТЕР

Wire.begin ();

// Инициализируем последовательную связь, устанавливаем скорость передачи = 9600

Serial.begin (9600);

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр конфигурации A

Wire.write (0x00);

// Устанавливаем нормальную конфигурацию измерения, скорость вывода данных = 0,75 Гц

Wire.write (0x60);

// Остановка передачи I2C

Wire.endTransmission ();

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр режима

Wire.write (0x02);

// Устанавливаем непрерывное измерение

Wire.write (0x00);

// Остановка передачи I2C

Wire.endTransmission ();

задержка (300);

}

пустой цикл ()

{

данные типа int без знака [6];

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр данных

Wire.write (0x03);

// Остановка передачи I2C

Wire.endTransmission ();

// Запрос 6 байтов данных

Wire.requestFrom (Адрес, 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:», String (xMag));

задержка (1000);

Particle.publish («Магнитное поле по оси Y:», String (yMag));

задержка (1000);

Particle.publish («Магнитное поле по оси Z:», String (zMag));

задержка (1000);

}

Функция Particle.variable () создает переменные для хранения выходных данных датчика, а функция Particle.publish () отображает выходные данные на панели инструментов сайта.

Выходной сигнал датчика показан на рисунке выше для справки.

Шаг 4: Приложения:

Приложения
Приложения

HMC5883 - это многокристальный модуль для поверхностного монтажа, предназначенный для измерения магнитного поля в слабом поле с цифровым интерфейсом для таких приложений, как недорогой компас и магнитометрия. Его точность и точность на уровне от одного до двух градусов позволяют использовать пешеходную навигацию и приложения LBS.

Рекомендуемые: