Нека разгледаме връзката на модула 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 и да напишем такава скица, както е на фигурата. Предоставя се с подробни коментари.
Стъпка 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, ще видим, че това са стойностите по подразбиране за трите идентификационни регистри.
Стъпка 5
За да получите данните от цифровия компас на магнитното поле, трябва да прочетете регистрите от 3 до 8, точно както ние четем регистрите за идентификация. Единствената разлика е, че данните за всяка от трите оси X, Y и Z са представени като двубайтови числа. Преобразувайки ги в десетични числа, получаваме упътвания по всяка от трите оси.