Indholdsfortegnelse:
- Trin 1: Påkrævet hardware:
- Trin 2: Hardware -tilslutning:
- Trin 3: Arduino -kode til måling af magnetisk feltintensitet:
- Trin 4: Ansøgninger:
Video: Magnetisk feltmåling ved hjælp af HMC5883 og Arduino Nano: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
HMC5883 er et digitalt kompas designet til lavfeltmagnetisk sansning. Denne enhed har et bredt magnetfeltområde på +/- 8 Oe og en udgangshastighed på 160 Hz. HMC5883-sensoren inkluderer automatiske degaussing-remdrivere, offset-annullering og en 12-bit ADC, der muliggør 1 ° til 2 ° kompasskursnøjagtighed. Alle I²C mini -moduler er designet til at fungere ved 5VDC.
I denne vejledning vil vi forklare den detaljerede bearbejdning af HMC5883 med Arduino nano.
Trin 1: Påkrævet hardware:
De materialer, vi har brug for for at nå vores mål, omfatter følgende hardwarekomponenter:
1. HMC5883
2. Arduino Nano
3. I2C -kabel
4. I2C -skjold til Arduino Nano
Trin 2: Hardware -tilslutning:
Hardwaretilslutningssektionen forklarer dybest set de nødvendige ledningsforbindelser mellem sensoren og arduino nano. At sikre korrekte forbindelser er den grundlæggende nødvendighed, mens du arbejder på et hvilket som helst system til den ønskede output. Så de nødvendige forbindelser er som følger:
HMC5883 fungerer over I2C. Her er eksemplet på ledningsdiagram, der viser, hvordan du tilslutter hver grænseflade på sensoren.
Out-of-the-box er tavlen konfigureret til en I2C-grænseflade, som sådan anbefaler vi at bruge denne tilslutning, hvis du ellers er agnostiker. Alt du behøver er fire ledninger!
Der kræves kun fire tilslutninger Vcc, Gnd, SCL og SDA ben, og disse er forbundet ved hjælp af I2C kabel.
Disse forbindelser er vist på billederne ovenfor.
Trin 3: Arduino -kode til måling af magnetisk feltintensitet:
Lad os starte med Arduino -koden nu.
Mens vi bruger sensormodulet med Arduino, inkluderer vi Wire.h -biblioteket. "Wire" -biblioteket indeholder de funktioner, der letter i2c -kommunikationen mellem sensoren og Arduino -kortet.
Hele Arduino -koden er angivet nedenfor for brugerens bekvemmelighed:
#omfatte
// HMC5883 I2C -adresse er 0x1E (30)
#define Addr 0x1E
ugyldig opsætning ()
{
// Initialiser I2C -kommunikation som MASTER
Wire.begin ();
// Initialiser seriel kommunikation, indstil baudhastighed = 9600
Serial.begin (9600);
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg konfigurer register A
Wire.write (0x00);
// Indstil normal målekonfiguration, dataudgangshastighed = 0,75Hz
Wire.write (0x60);
// Stop I2C -transmission
Wire.endTransmission ();
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg Tilstandsregister
Wire.write (0x02);
// Indstil kontinuerlig måling
Wire.write (0x00);
// Stop I2C -transmission
Wire.endTransmission ();
forsinkelse (300);
}
hulrum ()
{
usignerede int -data [6];
// Start I2C -transmission
Wire.beginTransmission (Addr);
// Vælg dataregister
Wire.write (0x03);
// Stop I2C -transmission
Wire.endTransmission ();
// Anmod om 6 bytes data
Wire.requestFrom (Addr, 6);
// Læs 6 bytes data
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
hvis (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 ();
}
forsinkelse (300);
// Konverter dataene
int xMag = ((data [0] * 256) + data [1]);
int zMag = ((data [2] * 256) + data [3]);
int yMag = ((data [4] * 256) + data [5]);
// Output data til seriel skærm
Serial.print ("Magnetisk felt i X-akse:");
Serial.println (xMag);
Serial.print ("Magnetisk felt i Y-akse:");
Serial.println (yMag);
Serial.print ("Magnetisk felt i Z-akse:");
Serial.println (zMag);
forsinkelse (300);
}
I trådbiblioteket bruges Wire.write () og Wire.read () til at skrive kommandoer og læse sensoroutput. Følgende del af koden illustrerer aflæsning af sensoroutput.
// Læs 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 () og Serial.println () bruges til at vise sensorens output på den serielle monitor på Arduino IDE.
Sensorens output er vist på billedet ovenfor.
Trin 4: Ansøgninger:
HMC5883 er et overflademonteret, multi-chip modul designet til lavfeltmagnetisk sansning med en digital grænseflade til applikationer såsom lavpriskompassering og magnetometri. Dens en til to graders høje nøjagtighed og præcision muliggør fodgængernavigation og LBS -applikationer.
Anbefalede:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
Magnetisk feltmåling ved hjælp af HMC5883 og Raspberry Pi: 4 trin
Magnetisk feltmåling ved hjælp af HMC5883 og Raspberry Pi: HMC5883 er et digitalt kompas designet til lavfeltmagnetisk sansning. Denne enhed har et bredt magnetfeltområde på +/- 8 Oe og en udgangshastighed på 160 Hz. HMC5883 -sensoren inkluderer automatiske degaussing -remdrivere, offset -annullering og en
Magnetisk feltmåling ved hjælp af HMC5883 og Particle Photon: 4 trin
Magnetisk feltmåling ved hjælp af HMC5883 og Particle Photon: HMC5883 er et digitalt kompas designet til lavfeltmagnetisk sansning. Denne enhed har et bredt magnetfeltområde på +/- 8 Oe og en udgangshastighed på 160 Hz. HMC5883 -sensoren inkluderer automatiske degaussing -remdrivere, offset -annullering og en
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: 4 trin
Kontrol ledt over hele verden ved hjælp af internet ved hjælp af Arduino: Hej, jeg er Rithik. Vi kommer til at lave en internetstyret LED ved hjælp af din telefon. Vi kommer til at bruge software som Arduino IDE og Blynk.Det er enkelt, og hvis det lykkedes dig, kan du styre så mange elektroniske komponenter, du ønskerTing We Need: Hardware:
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter - Rc Helikopter - Rc -fly ved hjælp af Arduino: 5 trin (med billeder)
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter | Rc Helikopter | Rc -fly ved hjælp af Arduino: At betjene en Rc -bil | Quadcopter | Drone | RC -fly | RC -båd, vi har altid brug for en modtager og sender, antag at vi til RC QUADCOPTER har brug for en 6 -kanals sender og modtager, og den type TX og RX er for dyr, så vi laver en på vores