GY-273 модулийн Honeywell HMC5883L гурван тэнхлэгт тоон луужинтай холболтыг авч үзье. Энэ микро схемийг соронзон хэмжүүрт хэмжихэд ашиглаж болно, хэмжилтийн өндөр нарийвчлал шаардагдахгүй бол (1 … 2 градусын алдаа, шалгалт тохируулга хийх боломжтой). Төхөөрөмжийг I2C интерфэйсээр холбосон.
Шаардлагатай
- - Дижитал луужин HMC5883;
- - Ардуино;
- - анхны самбар ба холболтын утас;
- - компьютер.
Зааварчилгаа
1-р алхам
Эдгээр нь соронзон луужингийн гол шинж чанарууд юм.
- 3 тэнхлэгт соронзон мэдрэмтгий мэдрэгч;
- 2 мГс (миллигаусс) нарийвчлалтай 12 битийн ADC;
- өөрөө хийсэн тест;
- ажлын хүчдэл бага, хэрэглээ бага;
- дижитал интерфэйс I2C;
- өндөр санал авах хурд - секундэд 160 удаа (нэг хэмжилтийн хугацаа 6 мс орчим);
- чиглэлийг тодорхойлох нарийвчлал нь 1 °… 2 °;
- хүчтэй соронзон орон дээр ашиглах боломжтой (± 8 Гаусс хүртэл).
HMC5883L соронзон мэдрэгчийг Arduino-той холбох диаграммыг зурагт үзүүлэв. Энэ нь маш нягт бөгөөд энгийн, яагаад гэвэл Хоёр утастай I2C интерфэйс нь цөөн тооны холболт шаарддаг тул гайхалтай юм. Та самбар ашиглаж болно.
Алхам 2
Энэ нь зурагтай төстэй байх ёстой. Би Arduino ба HMC5883 модулийн хоорондох мэдээллийн солилцоог хянахын тулд SCL ба SDA автобуснуудад логик анализаторыг холбоно. Энэ нь заавал байх албагүй.
Алхам 3
Анхны танилын хувьд HMC5883 дижитал луужингийн 10 (0xA), 11 (0xB) ба 12 (0xC) таних бүртгэлийг уншаад зураг дээрх шиг ноорог бичихийг хичээцгээе. Энэ нь дэлгэрэнгүй тайлбарыг өгдөг.
Алхам 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 дижитал луужингийн мэдээллийн хуудсыг дахин ашиглахад эдгээр нь таних гурван бүртгэлийн анхдагч утга болохыг бид харах болно.
Алхам 5
Соронзон орон дээрх тоон луужингийн өгөгдлийг авахын тулд таних бүртгэлийг уншдагтай адил 3-аас 8 хүртэлх бүртгэлийг унших хэрэгтэй. Цорын ганц ялгаа нь X, Y ба Z гурван тэнхлэг тус бүрийн өгөгдлийг хоёр байтын тоогоор харуулах явдал юм. Тэдгээрийг аравтын тоонд шилжүүлснээр бид гурван тэнхлэг бүрийн дагуу чиглэлийг олж авдаг.