Arduino руу дижитал луужин HMC5883-ийг хэрхэн холбох вэ

Агуулгын хүснэгт:

Arduino руу дижитал луужин HMC5883-ийг хэрхэн холбох вэ
Arduino руу дижитал луужин HMC5883-ийг хэрхэн холбох вэ

Видео: Arduino руу дижитал луужин HMC5883-ийг хэрхэн холбох вэ

Видео: Arduino руу дижитал луужин HMC5883-ийг хэрхэн холбох вэ
Видео: Трехосевой цифровой компас HMC5883L и Arduino 2024, May
Anonim

GY-273 модулийн Honeywell HMC5883L гурван тэнхлэгт тоон луужинтай холболтыг авч үзье. Энэ микро схемийг соронзон хэмжүүрт хэмжихэд ашиглаж болно, хэмжилтийн өндөр нарийвчлал шаардагдахгүй бол (1 … 2 градусын алдаа, шалгалт тохируулга хийх боломжтой). Төхөөрөмжийг I2C интерфэйсээр холбосон.

Дижитал луужин HMC5883
Дижитал луужин HMC5883

Шаардлагатай

  • - Дижитал луужин HMC5883;
  • - Ардуино;
  • - анхны самбар ба холболтын утас;
  • - компьютер.

Зааварчилгаа

1-р алхам

Эдгээр нь соронзон луужингийн гол шинж чанарууд юм.

- 3 тэнхлэгт соронзон мэдрэмтгий мэдрэгч;

- 2 мГс (миллигаусс) нарийвчлалтай 12 битийн ADC;

- өөрөө хийсэн тест;

- ажлын хүчдэл бага, хэрэглээ бага;

- дижитал интерфэйс I2C;

- өндөр санал авах хурд - секундэд 160 удаа (нэг хэмжилтийн хугацаа 6 мс орчим);

- чиглэлийг тодорхойлох нарийвчлал нь 1 °… 2 °;

- хүчтэй соронзон орон дээр ашиглах боломжтой (± 8 Гаусс хүртэл).

HMC5883L соронзон мэдрэгчийг Arduino-той холбох диаграммыг зурагт үзүүлэв. Энэ нь маш нягт бөгөөд энгийн, яагаад гэвэл Хоёр утастай I2C интерфэйс нь цөөн тооны холболт шаарддаг тул гайхалтай юм. Та самбар ашиглаж болно.

HMC5883 дижитал луужинг Arduino руу холбож байна
HMC5883 дижитал луужинг Arduino руу холбож байна

Алхам 2

Энэ нь зурагтай төстэй байх ёстой. Би Arduino ба HMC5883 модулийн хоорондох мэдээллийн солилцоог хянахын тулд SCL ба SDA автобуснуудад логик анализаторыг холбоно. Энэ нь заавал байх албагүй.

Талх самбар дээр Arduino-той холбогдсон HMC5883 дижитал луужин
Талх самбар дээр Arduino-той холбогдсон HMC5883 дижитал луужин

Алхам 3

Анхны танилын хувьд HMC5883 дижитал луужингийн 10 (0xA), 11 (0xB) ба 12 (0xC) таних бүртгэлийг уншаад зураг дээрх шиг ноорог бичихийг хичээцгээе. Энэ нь дэлгэрэнгүй тайлбарыг өгдөг.

HMC5883-ийн таних регистрийг унших
HMC5883-ийн таних регистрийг унших

Алхам 4

Логик анализатороор олж авсан дохио нь зурагт үзүүлсэн шиг байх болно.

Энэ нь юу гэсэн үг вэ? Эхний байт нь бид (мастер төхөөрөмж, Arduino) холбоо тогтоодог I2C хаяг (өндөр 7 бит 0x1E), бичих горим (бага бит - 0x0); тоо 0x3C байна. Хоёрдахь байт нь 0xA тоо бөгөөд бид үүнийг 0x1E хаяг руу бичих бөгөөд боол болох HMC5883L мэдрэгчээс баталгаажуулах битийг бичнэ. Энэ бол өгөгдлийг уншиж эхлэх регистрийн дугаар юм. Ингэснээр анхны гүйлгээ дуусч байна. Дараагийнх нь эхэлнэ. Гурав дахь байт нь боолын унших хүсэлт юм (хамгийн чухал 7 бит нь 0x1E хаяг, 8-р бит нь унших ажиллагаа 0x1; үр дүн нь 0x3D байна). Сүүлийн 3 гурван байт нь HMC5883L боолын 0xA, 0xB, 0xC регистрүүдийн хариу юм.

Дижитал луужин HMC5883L нь тасралтгүй унших явцад регистрүүдээр бие даан хөдөлдөг. Тэд. тухай бүрд хэргийг тодруулах шаардлагагүй (гэхдээ хориглодоггүй). Жишээлбэл, хэрэв 0xA-ийн оронд бид 0x3 гэж бичээд 10 удаа унших юм бол 3-аас 12 хүртэл 10 бүртгэлд утгыг авах болно.

0x48, 0x34, 0x33 гэсэн эдгээр гурван тоо юу вэ? HMC5883L дижитал луужингийн мэдээллийн хуудсыг дахин ашиглахад эдгээр нь таних гурван бүртгэлийн анхдагч утга болохыг бид харах болно.

HMC5883 дижитал луужинтай I2C солилцооны цагийн схем
HMC5883 дижитал луужинтай I2C солилцооны цагийн схем

Алхам 5

Соронзон орон дээрх тоон луужингийн өгөгдлийг авахын тулд таних бүртгэлийг уншдагтай адил 3-аас 8 хүртэлх бүртгэлийг унших хэрэгтэй. Цорын ганц ялгаа нь X, Y ба Z гурван тэнхлэг тус бүрийн өгөгдлийг хоёр байтын тоогоор харуулах явдал юм. Тэдгээрийг аравтын тоонд шилжүүлснээр бид гурван тэнхлэг бүрийн дагуу чиглэлийг олж авдаг.

Зөвлөмж болгож буй: