Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
HMC5883 je digitalni kompas dizajniran za magnetsko otkrivanje niskog polja. Ovaj uređaj ima širok raspon magnetskih polja od +/- 8 Oe i izlaznu brzinu od 160 Hz. Senzor HMC5883 uključuje automatske pokretače traka za odmagljivanje, poništavanje pomaka i 12-bitni ADC koji omogućuje preciznost smjera kompasa od 1 ° do 2 °. Svi I²C mini moduli dizajnirani su za rad na 5VDC.
U ovom vodiču ćemo objasniti detaljan rad HMC5883 s Arduino nano.
Korak 1: Potreban hardver:
Materijali koji su nam potrebni za postizanje našeg cilja uključuju sljedeće hardverske komponente:
1. HMC5883
2. Arduino Nano
3. I2C kabel
4. I2C štit za Arduino Nano
Korak 2: Povezivanje hardvera:
Odeljak za povezivanje hardvera u osnovi objašnjava potrebne ožičenje između senzora i arduino nano. Osiguravanje ispravnih veza osnovna je potreba pri radu na bilo kojem sistemu za željeni izlaz. Dakle, potrebne veze su sljedeće:
HMC5883 će raditi preko I2C. Evo primjera dijagrama ožičenja koji pokazuje kako spojiti svako sučelje senzora.
Out-of-box, ploča je konfigurirana za I2C sučelje, pa kao takvu preporučujemo korištenje ove veze ako ste inače agnostični. Sve što trebate su četiri žice!
Potrebna su samo četiri priključka Vcc, Gnd, SCL i SDA pinovi koji se povezuju pomoću I2C kabela.
Ove veze su prikazane na gornjim slikama.
Korak 3: Arduino kôd za mjerenje intenziteta magnetskog polja:
Počnimo sada s Arduino kodom.
Dok koristimo senzorski modul s Arduinom, uključujemo Wire.h biblioteku. "Wire" biblioteka sadrži funkcije koje olakšavaju i2c komunikaciju između senzora i Arduino ploče.
Cijeli Arduino kôd dat je u nastavku radi praktičnosti korisnika:
#include
// HMC5883 I2C adresa je 0x1E (30)
#define Addr 0x1E
void setup ()
{
// Inicializirajte I2C komunikaciju kao MASTER
Wire.begin ();
// Pokrećemo serijsku komunikaciju, postavljena brzina prijenosa = 9600
Serial.begin (9600);
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odaberite konfiguracijski registar A
Wire.write (0x00);
// Postavljanje normalne konfiguracije mjerenja, izlazna brzina podataka = 0,75Hz
Wire.write (0x60);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir registra režima
Wire.write (0x02);
// Postavljanje kontinuiranog mjerenja
Wire.write (0x00);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
kašnjenje (300);
}
void loop ()
{
nepotpisani int podaci [6];
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir registra podataka
Wire.write (0x03);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
// Zatražite 6 bajta podataka
Wire.requestFrom (Addr, 6);
// Očitavanje 6 bajtova podataka
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
if (Wire.available () == 6)
{
podaci [0] = Wire.read ();
podaci [1] = Wire.read ();
podaci [2] = Wire.read ();
podaci [3] = Wire.read ();
podaci [4] = Wire.read ();
podaci [5] = Wire.read ();
}
kašnjenje (300);
// Pretvorimo podatke
int xMag = ((podaci [0] * 256) + podaci [1]);
int zMag = ((podaci [2] * 256) + podaci [3]);
int yMag = ((podaci [4] * 256) + podaci [5]);
// Izlaz podataka na serijski monitor
Serial.print ("Magnetsko polje u osi X:");
Serial.println (xMag);
Serial.print ("Magnetsko polje u osi Y:");
Serial.println (yMag);
Serial.print ("Magnetsko polje u osi Z:");
Serial.println (zMag);
kašnjenje (300);
}
U biblioteci žica Wire.write () i Wire.read () se koriste za pisanje naredbi i čitanje izlaza senzora. Slijedeći dio koda ilustrira očitavanje izlaza senzora.
// Očitavanje 6 bajtova podataka // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb ako (Wire.available () == 6) {data [0] = Wire.read (); podaci [1] = Wire.read (); podaci [2] = Wire.read (); podaci [3] = Wire.read (); podaci [4] = Wire.read (); podaci [5] = Wire.read (); }
Serial.print () i Serial.println () koriste se za prikaz izlaza senzora na serijskom monitoru Arduino IDE -a.
Izlaz senzora prikazan je na gornjoj slici.
Korak 4: Aplikacije:
HMC5883 je površinski montirani, multi-čip modul dizajniran za magnetsko mjerenje niskog polja s digitalnim sučeljem za primjene kao što su kompasiranje po niskim cijenama i magnetometrija. Njegova tačnost i preciznost od jednog do dva stepena omogućavaju pješačku navigaciju i LBS aplikacije.
Preporučuje se:
Mjerenje magnetskog polja pomoću HMC5883 i Raspberry Pi: 4 koraka
Mjerenje magnetskog polja pomoću HMC5883 i Raspberry Pi: HMC5883 je digitalni kompas dizajniran za magnetsko otkrivanje niskog polja. Ovaj uređaj ima širok raspon magnetskih polja od +/- 8 Oe i izlaznu brzinu od 160 Hz. Senzor HMC5883 uključuje upravljačke programe traka za automatsko odmagljivanje, poništavanje pomaka i
Mjerenje magnetskog polja pomoću HMC5883 i fotona čestica: 4 koraka
Mjerenje magnetskog polja pomoću HMC5883 i fotona čestica: HMC5883 je digitalni kompas dizajniran za magnetsko osjetljivost niskog polja. Ovaj uređaj ima širok raspon magnetskih polja od +/- 8 Oe i izlaznu brzinu od 160 Hz. Senzor HMC5883 uključuje upravljačke programe traka za automatsko odmagljivanje, poništavanje pomaka i
Vodič: Kako napraviti alarm na vratima pomoću alarma senzora magnetskog prekidača MC-18: 3 koraka
Vodič: Kako napraviti alarm na vratima pomoću alarma magnetskog prekidača MC-18: Zdravo momci, napravit ću vodič o alarmu senzora magnetskog prekidača MC-18 koji radi u normalno zatvorenom načinu rada. Ali najprije ću vam objasniti ukratko šta se podrazumeva pod normalno blizu. Postoje dvije vrste načina rada, normalno otvorene i normalno zatvorene
Alarm za vrata pomoću magnetskog Hall senzora: 5 koraka
Alarm za vrata pomoću magnetskog hodnog senzora: Alarm za vrata je vrlo uobičajen i koristan uređaj iz sigurnosnih razloga. Koriste se za otkrivanje jesu li vrata otvorena ili zatvorena. Često smo u hladnjaku vidjeli alarm za vrata koji je proizvodio drugačiji zvuk kada se aktiviraju. Alarm za vrata Pro
Troosni osjetnik magnetskog polja: 10 koraka (sa slikama)
Troosni osjetnik magnetskog polja: Bežični sistemi prijenosa energije na dobrom su putu da zamijene konvencionalno ožičeno punjenje. Od malih biomedicinskih implantata pa sve do bežičnog punjenja ogromnih električnih vozila. Sastavni dio istraživanja bežičnog napajanja je