Prog Shield Kompas HMC5883
Denne side beskriver et digitalt kompas HMC5883L[1], det kan måle magnetfeltet i 3 akser x, y og z.
Software
Denne testsoftware baseres på et bibliotek fra GitHub[2] Biblioteket kan hentes i denne ZIP-fil. Biblioteket downloades og installeres som beskrevet under Arduinos biblioteker.
Testsoftwaren er skrevet ud fra et af eksemplerne i biblioteket, og den kan hentes fra denne ZIP-fil.
Anvendelsen af softwaren
Som alle andre biblioteker skal der sættes de grundlæggende ting op for at kontakte biblioteket og definere et objekt med kompasset som vist her:
#include <Wire.h>
#include <HMC5883L.h>
HMC5883L compass;
Inde i setup() skal der sættes gang i objektet ved hjælp af begin-metoden som vist her:
void setup() {
Serial.begin(9600);
// Initialize Initialize HMC5883L
while (!compass.begin())
{
delay(500);
}
// Set measurement range
compass.setRange(HMC5883L_RANGE_1_3GA);
// Set measurement mode
compass.setMeasurementMode(HMC5883L_CONTINOUS);
// Set data rate
compass.setDataRate(HMC5883L_DATARATE_30HZ);
// Set number of samples averaged
compass.setSamples(HMC5883L_SAMPLES_8);
}
I loop() læses de rå data fra kompasset, og de udskrives til den serielle monitor.
void loop() {
Vector mag = compass.readRaw();
Serial.print(mag.XAxis);
Serial.print(" : ");
Serial.print(mag.YAxis);
Serial.print(" : ");
Serial.println(mag.ZAxis);
}
Yderligere muligheder i softwaren
Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende kompasset på:
bool begin(void);
Vector readRaw(void);
Vector readNormalize(void);
void setOffset(int xo, int yo);
void setRange(hmc5883l_range_t range);
hmc5883l_range_t getRange(void);
void setMeasurementMode(hmc5883l_mode_t mode);
hmc5883l_mode_t getMeasurementMode(void);
void setDataRate(hmc5883l_dataRate_t dataRate);
hmc5883l_dataRate_t getDataRate(void);
void setSamples(hmc5883l_samples_t samples);
hmc5883l_samples_t getSamples(void);
Hardware
Princippet i kompasset er at det arbejder på I2C, hvor det har adressen 0x1E. Via I2C kan det forskellige aflæses i kompasset.
Layout
Kompassets placering på programmerings-shieldet kan ses her:
OBS - OBS - Modulet skal vende omvendt af det der er angivet på layoutet på printet, da stikket er loddet omvendt på. Den rigtige måde er angivet på tegningen herunder.
Placeringen af kompasset på Shieldet - som vi har loddet stikket på !!
Referencer
- ↑ Datablad til Magnetisk kompas HMC5883L
- ↑ Bibliotek til HMC5883L skrevet af Korneliusz Jarzebski