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

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

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

Необходимо

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

Инструкции

Етап 1

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

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

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

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

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

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

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

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

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

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

Стъпка 2

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

Стъпка 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 са представени като двубайтови числа. Преобразувайки ги в десетични числа, получаваме упътвания по всяка от трите оси.

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