Rəqəmsal Kompas HMC5883-i Arduino-ya Necə Bağlamaq Olar

Mündəricat:

Rəqəmsal Kompas HMC5883-i Arduino-ya Necə Bağlamaq Olar
Rəqəmsal Kompas HMC5883-i Arduino-ya Necə Bağlamaq Olar

Video: Rəqəmsal Kompas HMC5883-i Arduino-ya Necə Bağlamaq Olar

Video: Rəqəmsal Kompas HMC5883-i Arduino-ya Necə Bağlamaq Olar
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Bilər
Anonim

GY-273 modulunun Honeywell HMC5883L üç oxlu rəqəmsal kompasla əlaqəsini nəzərdən keçirək. Bu mikrosxem, yüksək ölçü dəqiqliyi tələb olunmadığı təqdirdə (1 … 2 dərəcə bir səhv və kalibrləmə ehtimalı ilə) naviqasiya zamanı maqnitometrik ölçmələr üçün istifadə edilə bilər. Cihaz I2C interfeysi vasitəsilə bağlanır.

Rəqəmsal Pusula HMC5883
Rəqəmsal Pusula HMC5883

Zəruri

  • - Rəqəmsal kompas HMC5883;
  • - Arduino;
  • - prototip lövhə və birləşdirici tellər;
  • - kompüter.

Təlimat

Addım 1

Maqnetik kompasın əsas xüsusiyyətləri bunlardır:

- 3 oxlu maqnetik həssas sensor;

- 2 mGs (milligauss) qətnamə ilə 12-bit ADC;

- daxili öz-özünə test;

- aşağı işləmə gərginliyi və aşağı istehlak;

- rəqəmsal interfeys I2C;

- yüksək səsvermə dərəcəsi - saniyədə 160 dəfəyə qədər (bir ölçmə müddəti təxminən 6 ms);

- istiqamətin təyin olunmasının dəqiqliyi 1 °… 2 °;

- güclü maqnit sahələrində istifadə edilə bilər (± 8 Gauss-a qədər).

HMC5883L maqnit sensorunun Arduinoya qoşulması diaqramı şəkildə göstərilmişdir. Çox yığcam və sadədir, çünki İki telli I2C interfeysi əladır, çünki az əlaqə tələb edir. Bir çörək taxtasından istifadə edə bilərsiniz.

HMC5883 rəqəmsal kompasın Arduinoya qoşulması
HMC5883 rəqəmsal kompasın Arduinoya qoşulması

Addım 2

Fotoya bənzər bir şey görünməlidir. Arduino ilə HMC5883 modulu arasındakı məlumat mübadiləsini izləmək üçün SCL və SDA avtobuslarına bir məntiq analizatoru da bağlayacağam. Bu məcburi deyil.

Çörək taxtasında Arduinoya qoşulmuş HMC5883 rəqəmsal kompas
Çörək taxtasında Arduinoya qoşulmuş HMC5883 rəqəmsal kompas

Addım 3

İlk tanışlıq olaraq, HMC5883 rəqəmsal kompasın 10 (0xA), 11 (0xB) və 12 (0xC) identifikasiya qeydlərini oxumağa və şəkildə olduğu kimi bir eskiz yazmağa çalışaq. Ətraflı şərhlərlə təmin olunur.

HMC5883-ün identifikasiya qeydlərini oxuyan eskiz
HMC5883-ün identifikasiya qeydlərini oxuyan eskiz

Addım 4

Məntiq analizatoru ilə alınan siqnal təsvirdə göstərildiyi kimi olacaqdır.

Bunun mənası nədi? Birinci bayt (ana cihaz, Arduino) ünsiyyət qurduğumuz I2C ünvanı (yüksək 7 bit 0x1E) və yazma rejimi (aşağı bit - 0x0); sayı 0x3C-dir. İkinci bayt, 0x1E ünvanına yazdığımız 0xA sayı və kölə olan HMC5883L sensorundan təsdiqləmə bitidir. Bu, məlumat oxumağa başlayacağımız qeyd nömrəsidir. Bu, ilk əməliyyatı bitirir. Növbəti başlayır. Üçüncü bayt kölədən bir oxuma tələbidir (ən əhəmiyyətli 7 bit 0x1E ünvanı, 8-ci bit 0x1 oxuma əməliyyatıdır; nəticədə çıxan sayı 0x3D-dir). Son 3 üç bayt, sırasıyla 0xA, 0xB və 0xC registrlərindən HMC5883L köləsinin cavabıdır.

Rəqəmsal kompas HMC5883L fasiləsiz oxuma zamanı qeydlərdən müstəqil olaraq hərəkət edir. O. işi hər dəfə dəqiqləşdirmək lazım deyil (lakin qadağan olunmur). Məsələn, 0xA əvəzinə 0x3 yazsaq və 10 dəfə oxusaydıq, 3-dən 12-yə qədər 10 registrdə dəyərlər alırdıq.

Və bu üç rəqəm nədir - 0x48, 0x34, 0x33? Yenidən HMC5883L rəqəmsal kompas üçün məlumat vərəqəsini istifadə edərək bunların üç identifikasiya qeydləri üçün standart dəyərlər olduğunu görəcəyik.

HMC5883 rəqəmsal kompas ilə I2C mübadiləsinin vaxt diaqramı
HMC5883 rəqəmsal kompas ilə I2C mübadiləsinin vaxt diaqramı

Addım 5

Maqnetik sahədəki rəqəmsal kompas məlumatlarını əldə etmək üçün eyniləşdirmə qeydlərini oxuduğumuz kimi 3 ilə 8 arasındakı qeydləri oxumaq lazımdır. Yeganə fərq ondadır ki, X, Y və Z üç oxunun hər biri üçün məlumatlar cüt bayt ədədi kimi təqdim olunur. Onları onlu ədədə çevirərək, üç oxun hər biri boyunca istiqamətlər əldə edirik.

Tövsiyə: