Hvordan Koble Digitalt Kompass HMC5883 Til Arduino

Innholdsfortegnelse:

Hvordan Koble Digitalt Kompass HMC5883 Til Arduino
Hvordan Koble Digitalt Kompass HMC5883 Til Arduino

Video: Hvordan Koble Digitalt Kompass HMC5883 Til Arduino

Video: Hvordan Koble Digitalt Kompass HMC5883 Til Arduino
Video: Трехосевой цифровой компас HMC5883L и Arduino 2024, April
Anonim

La oss vurdere forbindelsen mellom GY-273-modulen og Honeywell HMC5883L tre-akset digitalt kompass. Denne mikrokretsen kan brukes til magnetometriske målinger, i navigasjon, hvis det ikke er nødvendig med høy nøyaktighet (med en feil på 1 … 2 grader og muligheten for kalibrering). Enheten er koblet til via I2C-grensesnittet.

Digital kompass HMC5883
Digital kompass HMC5883

Nødvendig

  • - Digital kompass HMC5883;
  • - Arduino;
  • - prototypebrett og tilkoblingsledninger;
  • - datamaskin.

Bruksanvisning

Trinn 1

Dette er hovedtrekkene til et magnetisk kompass:

- 3-akset magnetisk følsom sensor;

- 12-biters ADC med en oppløsning på 2 mGs (milligauss);

- innebygd selvtest;

- lav driftsspenning og lavt forbruk;

- digitalt grensesnitt I2C;

- høy avstemningshastighet - opptil 160 ganger per sekund (tiden for en måling er ca 6 ms);

- nøyaktigheten for å bestemme retningen er 1 ° … 2 °;

- kan brukes i sterke magnetfelt (opptil ± 8 Gauss).

Diagrammet for å koble HMC5883L magnetisk sensor til Arduino er vist i figuren. Det er veldig kompakt og enkelt, fordi To-leder I2C-grensesnittet er flott fordi det krever få tilkoblinger. Du kan bruke et brødbrett.

Koble HMC5883 digitalt kompass til Arduino
Koble HMC5883 digitalt kompass til Arduino

Steg 2

Det skal se ut som på bildet. Jeg vil også koble en logisk analysator til SCL- og SDA-bussene for å overvåke informasjonsutvekslingen mellom Arduino og HMC5883-modulen. Det er ikke obligatorisk.

HMC5883 digitalt kompass koblet til Arduino på brødbrett
HMC5883 digitalt kompass koblet til Arduino på brødbrett

Trinn 3

Som en første bekjent, la oss prøve å lese identifikasjonsregistrene 10 (0xA), 11 (0xB) og 12 (0xC) til det digitale kompasset HMC5883 og skrive en slik skisse som i figuren. Den er utstyrt med detaljerte kommentarer.

Skisse som leser identifikasjonsregistrene til HMC5883
Skisse som leser identifikasjonsregistrene til HMC5883

Trinn 4

Signalet oppnådd med logikkanalysatoren vil være som vist i illustrasjonen.

Hva betyr det? Den første byten er I2C-adressen som vi (masterenheten, Arduino) etablerer kommunikasjon med (høy 7 bit 0x1E), og skrivemodus (lav bit - 0x0); tallet er 0x3C. Den andre byten er tallet 0xA, som vi skrev for å adressere 0x1E og bekreftelsesbiten fra HMC5883L-sensoren, som er slaven. Dette er registernummeret som vi begynner å lese data fra. Dette avslutter den første transaksjonen. Den neste begynner. Den tredje byten er en leseforespørsel fra slaven (de viktigste 7 bitene er adressen 0x1E, den 8. biten er leseoperasjonen 0x1; det resulterende tallet er 0x3D). De tre siste tre byte er responsen fra HMC5883L-slaven fra henholdsvis register 0xA, 0xB og 0xC.

Det digitale kompasset HMC5883L beveger seg uavhengig av registerene under kontinuerlig lesing. De. det er ikke nødvendig (men ikke forbudt) å spesifisere saken hver gang. For eksempel, hvis vi i stedet for 0xA ville skrive 0x3 og lese 10 ganger, ville vi få verdier i 10 registre, fra 3. til 12.

Og hva er disse tre tallene - 0x48, 0x34, 0x33? Ved å bruke databladet for HMC5883L digitalt kompass igjen, vil vi se at dette er standardverdiene for de tre identifikasjonsregistrene.

Tidsskjema for I2C-utveksling med HMC5883 digitalt kompass
Tidsskjema for I2C-utveksling med HMC5883 digitalt kompass

Trinn 5

For å få de digitale kompassdataene på magnetfeltet, må du lese registerene 3 til 8, akkurat som vi leser identifikasjonsregistrene. Den eneste forskjellen er at dataene for hver av de tre aksene X, Y og Z presenteres som dobbeltbytetall. Når vi konverterer dem til desimaltall, får vi retninger langs hver av de tre aksene.

Anbefalt: