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° - юг. Следует помнить, что датчик очень чувствителен к любым намагниченным предметам, а также к сотовым телефонам и другим подобным устройствам излучающих магнитные поля. Также датчик необходимо располагать строго в горизонтальной плоскости, стоит его наклонить и тогда данные будут неверные. При применении цифровых компасов в робототехнике это необходимо учитывать и обычно, такие цифровые компасы применяют в паре с цифровым акселерометром, для компенсации наклона.

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

Суммирующий синхронный счетчик
В наше время проявляется тенденция к бурному развитию цифровой электроники. Курсовая работа предполагает рассмотрение и разработку такого устройства цифров ...

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

Разработка системы управления электроприводом нажимного устройства реверсивного четырехвалкового стана 5000 горячей прокатки
Целью проекта является разработка системы управления электроприводом нажимного устройства реверсивного четырехвалкового стана «5000» горячей прокатки. По ...

Меню сайта