HMC5883L મેગ્નેટોમીટર એ ત્રણ અક્ષોમાં ચુંબકીય ક્ષેત્રોને માપવાની ક્ષમતા માટે Arduino પ્રોજેક્ટ્સમાં વ્યાપકપણે ઉપયોગમાં લેવાતું સેન્સર છે. આ તેને ડિજિટલ હોકાયંત્રો, ડ્રોન માટે નેવિગેશન સિસ્ટમ્સ અને અન્ય સ્વાયત્ત વાહનો બનાવવા માટે ઉત્તમ પસંદગી બનાવે છે. સસ્તું હોવા ઉપરાંત, તેનું એકીકરણ તેના I2C ઇન્ટરફેસને કારણે સરળ છે, જે તેને નવા નિશાળીયા માટે આદર્શ બનાવે છે.
આ લેખમાં આપણે HMC5883L ની મુખ્ય વિશેષતાઓ, વિવિધ Arduino બોર્ડ્સ સાથેના તેના જોડાણ અને તેના ઉપયોગ માટેના વ્યવહારુ ઉદાહરણોનો અભ્યાસ કરવા જઈ રહ્યા છીએ. અંતે, તમે આ શક્તિશાળી સેન્સરની સંપૂર્ણ ક્ષમતાનો લાભ લઈને, Arduino સાથે તમારા પોતાના ડિજિટલ હોકાયંત્ર પ્રોજેક્ટને અમલમાં મૂકવા માટે સમર્થ હશો.
HMC5883L શું છે અને તે કેવી રીતે કામ કરે છે?
HMC5883L એ છે ત્રણ ધરી મેગ્નેટોમીટર જે X, Y અને Z અક્ષોમાં પૃથ્વીના ચુંબકીય ક્ષેત્રના ઘટકોને માપે છે આ માત્ર ચુંબકીય ક્ષેત્રોની હાજરીને શોધવાની મંજૂરી આપે છે, પરંતુ પ્રાપ્ત માપના આધારે ગણતરીઓ દ્વારા દિશા નિર્ધારિત કરવાની પણ મંજૂરી આપે છે. આ સુવિધાઓ તેને ડિજિટલ હોકાયંત્ર જેવી ઓરિએન્ટેશન સિસ્ટમ બનાવવા માટે આદર્શ સેન્સર બનાવે છે.
સેન્સર સામાન્ય રીતે GY-273 મોડલ જેવા મોડ્યુલમાં જોવા મળે છે, જેમાં Arduino બોર્ડ અથવા અન્ય માઇક્રોકન્ટ્રોલર સાથે તેના સીધા જોડાણની સુવિધા માટે જરૂરી ઇલેક્ટ્રોનિક્સનો પણ સમાવેશ થાય છે. તેનો પાવર સપ્લાય લવચીક છે, અને તેને 3.3V અને 5V બંને સાથે સંચાલિત કરી શકાય છે, જે તેને વિવિધ સિસ્ટમો સાથે સુસંગતતાના સંદર્ભમાં ખૂબ જ સર્વતોમુખી બનાવે છે.
Arduino જોડાણો
HMC5883L ને Arduino સાથે કનેક્ટ કરવું ખરેખર સરળ છે આભાર તે I2C ઈન્ટરફેસ વાપરે છે. આ સંદેશાવ્યવહાર માટે ફક્ત બે પિનની જરૂર છે: SDA અને SCL, જે Arduino બોર્ડ પર સંબંધિત પિન સાથે જોડાયેલ હોવું આવશ્યક છે.
- પેરા Arduino Uno, નેનો અને મીની: SDA પિન A4 અને SCL થી A5 સાથે જોડાય છે.
- જો તમે Arduino મેગા અથવા ડ્યૂનો ઉપયોગ કરો છો: SDA ને પિન 20 અને SCL ને પિન 21 સાથે કનેક્ટ કરવું આવશ્યક છે.
- Arduino લિયોનાર્ડોના કિસ્સામાં: SDA પિન 2 પર અને SCL પિન 3 પર જાય છે.
ચાલો ભૂલશો નહીં કે મેગ્નેટોમીટર 2x0E ના નિશ્ચિત I1C સરનામા સાથે કામ કરે છે, તેથી તેને બદલવું શક્ય નથી. આ સરનામું આ પ્રકારના સેન્સર માટે અનન્ય છે, જેનો અર્થ છે કે અમે એક જ I5883C બસ પર બહુવિધ HMC2L ઉપકરણોને કનેક્ટ કરી શકતા નથી.
ચુંબકીય ક્ષેત્ર વાંચન
HMC5883L ના સંચાલનની મુખ્ય પદ્ધતિ એ ત્રણેય અક્ષોમાં ચુંબકીય ક્ષેત્રના મૂલ્યો વાંચવાની છે. Arduino પર આ મૂલ્યો મેળવવા માટે, અમે જેફ રોબર્ગ દ્વારા વિકસિત પુસ્તકાલયનો ઉપયોગ કરીએ છીએ. તમે આ બુક સ્ટોર પર શોધી શકો છો તમારા GitHub ભંડાર અને તેને Arduino IDE માં ઉપયોગ માટે ડાઉનલોડ કરો.
એકવાર લાઇબ્રેરી ઇન્સ્ટોલ થઈ જાય, પછી સેન્સરને પ્રારંભ કરી શકાય છે અને ચુંબકીય ક્ષેત્રના મૂલ્યો વાંચવાનું શરૂ કરી શકાય છે. આ કરવા માટે અહીં એક સરળ ઉદાહરણ છે:
#include "Wire.h"
#include "I2Cdev.h"
#include "HMC5883L.h"
HMC5883L magnetometro;
int16_t mx, my, mz;
void setup() {
Serial.begin(9600);
Wire.begin();
magnetometro.initialize();
}
void loop(){
magnetometro.getHeading(&mx, &my, &mz);
Serial.print("mx: "); Serial.print(mx);
Serial.print(" my: "); Serial.print(my);
Serial.print(" mz: "); Serial.println(mz);
delay(100);
}
આ કોડમાં, મેગ્નેટોમીટરને પ્રારંભ કરવામાં આવે છે અને ત્રણેય અક્ષો પરના મૂલ્યોને લૂપમાં વાંચવામાં આવે છે. દર વખતે જ્યારે આપણે `લૂપ()` એક્ઝિક્યુટ કરીએ છીએ, ત્યારે X, Y અને Zમાં ચુંબકીય ક્ષેત્રની કિંમતો સીરીયલ મોનિટર પર પ્રદર્શિત થશે.
શ્રેણી અને ગેઇન સેટિંગ્સ
HMC5883L તમને સમાયોજિત કરવાની મંજૂરી આપે છે ચુંબકીય ક્ષેત્ર માપન શ્રેણી વિવિધ લાભ સ્તરો સાથે ±0.88 ગૌસ અને ±8.1 ગૌસ વચ્ચે. ડિફોલ્ટ રેન્જ ±1.3 ગૌસ છે, અને તમે તમારી પ્રોજેક્ટ જરૂરિયાતોને અનુરૂપ તેને સંશોધિત કરી શકો છો. આ કોડની અંદર નીચેની લીટીનો ઉપયોગ કરીને કરી શકાય છે:
magnetometro.setGain(value);
જ્યાં કિંમત 0 અને 7 ની વચ્ચેનો પૂર્ણાંક છે, જે ગેઇન લેવલ પસંદ કરશે. નીચે અમે તમને અનુરૂપ મૂલ્યો સાથેનું ટેબલ બતાવીએ છીએ:
બહાદુરી | રેંગો | ગેઇન (LSB/ગૌસ) |
---|---|---|
0 | ±0.88Ga | 1370 |
1 | ±1.3Ga | 1090 |
2 | ±1.9Ga | 820 |
3 | ±2.5Ga | 660 |
4 | ±4.0Ga | 440 |
5 | ±4.7Ga | 390 |
6 | ±5.6Ga | 330 |
7 | ±8.1Ga | 230 |
ડિજિટલ હોકાયંત્રનું નિર્માણ
HMC5883L ના સૌથી સામાન્ય ઉપયોગોમાંનો એક બિલ્ડીંગ એ છે ડિજિટલ હોકાયંત્ર. આ કરવા માટે, આપણે X અને Y અક્ષોના રીડિંગ્સનો ઉપયોગ કરીને સેન્સર અને ચુંબકીય ઉત્તર વચ્ચેના ખૂણાની ગણતરી કરવાની જરૂર છે આ સૂત્રનો ઉપયોગ કરીને પ્રાપ્ત થાય છે:
float angulo = atan2(my, mx) * 180 / M_PI;
આ મૂલ્ય તમને ચુંબકીય ઉત્તરના સંદર્ભમાં ઓરિએન્ટેશન એન્ગલ આપશે. આ ખૂણાને સમાયોજિત કરવા માટે ભૌગોલિક ઉત્તર, તમારે તમારા સ્થાનના ચુંબકીય ઘટાડાને ધ્યાનમાં લેવું આવશ્યક છે, જે તમે www.ign.es અથવા www.ngdc.noaa.gov જેવી વિવિધ વેબસાઇટ્સ પર સંપર્ક કરી શકો છો.
યોગ્ય ચુંબકીય ઘટાડો
એકવાર તમારી પાસે તમારી સ્થિતિનો ચુંબકીય ઘટાડો થઈ જાય, તમારે ફક્ત તેને મેળવેલા ખૂણામાંથી બાદબાકી કરવી પડશે. ઉદાહરણ તરીકે:
angulo -= declinacion;
જ્યારે કોણ નકારાત્મક હોય, ત્યારે તમે હંમેશા 360 અને 0 ડિગ્રી વચ્ચે ગોઠવેલ હકારાત્મક મૂલ્ય મેળવવા માટે 360 ડિગ્રી ઉમેરી શકો છો:
if (angulo < 0) angulo += 360;
આ સેટિંગ તમને એક હોકાયંત્ર આપશે જે હંમેશા ભૌગોલિક ઉત્તર તરફ ચોક્કસ નિર્દેશ કરશે.
વ્યવહારમાં, આ સેન્સર અને કેટલીક લાઇબ્રેરીઓ સાથે તમે થોડીવારમાં હોકાયંત્ર મેળવી શકો છો. જો કે, મહેરબાની કરીને નોંધ કરો કે HMC5883L એ બાહ્ય હસ્તક્ષેપ માટે સંવેદનશીલ સેન્સર છે, જેમ કે નજીકની ધાતુઓ અથવા ઉચ્ચ પ્રવાહો દ્વારા ઉત્પન્ન થયેલ ક્ષેત્રો, જે રીડિંગ્સને બદલી શકે છે.