Låt oss överväga anslutningen av GY-273-modulen till Honeywell HMC5883L treaxlig digital kompass. Denna mikrokrets kan användas för magnetometriska mätningar, vid navigering, om hög mätnoggrannhet inte krävs (med ett fel på 1 … 2 grader och möjlighet till kalibrering). Enheten ansluts via I2C-gränssnittet.
Nödvändig
- - Digital kompass HMC5883;
- - Arduino;
- - prototypkort och anslutningskablar;
- - dator.
Instruktioner
Steg 1
Dessa är huvudfunktionerna i en magnetisk kompass:
- 3-axlig magnetkänslig sensor;
- 12-bitars ADC med en upplösning på 2 mGs (milligauss);
- inbyggt självtest;
- låg driftspänning och låg förbrukning;
- digitalt gränssnitt I2C;
- hög avfrågningshastighet - upp till 160 gånger per sekund (tiden för en mätning är cirka 6 ms);
- noggrannheten för att bestämma riktningen är 1 ° … 2 °;
- kan användas i starka magnetfält (upp till ± 8 Gauss).
Diagrammet för att ansluta HMC5883L magnetisk sensor till Arduino visas i figuren. Det är väldigt kompakt och enkelt, för Två-tråds I2C-gränssnittet är utmärkt eftersom det kräver få anslutningar. Du kan använda ett brödbräda.
Steg 2
Det borde se ut som på fotot. Jag kommer också att ansluta en logisk analysator till SCL- och SDA-bussarna för att övervaka informationsutbytet mellan Arduino och HMC5883-modulen. Det är inte obligatoriskt.
Steg 3
Som en första bekantskap, låt oss försöka läsa identifieringsregisterna 10 (0xA), 11 (0xB) och 12 (0xC) för den digitala kompassen HMC5883 och skriva en sådan skiss som i figuren. Den har detaljerade kommentarer.
Steg 4
Den signal som erhålls med den logiska analysatorn kommer att visas som i bilden.
Vad betyder det? Den första byten är I2C-adressen med vilken vi (masterenheten, Arduino) etablerar kommunikation (höga 7 bitar 0x1E) och skrivläget (låg bit - 0x0); siffran är 0x3C. Den andra byten är siffran 0xA, som vi skrev till adressen 0x1E och bekräftelsebiten från HMC5883L-sensorn, som är slaven. Detta är det registernummer som vi kommer att börja läsa data från. Detta avslutar den första transaktionen. Nästa börjar. Den tredje byten är en läsförfrågan från slaven (de viktigaste 7 bitarna är adressen 0x1E, den 8: e biten är läsoperationen 0x1; det resulterande antalet är 0x3D). De tre sista tre byten är svaret från HMC5883L-slaven från register 0xA, 0xB respektive 0xC.
Den digitala kompassen HMC5883L rör sig oberoende av register under kontinuerlig avläsning. De där. det är inte nödvändigt (men inte förbjudet) att specificera fallet varje gång. Till exempel, om vi istället för 0xA skulle skriva 0x3 och läsa 10 gånger, skulle vi få värden i tio register, med början från 3: e till 12: e.
Och vad är dessa tre siffror - 0x48, 0x34, 0x33? Med hjälp av databladet för HMC5883L digital kompass igen ser vi att dessa är standardvärdena för de tre identifieringsregisterna.
Steg 5
För att få digital kompassdata på magnetfältet måste du läsa register 3 till 8, precis som vi läser identifieringsregisterna. Den enda skillnaden är att data för var och en av de tre axlarna X, Y och Z presenteras som dubbelbyte-nummer. Omvandla dem till decimaltal får vi anvisningar längs var och en av de tre axlarna.