Sådan Tilsluttes Digitalt Kompas HMC5883 Til Arduino

Indholdsfortegnelse:

Sådan Tilsluttes Digitalt Kompas HMC5883 Til Arduino
Sådan Tilsluttes Digitalt Kompas HMC5883 Til Arduino

Video: Sådan Tilsluttes Digitalt Kompas HMC5883 Til Arduino

Video: Sådan Tilsluttes Digitalt Kompas HMC5883 Til Arduino
Video: Трехосевой цифровой компас HMC5883L и Arduino 2024, November
Anonim

Lad os overveje forbindelsen af GY-273-modulet til Honeywell HMC5883L tre-akset digitalt kompas. Dette mikrokredsløb kan bruges til magnetometriske målinger i navigationen, hvis der ikke kræves en høj målenøjagtighed (med en fejl på 1 … 2 grader og mulighed for kalibrering). Enheden er tilsluttet via I2C-grænsefladen.

Digitalt kompas HMC5883
Digitalt kompas HMC5883

Nødvendig

  • - Digitalt kompas HMC5883;
  • - Arduino;
  • - prototype-kort og forbindelsesledninger
  • - computer.

Instruktioner

Trin 1

Dette er de vigtigste funktioner i et magnetisk kompas:

- 3-akset magnetisk følsom sensor;

- 12-bit ADC med en opløsning på 2 mGs (milligauss);

- indbygget selvtest

- lav driftsspænding og lavt forbrug

- digital interface I2C;

- høj afstemningshastighed - op til 160 gange i sekundet (tiden for en måling er ca. 6 ms);

- nøjagtigheden ved bestemmelse af retningen er 1 ° … 2 °

- kan bruges i stærke magnetfelter (op til ± 8 Gauss).

Diagrammet til tilslutning af den magnetiske sensor HMC5883L til Arduino er vist i figuren. Det er meget kompakt og simpelt, fordi To-leder I2C interface er fantastisk, fordi det kræver få forbindelser. Du kan bruge et brødbræt.

Tilslutning af HMC5883 digitalt kompas til Arduino
Tilslutning af HMC5883 digitalt kompas til Arduino

Trin 2

Det skal se ud som billedet. Jeg vil også forbinde en logisk analysator til SCL- og SDA-busserne for at overvåge informationsudvekslingen mellem Arduino og HMC5883-modulet. Det er ikke obligatorisk.

HMC5883 digitalt kompas tilsluttet Arduino på breadboard
HMC5883 digitalt kompas tilsluttet Arduino på breadboard

Trin 3

Lad os som en første bekendtskab prøve at læse identifikationsregistrene 10 (0xA), 11 (0xB) og 12 (0xC) på det digitale kompas HMC5883 og skrive en sådan skitse som i figuren. Den leveres med detaljerede kommentarer.

Skitse, der læser identifikationsregistrene for HMC5883
Skitse, der læser identifikationsregistrene for HMC5883

Trin 4

Signalet opnået med den logiske analysator vil være som vist på illustrationen.

Hvad betyder det? Den første byte er I2C-adressen, som vi (masterenheden, Arduino) etablerer kommunikation med (høj 7 bit 0x1E), og skrivetilstanden (lav bit - 0x0); tallet er 0x3C. Den anden byte er tallet 0xA, som vi skrev til adresse 0x1E og bekræftelsesbiten fra HMC5883L-sensoren, som er slave. Dette er det registreringsnummer, hvorfra vi begynder at læse data. Dette afslutter den første transaktion. Den næste begynder. Den tredje byte er en læseanmodning fra slaven (de mest betydningsfulde 7 bits er adressen 0x1E, den 8. bit er læsningen 0x1; det resulterende tal er 0x3D). De sidste 3 tre byte er svaret fra HMC5883L-slave fra henholdsvis registre 0xA, 0xB og 0xC.

Det digitale kompas HMC5883L bevæger sig uafhængigt af registre under kontinuerlig læsning. De der. det er ikke nødvendigt (men ikke forbudt) at specificere sagen hver gang. For eksempel, hvis vi i stedet for 0xA ville skrive 0x3 og læse 10 gange, ville vi få værdier i 10 registre, startende fra 3. til 12.

Og hvad er disse tre tal - 0x48, 0x34, 0x33? Ved hjælp af databladet til det digitale kompas HMC5883L vil vi se, at disse er standardværdierne for de tre identifikationsregistre.

Timingsdiagram for I2C-udveksling med HMC5883 digitalt kompas
Timingsdiagram for I2C-udveksling med HMC5883 digitalt kompas

Trin 5

For at få de digitale kompassdata på magnetfeltet skal du læse registre 3 til 8, ligesom vi læser identifikationsregistrene. Den eneste forskel er, at dataene for hver af de tre akser X, Y og Z præsenteres som dobbelt-byte-tal. Konvertering af dem til decimaltal får vi retninger langs hver af de tre akser.

Anbefalede: