Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
HMC5883 është një busull dixhitale e krijuar për sensimin magnetik të fushës së ulët. Kjo pajisje ka një gamë të gjerë të fushës magnetike +/- 8 Oe dhe një normë dalëse prej 160 Hz. Sensori HMC5883 përfshin drejtues automatik të rripit të degausimit, anulim të kompensuar dhe një ADC 12-bit që mundëson saktësinë e drejtimit të busullës 1 ° deri në 2 °. Të gjithë Mini Modulet I²C janë krijuar për të funksionuar në 5VDC.
Në këtë tutorial, ne do të shpjegojmë punën e detajuar të HMC5883 me Arduino nano.
Hapi 1: Kërkohet harduer:
Materialet që na duhen për të arritur qëllimin tonë përfshijnë përbërësit e mëposhtëm të harduerit:
1. HMC5883
2. Arduino Nano
3. Kabllo I2C
4. Mburoja I2C Për Arduino Nano
Hapi 2: Bashkimi i harduerit:
Seksioni i lidhjes së harduerit në thelb shpjegon lidhjet e telave të kërkuara midis sensorit dhe arduino nano. Sigurimi i lidhjeve të sakta është nevoja themelore gjatë punës në çdo sistem për daljen e dëshiruar. Pra, lidhjet e nevojshme janë si më poshtë:
HMC5883 do të funksionojë mbi I2C. Këtu është shembulli i diagramit të instalimeve elektrike, duke demonstruar se si të lidhni secilën ndërfaqe të sensorit.
Jashtë kutisë, bordi është i konfiguruar për një ndërfaqe I2C, si i tillë ne rekomandojmë përdorimin e këtij bashkimi nëse përndryshe jeni agnostik. Gjithçka që ju nevojitet janë katër tela!
Vetëm katër lidhje kërkohen kunjat Vcc, Gnd, SCL dhe SDA dhe këto janë të lidhura me ndihmën e kabllit I2C.
Këto lidhje demonstrohen në fotot e mësipërme.
Hapi 3: Kodi Arduino për të matur intensitetin e fushës magnetike:
Le të fillojmë me kodin Arduino tani.
Ndërsa përdorim modulin e sensorit me Arduino, ne përfshijmë bibliotekën Wire.h. Biblioteka "Wire" përmban funksione të cilat lehtësojnë komunikimin i2c midis sensorit dhe bordit Arduino.
I gjithë kodi Arduino është dhënë më poshtë për lehtësinë e përdoruesit:
#përfshi
// Adresa HMC5883 I2C është 0x1E (30)
#përcaktoni Addr 0x1E
void setup ()
{
// Filloni komunikimin I2C si MASTER
Wire.begin ();
// Filloni Komunikimin Serial, vendosur normën e baudit = 9600
Serial.filloj (9600);
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Zgjidh konfigurimin e regjistrit A
Wire.write (0x00);
// Vendosni konfigurimin normal të matjes, shkalla e daljes së të dhënave = 0.75Hz
Wire.write (0x60);
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Zgjidh Regjistrin e modalitetit
Wire.write (0x02);
// Vendosni matjen e vazhdueshme
Wire.write (0x00);
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
vonesë (300);
}
lak void ()
{
të dhëna int të panënshkruara [6];
// Filloni Transmetimin I2C
Wire.beginTransmetimi (Addr);
// Zgjidh regjistrin e të dhënave
Wire.write (0x03);
// Ndaloni Transmetimin I2C
Wire.endTransmission ();
// Kërkoni 6 bajt të dhëna
Tela. Kërkohet Nga (Addr, 6);
// Lexoni 6 bajt të dhëna
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
nëse (Wire. në dispozicion () == 6)
{
të dhëna [0] = Wire.read ();
të dhëna [1] = Wire.read ();
të dhëna [2] = Wire.read ();
të dhëna [3] = Wire.read ();
të dhëna [4] = Wire.read ();
të dhëna [5] = Wire.read ();
}
vonesë (300);
// Shndërroni të dhënat
int xMag = ((të dhënat [0] * 256) + të dhënat [1]);
int zMag = ((të dhënat [2] * 256) + të dhënat [3]);
int yMag = ((të dhënat [4] * 256) + të dhënat [5]);
// Dalja e të dhënave në monitorin serik
Serial.print ("Fusha magnetike në boshtin X:");
Serial.println (xMag);
Serial.print ("Fusha magnetike në Boshtin Y:");
Serial.println (yMag);
Serial.print ("Fusha magnetike në boshtin Z:");
Serial.println (zMag);
vonesë (300);
}
Në bibliotekën Wire.write () dhe Wire.read () përdoret për të shkruar komandat dhe lexuar daljen e sensorit. Pjesa e mëposhtme e kodit ilustron leximin e daljes së sensorit.
// Lexoni 6 bajt të dhënash // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); të dhëna [1] = Wire.read (); të dhëna [2] = Wire.read (); të dhëna [3] = Wire.read (); të dhëna [4] = Wire.read (); të dhëna [5] = Wire.read (); }
Serial.print () dhe Serial.println () përdoret për të shfaqur daljen e sensorit në monitorin serik të Arduino IDE.
Dalja e sensorit tregohet në figurën e mësipërme.
Hapi 4: Aplikimet:
HMC5883 është një modul i montuar në sipërfaqe, me shumë çipa i krijuar për sensimin magnetik të fushës së ulët me një ndërfaqe dixhitale për aplikime të tilla si busullimi me kosto të ulët dhe magnetometria. Saktësia dhe saktësia e tij një deri në dy shkallë mundëson navigimin e këmbësorëve dhe aplikimet LBS.
Recommended:
Matja e fushës magnetike duke përdorur HMC5883 dhe Raspberry Pi: 4 hapa
Matja e Fushës Magnetike duke Përdorur HMC5883 dhe Raspberry Pi: HMC5883 është një busull dixhitale e krijuar për sensimin magnetik të fushës së ulët. Kjo pajisje ka një gamë të gjerë të fushës magnetike +/- 8 Oe dhe një normë dalëse prej 160 Hz. Sensori HMC5883 përfshin drejtues automatik të rripit të çlirimit, anulim të kompensuar dhe një
Matja e Fushës Magnetike duke Përdorur HMC5883 dhe Foton Grimcash: 4 Hapa
Matja e Fushës Magnetike duke Përdorur HMC5883 dhe Foton Grimcash: HMC5883 është një busull dixhitale e krijuar për sensimin magnetik të fushës së ulët. Kjo pajisje ka një gamë të gjerë të fushës magnetike +/- 8 Oe dhe një normë dalëse prej 160 Hz. Sensori HMC5883 përfshin drejtues automatik të rripit të çlirimit, anulim të kompensuar dhe një
Matja e lagështisë dhe temperaturës duke përdorur HIH6130 dhe Arduino Nano: 4 hapa
Matja e lagështisë dhe temperaturës duke përdorur HIH6130 dhe Arduino Nano: HIH6130 është një sensor lagështie dhe temperature me dalje dixhitale. Këta sensorë ofrojnë një nivel saktësie ± 4% RH. Me stabilitet afatgjatë udhëheqës të industrisë, I2C të vërtetë dixhitale të kompensuar nga temperatura, besueshmëri udhëheqëse në industri, efikasitet energjetik
Matja e temperaturës dhe lagështisë duke përdorur HDC1000 dhe Arduino Nano: 4 hapa
Matja e Temperaturës dhe Lagështisë duke Përdorur HDC1000 dhe Arduino Nano: HDC1000 është një sensor dixhital i lagështisë me sensor të integruar të temperaturës që siguron saktësi të shkëlqyeshme të matjes me fuqi shumë të ulët. Pajisja mat lagështinë bazuar në një sensor të ri kapacitiv. Sensorët e lagështisë dhe temperaturës janë të dukshme
Matja e lagështisë dhe temperaturës duke përdorur HTS221 dhe Arduino Nano: 4 hapa
Matja e lagështisë dhe temperaturës duke përdorur HTS221 dhe Arduino Nano: HTS221 është një sensor dixhital ultra kompakt kapacitiv për lagështinë dhe temperaturën relative. Ai përfshin një element ndijues dhe një qark të integruar specifik të aplikimit të sinjalit të përzier (ASIC) për të siguruar informacionin e matjes përmes serialit dixhital