Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
HMC5883 on digitaalne kompass, mis on loodud madala välja magnetvälja tuvastamiseks. Sellel seadmel on lai magnetvälja vahemik +/- 8 Oe ja väljundkiirus 160 Hz. HMC5883 andur sisaldab automaatseid degaussing rihma draivereid, nihke tühistamist ja 12-bitist ADC-d, mis võimaldab kompassi suuna täpsust 1 ° kuni 2 °. Kõik I²C minimoodulid on loodud töötama 5 V alalisvoolul.
Selles õpetuses selgitame HMC5883 üksikasjalikku tööd Arduino nanoga.
Samm: vajalik riistvara:
Eesmärgi saavutamiseks vajalikud materjalid sisaldavad järgmisi riistvarakomponente:
1. HMC5883
2. Arduino Nano
3. I2C kaabel
4. I2C kilp Arduino Nano jaoks
2. samm: riistvara ühendamine:
Riistvara ühendamise jaotis selgitab põhimõtteliselt anduri ja arduino nano vahel vajalikke juhtmestiku ühendusi. Soovitud väljundi mis tahes süsteemiga töötamisel on põhivajadus õigete ühenduste tagamine. Seega on vajalikud ühendused järgmised:
HMC5883 töötab üle I2C. Siin on näide ühendusskeemist, mis näitab, kuidas anduri iga liidest ühendada.
Valmis plaat on konfigureeritud I2C liidese jaoks, seega soovitame seda ühendamist kasutada, kui olete muidu agnostik. Kõik, mida vajate, on neli juhtmest!
Vaja on ainult nelja ühendust Vcc, Gnd, SCL ja SDA ning need ühendatakse I2C kaabli abil.
Neid seoseid on näidatud ülaltoodud piltidel.
Samm: Arduino kood magnetvälja intensiivsuse mõõtmiseks:
Alustame nüüd Arduino koodiga.
Arduinoga andurimoodulit kasutades kaasame Wire.h raamatukogu. Juhtmeraamatukogu sisaldab funktsioone, mis hõlbustavad i2c suhtlust anduri ja Arduino plaadi vahel.
Kogu Arduino kood on kasutaja mugavuse huvides toodud allpool:
#kaasake
// HMC5883 I2C aadress on 0x1E (30)
#define Addr 0x1E
tühine seadistus ()
{
// Initsialiseeri I2C side kui MASTER
Wire.begin ();
// Initsialiseeri jadaühendus, määrake edastuskiirus = 9600
Seriaalne algus (9600);
// Käivitage I2C edastamine
Wire.beginTransmission (Addr);
// Vali seadista register A
Wire.write (0x00);
// Määra normaalne mõõtmiskonfiguratsioon, andmete väljundkiirus = 0,75 Hz
Wire.write (0x60);
// Peata I2C edastamine
Wire.endTransmission ();
// Käivitage I2C edastamine
Wire.beginTransmission (Addr);
// Valige režiimiregister
Wire.write (0x02);
// Määra pidev mõõtmine
Wire.write (0x00);
// Peata I2C edastamine
Wire.endTransmission ();
viivitus (300);
}
tühine tsükkel ()
{
allkirjastamata int andmed [6];
// Käivitage I2C edastamine
Wire.beginTransmission (Addr);
// Valige andmeregister
Wire.write (0x03);
// Peata I2C edastamine
Wire.endTransmission ();
// Taotlege 6 baiti andmeid
Wire.requestFrom (Addr, 6);
// Lugege 6 baiti andmeid
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
kui (Wire.available () == 6)
{
andmed [0] = Wire.read ();
andmed [1] = Wire.read ();
andmed [2] = Wire.read ();
andmed [3] = Wire.read ();
andmed [4] = Wire.read ();
andmed [5] = Wire.read ();
}
viivitus (300);
// Teisendage andmed
int xMag = ((andmed [0] * 256) + andmed [1]);
int zMag = ((andmed [2] * 256) + andmed [3]);
int yMag = ((andmed [4] * 256) + andmed [5]);
// Andmete väljastamine jadamonitorile
Serial.print ("Magnetväli X-teljel:");
Serial.println (xMag);
Serial.print ("Magnetväli Y-teljel:");
Serial.println (yMag);
Serial.print ("Z-telje magnetväli:");
Serial.println (zMag);
viivitus (300);
}
Traaditeegis kasutatakse käskude kirjutamiseks ja anduri väljundi lugemiseks Wire.write () ja Wire.read (). Järgnev osa koodist illustreerib anduri väljundi lugemist.
// Loe 6 baiti andmeid // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); andmed [1] = Wire.read (); andmed [2] = Wire.read (); andmed [3] = Wire.read (); andmed [4] = Wire.read (); andmed [5] = Wire.read (); }
Serial.print () ja Serial.println () kasutatakse anduri väljundi kuvamiseks Arduino IDE jadamonitoril.
Anduri väljund on näidatud ülaltoodud pildil.
4. samm: rakendused:
HMC5883 on pinnale paigaldatav mitme kiibiga moodul, mis on loodud madala välja magnetvälja tuvastamiseks koos digitaalse liidesega selliste rakenduste jaoks nagu odavad kompassid ja magnetomeetria. Selle ühe kuni kahe kraadi kõrge täpsus ja täpsus võimaldab jalakäijate navigeerimist ja LBS -i rakendusi.
Soovitan:
Magnetvälja mõõtmine HMC5883 ja Raspberry Pi abil: 4 sammu
Magnetvälja mõõtmine HMC5883 ja Raspberry Pi abil: HMC5883 on digitaalne kompass, mis on loodud madala välja magnetvälja tuvastamiseks. Sellel seadmel on lai magnetvälja vahemik +/- 8 Oe ja väljundkiirus 160 Hz. HMC5883 andur sisaldab automaatseid degaussing rihma draivereid, nihke tühistamist ja
Magnetvälja mõõtmine HMC5883 ja osakeste footoni abil: 4 sammu
Magnetvälja mõõtmine, kasutades HMC5883 ja osakeste fotone: HMC5883 on digitaalne kompass, mis on loodud madala välja magnetvälja tuvastamiseks. Sellel seadmel on lai magnetvälja vahemik +/- 8 Oe ja väljundkiirus 160 Hz. HMC5883 andur sisaldab automaatseid degaussing rihma draivereid, nihke tühistamist ja
Rõhu mõõtmine CPS120 ja Arduino Nano abil: 4 sammu
Rõhu mõõtmine CPS120 ja Arduino Nano abil: CPS120 on kõrge kvaliteediga ja madala hinnaga mahtuvuslik absoluutrõhu andur, millel on täielikult kompenseeritud väljund. See tarbib väga vähem energiat ja sisaldab üliväikest mikroelektromehaanilist andurit (MEMS) rõhu mõõtmiseks. Sigma-delta baasil
Temperatuuri mõõtmine STS21 ja Arduino Nano abil: 4 sammu
Temperatuuri mõõtmine STS21 ja Arduino Nano abil: STS21 digitaalne temperatuuriandur pakub suurepärast jõudlust ja ruumi säästvat jalajälge. See pakub kalibreeritud, lineariseeritud signaale digitaalses I2C -vormingus. Selle anduri valmistamine põhineb CMOSens tehnoloogial, mis omistab suurepärase
Kiirenduse mõõtmine H3LIS331DL ja Arduino Nano abil: 4 sammu
Kiirenduse mõõtmine H3LIS331DL ja Arduino Nano abil: H3LIS331DL on väikese võimsusega suure jõudlusega 3-teljeline lineaarne kiirendusmõõtur, mis kuulub nano perekonda, digitaalse I²C jadaliidesega. H3LIS331DL -l on kasutaja poolt valitavad täisskaalad ± 100 g/± 200 g/± 400 g ja see on võimeline mõõtma kiirendusi