HMC5883 санарип компасын Arduinoго кантип туташтыруу керек

Мазмуну:

HMC5883 санарип компасын Arduinoго кантип туташтыруу керек
HMC5883 санарип компасын Arduinoго кантип туташтыруу керек

Video: HMC5883 санарип компасын Arduinoго кантип туташтыруу керек

Video: HMC5883 санарип компасын Arduinoго кантип туташтыруу керек
Video: Магнитометр HMC5883L и atmega 2024, Май
Anonim

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

Digital Compass HMC5883
Digital Compass HMC5883

Зарыл

  • - HMC5883 санарип компасы;
  • - Arduino;
  • - прототип такта жана туташтыруучу зымдар;
  • - компьютер.

Нускамалар

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-кадам

Логикалык анализатор менен алынган сигнал сүрөттө көрсөтүлгөндөй болот.

Бул эмнени билдирет? Биринчи байт - бул I2C дареги, биз (башкы шайман, Arduino) байланышты орнотобуз (жогорку 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 үч огунун ар бири боюнча маалыматтар кош байт сандар катары берилген. Аларды ондук сандарга айландырып, үч октун ар биринин багыттарын алабыз.

Сунушталууда: