Magnetfält mätning med hjälp av HMC5883 och Arduino Nano (3 / 4 steg)

Steg 3: Arduino kod att mäta magnetfältet intensitet:



Kan börja med arduino koden nu.

När du använder modulen sensor med arduino, inkluderar vi Wire.h bibliotek. "Wire" bibliotek innehåller funktioner som underlättar i2c kommunikationen mellan sensorn och arduino styrelsen.

Hela arduino koden ges nedan för att underlätta för användaren:

#include < Wire.h >
HMC5883 I2C adress är 0x1E(30)
#define Addr 0x1E
void setup()
{
Initialisera I2C kommunikation som MASTER
Wire.BEGIN();
Initialisera seriell kommunikation, ange baudvärde = 9600
Serial.BEGIN(9600);
Starta I2C-överföring
Wire.beginTransmission(Addr);
Välj Konfigurera register A
Wire.write(0x00);
Ställ in normal mätning konfiguration, data output ränta = 0,75 Hz
Wire.write(0x60);
Stoppa I2C sändningen
Wire.endTransmission();
Starta I2C-överföring
Wire.beginTransmission(Addr);
Välj läge register
Wire.write(0x02);
Ställ in kontinuerlig mätning
Wire.write(0x00);
Stoppa I2C sändningen
Wire.endTransmission();
Delay(300);
}
void loop()
{
unsigned int data [6].
Starta I2C-överföring
Wire.beginTransmission(Addr);
Välj dataregister
Wire.write(0x03);
Stoppa I2C sändningen
Wire.endTransmission();
Begäran 6 byte data
Wire.requestFrom (Addr, 6);
Läst 6 byte data
xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
IF(Wire.available() == 6)
{
data [0] = Wire.read();
data [1] = Wire.read();
data [2] = Wire.read();
data [3] = Wire.read();
data [4] = Wire.read();
data [5] = Wire.read();
}
Delay(300);
Konvertera data
int xMag = ((data [0] * 256) + data[1]);
int zMag = ((data [2] * 256) + data[3]);
int yMag = ((data [4] * 256) + data[5]);
Utdata till seriell monitor
Serial.Print ("magnetfält i x-axeln:");
Serial.println(xMag);
Serial.Print ("magnetfält i y-axeln:");
Serial.println(yMag);
Serial.Print ("magnetfält i z-axeln:");
Serial.println(zMag);
Delay(300);
}

I tråd bibliotek används Wire.write() och Wire.read() för att skriva kommandon och läsa sensor utdata. Efter del av koden visar läsningen av sensordata.

Läst 6 byte data
xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
IF(Wire.available() == 6)
{
data [0] = Wire.read();
data [1] = Wire.read();
data [2] = Wire.read();
data [3] = Wire.read();
data [4] = Wire.read();
data [5] = Wire.read();
}

Serial.Print() och Serial.println() används för att visa utdata från sensorn på serial bildskärmen av Arduino IDE.

Produktionen av sensorn visas i bilden ovan.

Se Steg
Relaterade Ämnen

Luftfuktighet mätning med hjälp av HYT939 och Arduino Nano

HYT939 är en digital Fuktsensor som fungerar på I2C kommunikationsprotokoll. Luftfuktigheten är en avgörande parameter när det gäller medicinska system och laboratorier, så för att uppnå dessa mål som vi försökte gränssnitt HYT939 med arduino nano. I...

Acceleration mätning med hjälp av BMA250 och Arduino Nano

BMA250 är en liten, tunn, ultralow makt, 3-axlig accelerometer med hög upplösning (13-bitars) mätning vid upp till ±16 g. Digital utgång data är formaterade som 16-bitars tvåor kompletterar och kan nås via I2C digitala gränssnitt. Itmeasures den stat...

Tryck mätning med hjälp av CPS120 och Arduino Nano

CPS120 är en hög kvalitet och låg kostnad kapacitiv Absolut trycksensor med full ersättning utdata. Det förbrukar mycket mindre energi och består av en ultra liten mikro-elektro-mekanisk Sensor(MEMS) för mätning. En sigma-delta baserat ADC är också i...

Temperaturmätning med hjälp av STS21 och Arduino Nano

STS21 Digital temperaturgivare erbjuder överlägsen prestanda och en utrymmesbesparande fotavtryck. Det ger kalibrerad, linearized signalerar i digitalt, I2C format. Tillverkning av denna sensor är baserad på CMOSens teknik, som tillskrivar till den ö...

Magnetfält mätning med hjälp av HMC5883 och Raspberry Pi

HMC5883 är en digital kompass avsedd för låg-field magnetisk avkänning. Enheten har en bred magnetfält rad +/-8 Oe och en output ränta på 160 Hz. HMC5883 sensorn ingår automatisk avmagnetiseringsfunktionen rem drivrutiner, offset avbokning och en 12-...

Magnetfält mätning med hjälp av HMC5883 och partikel Photon

HMC5883 är en digital kompass avsedd för låg-field magnetisk avkänning. Enheten har en bred magnetfält rad +/-8 Oe och en output ränta på 160 Hz. HMC5883 sensorn ingår automatisk avmagnetiseringsfunktionen rem drivrutiner, offset avbokning och en 12-...

Temperatur och luftfuktighet övervakning med hjälp av SHT25 och Arduino Nano

Vi har nyligen arbetat med olika projekt som krävs för temperatur och luftfuktighet övervakning och sedan insåg vi att dessa två parametrar faktiskt spela en nyckelroll i att ha en uppskattning av den arbetande effektiviteten i ett system. Både på de...

Temperaturövervakning med hjälp av MCP9808 och Arduino Nano

MCP9808 är en mycket noggrann digital temperatur sensor ±0, 5 ° C I2C mini modul. De förkroppsligas med user - programmerbar register som underlättar temperaturkännande program. MCP9808 hög noggrannhet temperaturgivare har blivit en industristandard...

Ljus intensitet uträkning med hjälp av BH1715 och Arduino Nano

Igår arbetade vi på LCD-skärmen visar, och samtidigt arbetar över dem vi insåg vikten av ljusintensiteten uträkning. Ljusintensiteten är inte bara viktigt i fysisk domän i denna värld men det har dess bra sagt roll i biologiska domän också. Korrekt u...

DIY varm dryck Monitor - med hjälp av DS18B20 och Arduino Nano

Min flickvän har alltid ett problem att hon bränner sin tunga när hon smakar varma drycker. Då började jag tänka, kanske jag kunde skapa en enhet som förhindrar hennes brinnande tungan, så hon kan dricka sitt te och det har alltid perfekt och ville t...

Mätning av Acceleration med H3LIS331DL och Arduino Nano

H3LIS331DL, är en linjär lågenergi-högpresterande 3-axlig accelerometer tillhör familjen "nano", med digital I²C seriellt gränssnitt. H3LIS331DL har användaren valbara full skalorna i ±100g/±200g/±400g och det är kan mäta accelerationer med utgå...

RS485 Seriell kommunikation mellan Arduino Mega och Arduino Nano med Visuino

Ibland måste vi ansluta Arduino styrelser ligger långt bort från varandra. RS485 är ett mycket bekvämt sätt att ansluta styrelser med bara 2 kablar, och kan arbeta för ett avstånd på 1200 m (4000 ft). Det gör också flera styrelser kan enkelt anslutas...

Ljus intensitet mätning med hjälp av BH1715 och Raspberry Pi

Igår arbetade vi på LCD-skärmen visar, och samtidigt arbetar över dem vi insåg vikten av ljusintensiteten uträkning. Ljusintensiteten är inte bara viktigt i fysisk domän i denna värld men det har dess bra sagt roll i biologiska domän också. Korrekt u...

Temperaturmätning med hjälp av STS21 och Raspberry Pi

STS21 Digital temperaturgivare erbjuder överlägsen prestanda och en utrymmesbesparande fotavtryck. Det ger kalibrerad, linearized signalerar i digitalt, I2C format. Tillverkning av denna sensor är baserad på CMOSens teknik, som tillskrivar till den ö...

Temperaturmätning med hjälp av STS21 och partikel Photon

STS21 Digital temperaturgivare erbjuder överlägsen prestanda och en utrymmesbesparande fotavtryck. Det ger kalibrerad, linearized signalerar i digitalt, I2C format. Tillverkning av denna sensor är baserad på CMOSens teknik, som tillskrivar till den ö...

Fläkt RPM med inre hall effekt sensor och Arduino (Intro till hårdvara avbryta och LCD display)

För mitt andra projekt för arbete, jag var tvungen att mäta rotationshastigheten av rotoren i varv Per minut (RPM) av en modifierad dator fläkt. Den hade tre kablarna kommer ut och som kryssat mig som kanske har något sätt att kontrollera sin hastigh...

Röd färg erkännande baserade Arduino kontroll (med hjälp av MATLAB och Arduino)

I denna tutorial, vi visar hur du använder färg erkännande för att styra någon manöverdonet anslutet till någon digital pin av arduino uno, vi har behandlat LED som ett ställdon i denna handledning som är ansluten till stift 13 av UNO. Vi har dragit...

Auotmatic Street lights kontroll med hjälp av LDR och Arduino

Gatan lätta reglerteknik används för att styra de ljus (aktivera och inaktivera baserat på ljus).Här gör vi användning av LDR (Light beroende motstånd) och LED (Light Emitting diode) och arduino.Hårda Ware komponenter som krävs:1) LDR2) LED3) 4.7 k m...

Små LED Strip Controller med LED Amp och Arduino Nano

En liten LED strip styrenhet med en LED-indikator förstärkare och en Arduino Nano. Perfekt för att göra anpassad belysning mönster och/eller kontrollera lysdiodsrand från datorn. Utfärda utegångsförbud för Mosfet från förstärkaren används för att sty...