Kazalo:
- 1. korak: Potrebna strojna oprema:
- 2. korak: Priključitev strojne opreme:
- 3. korak: Arduino koda za merjenje intenzivnosti magnetnega polja:
- 4. korak: Aplikacije:
Video: Merjenje magnetnega polja z uporabo HMC5883 in Arduino Nano: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
HMC5883 je digitalni kompas, zasnovan za magnetno zaznavanje nizkih polj. Ta naprava ima široko območje magnetnega polja +/- 8 Oe in izhodno hitrost 160 Hz. Senzor HMC5883 vključuje gonilnike trakov za samodejno razmagliciranje, preklic zamika in 12-bitni ADC, ki omogoča natančnost smeri kompasa od 1 ° do 2 °. Vsi mini moduli I²C so zasnovani za delovanje pri 5VDC.
V tej vadnici bomo razložili podrobno delovanje HMC5883 z Arduino nano.
1. korak: Potrebna strojna oprema:
Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:
1. HMC5883
2. Arduino Nano
3. Kabel I2C
4. I2C ščit za Arduino Nano
2. korak: Priključitev strojne opreme:
Oddelek za priključitev strojne opreme v bistvu pojasnjuje potrebne ožičenje med senzorjem in arduino nano. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:
HMC5883 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.
Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični. Vse kar potrebujete so štiri žice!
Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.
Te povezave so prikazane na zgornjih slikah.
3. korak: Arduino koda za merjenje intenzivnosti magnetnega polja:
Začnimo zdaj s kodo Arduino.
Med uporabo senzorskega modula z Arduinom vključujemo knjižnico Wire.h. Knjižnica "Wire" vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in ploščo Arduino.
Celotna koda Arduino je podana spodaj za udobje uporabnika:
#vključi
// Naslov I2C HMC5883 je 0x1E (30)
#define Addr 0x1E
void setup ()
{
// Inicializirajte komunikacijo I2C kot MASTER
Wire.begin ();
// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600
Serial.begin (9600);
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite konfiguracijski register A
Wire.write (0x00);
// Nastavite običajno konfiguracijo merjenja, izhodna hitrost podatkov = 0,75Hz
Wire.write (0x60);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register načina
Wire.write (0x02);
// Nastavi neprekinjeno merjenje
Wire.write (0x00);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (300);
}
void loop ()
{
podpisani int podatki [6];
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register podatkov
Wire.write (0x03);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 6 bajtov podatkov
Wire.requestFrom (Addr, 6);
// Preberite 6 bajtov podatkov
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
če (Wire.available () == 6)
{
podatki [0] = Wire.read ();
podatki [1] = Wire.read ();
podatki [2] = Wire.read ();
podatki [3] = Wire.read ();
podatki [4] = Wire.read ();
podatki [5] = Wire.read ();
}
zamuda (300);
// Pretvorimo podatke
int xMag = ((podatki [0] * 256) + podatki [1]);
int zMag = ((podatki [2] * 256) + podatki [3]);
int yMag = ((podatki [4] * 256) + podatki [5]);
// Izhodni podatki na serijski monitor
Serial.print ("Magnetno polje v osi X:");
Serial.println (xMag);
Serial.print ("Magnetno polje v osi Y:");
Serial.println (yMag);
Serial.print ("Magnetno polje v osi Z:");
Serial.println (zMag);
zamuda (300);
}
V knjižnici žic Wire.write () in Wire.read () se uporabljata za pisanje ukazov in branje izhoda senzorja. Naslednji del kode prikazuje branje izhoda senzorja.
// Preberite 6 bajtov podatkov // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); podatki [1] = Wire.read (); podatki [2] = Wire.read (); podatki [3] = Wire.read (); podatki [4] = Wire.read (); podatki [5] = Wire.read (); }
Serial.print () in Serial.println () se uporabljata za prikaz izhoda senzorja na serijskem monitorju Arduino IDE.
Izhod senzorja je prikazan na zgornji sliki.
4. korak: Aplikacije:
HMC5883 je površinsko nameščen modul z več čipi, zasnovan za magnetno zaznavanje nizkih polj z digitalnim vmesnikom za aplikacije, kot sta poceni kompas in magnetometrija. Njegova natančnost in natančnost od ene do dveh stopinj omogočata navigacijo za pešce in aplikacije LBS.
Priporočena:
Merjenje magnetnega polja z uporabo HMC5883 in Raspberry Pi: 4 koraki
Merjenje magnetnega polja z uporabo HMC5883 in Raspberry Pi: HMC5883 je digitalni kompas, zasnovan za zaznavanje magnetnega polja z nizkim poljem. Ta naprava ima široko območje magnetnega polja +/- 8 Oe in izhodno hitrost 160 Hz. Senzor HMC5883 vključuje gonilnike trakov za samodejno razmagliciranje, preklic zamika in
Merjenje magnetnega polja z uporabo HMC5883 in fotona delcev: 4 koraki
Merjenje magnetnega polja z uporabo HMC5883 in fotona delcev: HMC5883 je digitalni kompas, zasnovan za zaznavanje magnetnega polja z nizkim poljem. Ta naprava ima široko območje magnetnega polja +/- 8 Oe in izhodno hitrost 160 Hz. Senzor HMC5883 vključuje gonilnike trakov za samodejno razmagliciranje, preklic zamika in
Merjenje tlaka z uporabo CPS120 in Arduino Nano: 4 koraki
Merjenje tlaka z uporabo CPS120 in Arduino Nano: CPS120 je visokokakovosten in poceni kapacitivni senzor absolutnega tlaka s popolnoma kompenzirano močjo. Porabi zelo malo energije in je sestavljen iz ultra majhnega mikro-elektro-mehanskega senzorja (MEMS) za merjenje tlaka. Sigma-delta temelji
Merjenje pospeška z uporabo H3LIS331DL in Arduino Nano: 4 koraki
Merjenje pospeška z uporabo H3LIS331DL in Arduino Nano: H3LIS331DL, je nizko zmogljiv 3-osni linearni merilnik pospeška iz družine "nano" z digitalnim serijskim vmesnikom I²C. H3LIS331DL ima polne lestvice, ki jih lahko izbere uporabnik ± 100g/± 200g/± 400g, in lahko meri pospeške w
3-osni senzor magnetnega polja: 10 korakov (s slikami)
3-osni senzor magnetnega polja: Brezžični sistemi za prenos energije so na dobri poti, da nadomestijo običajno žično polnjenje. Od drobnih biomedicinskih vsadkov pa vse do brezžičnega polnjenja ogromnih električnih vozil. Sestavni del raziskav o brezžičnem napajanju je