Informatics Point

Информатика и проектирование

Код работы с датчиком:

#include "Wire.h"

#include "HMC5883L.h"L compass;setup(){.begin(9600);.begin();= HMC5883L(); // создаем экземпляр HMC5883L библиотекиL(); // инициализация HMC5883L

}loop(){heading = getHeading();.println(heading);(250);

}

void setupHMC5883L(){

// инициализация HMC5883L, и проверка наличия ошибокerror;= compass.SetScale(0.88); // чувствительность датчика из диапазона: 0.88, 1.3, 1.9, 2.5, 4.0, 4.7, 5.6, 8.1

if(error != 0) Serial.println(compass.GetErrorText(error)); // если ошибка, то выводим ее= compass.SetMeasurementMode(Measurement_Continuous); // установка режима измерений как Continuous (продолжительный)(error != 0) Serial.println(compass.GetErrorText(error)); // если ошибка, то выводим ее

}getHeading(){

// считываем данные с HMC5883L и рассчитываем направлениеscaled = compass.ReadScaledAxis(); // получаем масштабированные элементы с датчика

float heading = atan2(scaled.YAxis, scaled.XAxis); // высчитываем направление

// корректируем значения с учетом знаков(heading < 0) heading += 2*PI;

if(heading > 2*PI) heading -= 2*PI;

return heading * RAD_TO_DEG; // переводим радианы в градусы

}

Чувствительность датчика задается функцией SetScale() и может быть выбрана только из следующих значений: 0.88, 1.3, 1.9, 2.5, 4.0, 4.7, 5.6, 8.1.

После загрузки скетча в контроллер Arduino и запуске утилиты мониторинга порта, следует увидеть поступающие данные с датчика, представленные на (Рис.3):

Рис.3 Поступающие данные с датчика

Вращая датчик вокруг своей оси, будет изменяться градус поворота. 0° - это будет север, а 180° - юг. Следует помнить, что датчик очень чувствителен к любым намагниченным предметам, а также к сотовым телефонам и другим подобным устройствам излучающих магнитные поля. Также датчик необходимо располагать строго в горизонтальной плоскости, стоит его наклонить и тогда данные будут неверные. При применении цифровых компасов в робототехнике это необходимо учитывать и обычно, такие цифровые компасы применяют в паре с цифровым акселерометром, для компенсации наклона.

Лучшие статьи по информатике

Разработка интегрированной системы управления отделением разваривания на спиртзаводе на основе программируемого логического контроллера Modicon TSX Momentum
Автоматизация технологических процессов - этап комплексной механизации, характеризуемый освобождением человека от непосредственного выполнения функций управ ...

Проектирование автоматизированного реабилитационного устройства, предназначенного для реабилитации кистевого сустава человека
В современном мире нас повсюду окружают новейшие достижения техники. Невозможно представить ни одну из сфер деятельности человека без использования мехатрон ...

Расчет основных характеристик усилительного каскада биполярного транзистора
транзистор усилитель каскад Целью данной курсовой работы по предмету “Схемотехника телекоммуникационных устройств” является применение знаний полученных ...

Меню сайта