Съдържание:
- Стъпка 1: Изисква се хардуер:
- Стъпка 2: Свързване на хардуера:
- Стъпка 3: Кодът на Arduino за измерване на интензитета на магнитното поле:
- Стъпка 4: Приложения:
Видео: Измерване на магнитно поле с помощта на HMC5883 и Arduino Nano: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
HMC5883 е цифров компас, предназначен за нискополеви магнитни сензори. Това устройство има широк диапазон на магнитно поле от +/- 8 Oe и изходна скорост 160 Hz. Сензорът HMC5883 включва драйвери на ленти за автоматично размагняване, отместване на офсета и 12-битов ADC, който позволява точност на насочване на компаса от 1 ° до 2 °. Всички I²C мини модули са проектирани да работят при 5VDC.
В този урок ще обясним подробната работа на HMC5883 с Arduino nano.
Стъпка 1: Изисква се хардуер:
Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:
1. HMC5883
2. Arduino Nano
3. I2C кабел
4. I2C щит за Arduino Nano
Стъпка 2: Свързване на хардуера:
Разделът за свързване на хардуера основно обяснява необходимите кабелни връзки между сензора и arduino nano. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:
HMC5883 ще работи през I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.
Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици. Всичко, от което се нуждаете, са четири проводника!
Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.
Тези връзки са показани на снимките по -горе.
Стъпка 3: Кодът на Arduino за измерване на интензитета на магнитното поле:
Нека започнем с кода на Arduino сега.
Докато използваме сензорния модул с Arduino, ние включваме библиотеката Wire.h. Библиотеката "Wire" съдържа функциите, които улесняват i2c комуникацията между сензора и платката Arduino.
Целият код на Arduino е даден по -долу за удобство на потребителя:
#включва
// HMC5883 I2C адресът е 0x1E (30)
#define Addr 0x1E
void setup ()
{
// Инициализира 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);
// Конвертиране на данните
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 Oe и изходна скорост 160 Hz. Сензорът HMC5883 включва драйвери на ленти за автоматично размагняване, отместване на офсета и
Измерване на магнитното поле с помощта на HMC5883 и частичен фотон: 4 стъпки
Измерване на магнитно поле с помощта на HMC5883 и частичен фотон: HMC5883 е цифров компас, предназначен за нискополеви магнитни сензори. Това устройство има широк диапазон на магнитно поле от +/- 8 Oe и изходна скорост 160 Hz. Сензорът HMC5883 включва драйвери на ленти за автоматично размагняване, отместване на офсета и
Arduino Milligaussmeter - Магнитно измерване: 4 стъпки
Arduino Milligaussmeter - Магнитно измерване: Могат ли да се изпращат силни магнити на самолет? Изпращаме много магнити и има определени правила за транспортиране на магнитни материали, особено в самолет. В тази статия ние изследваме как можете да направите свой собствен Milligaussmeter за въздушни пратки
3-осен сензор за магнитно поле: 10 стъпки (със снимки)
3-осен сензор за магнитно поле: Безжичните системи за пренос на енергия са на път да заменят конвенционалното кабелно зареждане. От малки биомедицински импланти до безжично презареждане на огромни електрически превозни средства. Неразделна част от изследването на безжичното захранване е
Как да: Направете поле за съобщения с помощта на VBScript: 5 стъпки
Как да: Направете поле за съобщения с помощта на VBScript: В този " Инструктивен " Ще ви покажа как да направите кутия за съобщения в Notepad с помощта на VBScript кодиране. Моля, забележете: Това е напълно безвреден проект и ако нещо се обърка, няма да бъда отговорен