Как да свържа цифров компас HMC5883 към Arduino

Съдържание:

Как да свържа цифров компас HMC5883 към Arduino
Как да свържа цифров компас HMC5883 към Arduino

Видео: Как да свържа цифров компас HMC5883 към Arduino

Видео: Как да свържа цифров компас HMC5883 към Arduino
Видео: Подключаем цифровой компас HMC5883L к Arduino 2024, Може
Anonim

Нека разгледаме връзката на модула GY-273 с триосевия цифров компас на Honeywell HMC5883L. Тази микросхема може да се използва за магнитометрични измервания, в навигация, ако не се изисква висока точност на измерване (с грешка от 1 … 2 градуса и възможност за калибриране). Устройството е свързано чрез интерфейса I2C.

Цифров компас HMC5883
Цифров компас HMC5883

Необходимо

  • - Цифров компас HMC5883;
  • - Arduino;
  • - прототипна платка и свързващи проводници;
  • - компютър.

Инструкции

Етап 1

Това са основните характеристики на магнитния компас:

- 3-осен магнитно чувствителен сензор;

- 12-битов ADC с резолюция 2 mGs (милигаус);

- вграден самопроверка;

- ниско работно напрежение и ниска консумация;

- цифров интерфейс I2C;

- висока честота на анкетиране - до 160 пъти в секунда (времето на едно измерване е около 6 ms);

- точността на определяне на посоката е 1 °… 2 °;

- може да се използва в силни магнитни полета (до ± 8 Gauss).

Диаграмата за свързване на магнитния сензор HMC5883L към Arduino е показана на фигурата. Той е много компактен и прост, защото Двужилният I2C интерфейс е страхотен, защото изисква малко връзки. Можете да използвате макет.

Свързване на цифровия компас HMC5883 към Arduino
Свързване на цифровия компас HMC5883 към Arduino

Стъпка 2

Трябва да изглежда нещо като снимката. Също така ще свържа логически анализатор към SCL и SDA шините, за да наблюдавам обмена на информация между Arduino и модула HMC5883. Не е задължително.

Цифров компас HMC5883, свързан с Arduino на макет
Цифров компас HMC5883, свързан с Arduino на макет

Стъпка 3

Като първо запознанство, нека се опитаме да прочетем идентификационните регистри 10 (0xA), 11 (0xB) и 12 (0xC) на цифровия компас HMC5883 и да напишем такава скица, както е на фигурата. Предоставя се с подробни коментари.

Скица за четене на идентификационните регистри на HMC5883
Скица за четене на идентификационните регистри на HMC5883

Стъпка 4

Сигналът, получен с логическия анализатор, ще бъде както е показано на илюстрацията.

Какво означава? Първият байт е I2C адресът, с който ние (главното устройство, Arduino) установяваме комуникация (високи 7 бита 0x1E) и режим на запис (нисък бит - 0x0); числото е 0x3C. Вторият байт е числото 0xA, което написахме за адресиране на 0x1E и битът за потвърждение от сензора HMC5883L, който е подчинен. Това е регистрационният номер, от който ще започнем да четем данни. С това приключва първата сделка. Следващата започва. Третият байт е заявка за четене от подчиненото устройство (най-значимите 7 бита са адресът 0x1E, 8-мият бит е операцията за четене 0x1; полученото число е 0x3D). Последните 3 три байта са отговорът от HMC5883L slave от регистри 0xA, 0xB и 0xC, съответно.

Цифровият компас HMC5883L се движи през регистрите независимо по време на непрекъснато четене. Тези. не е необходимо (но не и забранено) всеки път да се уточнява случаят. Например, ако вместо 0xA щяхме да напишем 0x3 и да прочетем 10 пъти, щяхме да получим стойности в 10 регистри, започвайки от 3-ти до 12-ти.

И кои са тези три числа - 0x48, 0x34, 0x33? Използвайки отново листа с данни за цифровия компас HMC5883L, ще видим, че това са стойностите по подразбиране за трите идентификационни регистри.

Времева диаграма на I2C обмен с цифров компас HMC5883
Времева диаграма на I2C обмен с цифров компас HMC5883

Стъпка 5

За да получите данните от цифровия компас на магнитното поле, трябва да прочетете регистрите от 3 до 8, точно както ние четем регистрите за идентификация. Единствената разлика е, че данните за всяка от трите оси X, Y и Z са представени като двубайтови числа. Преобразувайки ги в десетични числа, получаваме упътвания по всяка от трите оси.

Препоръчано: