Оглавление:
- Шаг 1: Требуемое оборудование:
- Шаг 2: Подключение оборудования:
- Шаг 3: Код Arduino для измерения напряженности магнитного поля:
- Шаг 4: Приложения:
Видео: Измерение магнитного поля с использованием HMC5883 и Arduino Nano: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
HMC5883 - цифровой компас, разработанный для измерения магнитного поля в слабом поле. Это устройство имеет широкий диапазон магнитного поля +/- 8 Э и выходную частоту 160 Гц. Датчик HMC5883 включает в себя приводы ремня с автоматическим размагничиванием, отмену смещения и 12-разрядный АЦП, обеспечивающий точность направления по компасу от 1 ° до 2 °. Все мини-модули I²C рассчитаны на работу при 5 В постоянного тока.
В этом руководстве мы собираемся подробно объяснить работу HMC5883 с Arduino nano.
Шаг 1: Требуемое оборудование:
Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:
1. HMC5883
2. Arduino Nano
3. Кабель I2C
4. I2C Shield для Arduino Nano.
Шаг 2: Подключение оборудования:
В разделе «Подключение оборудования» в основном объясняются проводные соединения, необходимые между датчиком и Arduino nano. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:
HMC5883 будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.
Изначально плата настроена для интерфейса I2C, поэтому мы рекомендуем использовать это подключение, если вы не сторонник этого. Все, что вам нужно, это четыре провода!
Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.
Эти соединения показаны на рисунках выше.
Шаг 3: Код Arduino для измерения напряженности магнитного поля:
Давайте теперь начнем с кода Arduino.
При использовании сенсорного модуля с Arduino мы включаем библиотеку Wire.h. Библиотека Wire содержит функции, которые облегчают обмен данными i2c между датчиком и платой Arduino.
Полный код Arduino приведен ниже для удобства пользователя:
#включают
// Адрес I2C HMC5883 0x1E (30)
#define Addr 0x1E
установка void ()
{
// Инициализируем связь 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);
// Конвертируем данные
int xMag = ((данные [0] * 256) + данные [1]);
int zMag = ((данные [2] * 256) + данные [3]);
int yMag = ((данные [4] * 256) + данные [5]);
// Выводим данные на последовательный монитор
Serial.print («Магнитное поле по оси X:»);
Serial.println (xMag);
Serial.print («Магнитное поле по оси Y:»);
Serial.println (yMag);
Serial.print («Магнитное поле по оси Z:»);
Serial.println (zMag);
задержка (300);
}
В библиотеке проводов Wire.write () и Wire.read () используются для записи команд и чтения выходного сигнала датчика. Следующая часть кода иллюстрирует считывание выходного сигнала датчика.
// Чтение 6 байтов данных // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); данные [1] = Wire.read (); данные [2] = Wire.read (); данные [3] = Wire.read (); данные [4] = Wire.read (); данные [5] = Wire.read (); }
Serial.print () и Serial.println () используются для отображения выходных данных датчика на последовательном мониторе Arduino IDE.
Выход датчика показан на картинке выше.
Шаг 4: Приложения:
HMC5883 - это многокристальный модуль для поверхностного монтажа, предназначенный для измерения магнитного поля в слабом поле с цифровым интерфейсом для таких приложений, как недорогой компас и магнитометрия. Его точность и точность на уровне от одного до двух градусов позволяют использовать пешеходную навигацию и приложения LBS.
Рекомендуемые:
Измерение магнитного поля с использованием HMC5883 и Raspberry Pi: 4 шага
Измерение магнитного поля с использованием HMC5883 и Raspberry Pi: HMC5883 - это цифровой компас, разработанный для измерения магнитного поля в слабом поле. Это устройство имеет широкий диапазон магнитного поля +/- 8 Э и выходную частоту 160 Гц. Датчик HMC5883 включает в себя драйверы ремня с автоматическим размагничиванием, отмену смещения и
Измерение магнитного поля с использованием HMC5883 и фотона частиц: 4 шага
Измерение магнитного поля с использованием HMC5883 и фотона частиц: HMC5883 - это цифровой компас, разработанный для измерения магнитного поля в слабом поле. Это устройство имеет широкий диапазон магнитного поля +/- 8 Э и выходную частоту 160 Гц. Датчик HMC5883 включает в себя драйверы ремня с автоматическим размагничиванием, отмену смещения и
Измерение температуры с использованием LM75BIMM и Arduino Nano: 4 шага
Измерение температуры с использованием LM75BIMM и Arduino Nano: LM75BIMM - это цифровой датчик температуры со встроенным тепловым сторожевым таймером и двухпроводным интерфейсом, который поддерживает его работу на частотах до 400 кГц. Он имеет выход по перегреву с программируемым пределом и гистерезисом. В этом руководстве интерфейс
Измерение температуры с использованием MCP9803 и Arduino Nano: 4 шага
Измерение температуры с использованием MCP9803 и Arduino Nano: MCP9803 - это двухпроводной высокоточный датчик температуры. В них реализованы программируемые пользователем регистры, которые упрощают приложения для измерения температуры. Этот датчик подходит для сложной многозонной системы контроля температуры. В
3-осевой датчик магнитного поля: 10 шагов (с изображениями)
3-осевой датчик магнитного поля: беспроводные системы передачи энергии постепенно вытесняют традиционную проводную зарядку. От крошечных биомедицинских имплантатов до беспроводной зарядки огромных электромобилей. Неотъемлемой частью исследования беспроводной энергии является