ዝርዝር ሁኔታ:

HMC5883 ን እና አርዱዲኖ ናኖን በመጠቀም መግነጢሳዊ መስክ ልኬት - 4 ደረጃዎች
HMC5883 ን እና አርዱዲኖ ናኖን በመጠቀም መግነጢሳዊ መስክ ልኬት - 4 ደረጃዎች

ቪዲዮ: HMC5883 ን እና አርዱዲኖ ናኖን በመጠቀም መግነጢሳዊ መስክ ልኬት - 4 ደረጃዎች

ቪዲዮ: HMC5883 ን እና አርዱዲኖ ናኖን በመጠቀም መግነጢሳዊ መስክ ልኬት - 4 ደረጃዎች
ቪዲዮ: Установка приложения ArduBlock 2024, ሀምሌ
Anonim
Image
Image

HMC5883 ለዝቅተኛ መስክ መግነጢሳዊ ዳሳሽ የተነደፈ ዲጂታል ኮምፓስ ነው። ይህ መሣሪያ ሰፊ የመግነጢሳዊ መስክ ክልል +/- 8 Oe እና የውጤት መጠን 160 Hz አለው። የ HMC5883 አነፍናፊ ከ 1 ° እስከ 2 ° ኮምፓስ አቅጣጫ ትክክለኛነትን የሚያነቃ አውቶማቲክ የማራገፊያ ማንጠልጠያ ነጂዎችን ፣ የማካካሻ ስረዛን እና 12 ቢት ኤዲሲን ያካትታል። ሁሉም I²C Mini ሞጁሎች በ 5 ቪዲሲ እንዲሠሩ የተቀየሱ ናቸው።

በዚህ መማሪያ ውስጥ ፣ የ HMC5883 ን ዝርዝር ሥራ ከአርዱዲኖ ናኖ ጋር እናብራራለን።

ደረጃ 1 ሃርድዌር ያስፈልጋል

ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል
ሃርድዌር ያስፈልጋል

ግባችንን ለማሳካት የሚያስፈልጉን ቁሳቁሶች የሚከተሉትን የሃርድዌር ክፍሎች ያካትታሉ።

1. HMC5883

2. አርዱዲኖ ናኖ

3. I2C ኬብል

4. I2C ጋሻ ለአርዱዲኖ ናኖ

ደረጃ 2 የሃርድዌር ማያያዣ;

የሃርድዌር ግንኙነት
የሃርድዌር ግንኙነት
የሃርድዌር ግንኙነት
የሃርድዌር ግንኙነት

የሃርድዌር ማያያዣ ክፍል በመሠረቱ በአነፍናፊው እና በአሩዲኖ ናኖ መካከል የሚፈለጉትን የሽቦ ግንኙነቶች ያብራራል። ለተፈለገው ውጤት በማንኛውም ስርዓት ላይ ሲሰሩ ትክክለኛ ግንኙነቶችን ማረጋገጥ መሠረታዊ አስፈላጊነት ነው። ስለዚህ አስፈላጊዎቹ ግንኙነቶች እንደሚከተለው ናቸው

HMC5883 ከ I2C በላይ ይሠራል። እያንዳንዱን የአነፍናፊ በይነገጽ እንዴት ሽቦ ማገናኘት እንደሚቻል የሚያሳይ የምስል ሽቦ ንድፍ ምሳሌ እዚህ አለ።

ከሳጥን ውጭ ፣ ቦርዱ ለ I2C በይነገጽ የተዋቀረ ነው ፣ ስለሆነም እርስዎ ሌላ የማይታወቁ ከሆኑ ይህንን መንጠቆ እንዲጠቀሙ እንመክራለን። የሚያስፈልግዎት አራት ሽቦዎች ብቻ ናቸው!

Vcc ፣ Gnd ፣ SCL እና SDA ፒኖች የሚያስፈልጉት አራት ግንኙነቶች ብቻ ናቸው እና እነዚህ በ I2C ገመድ እገዛ ተገናኝተዋል።

እነዚህ ግንኙነቶች ከላይ ባሉት ሥዕሎች ውስጥ ይታያሉ።

ደረጃ 3 መግነጢሳዊ መስክ ጥንካሬን ለመለካት የአርዱኖ ኮድ

መግነጢሳዊ መስክ ጥንካሬን ለመለካት የአርዱዲ ኮድ
መግነጢሳዊ መስክ ጥንካሬን ለመለካት የአርዱዲ ኮድ
መግነጢሳዊ መስክ ጥንካሬን ለመለካት የአርዱዲ ኮድ
መግነጢሳዊ መስክ ጥንካሬን ለመለካት የአርዱዲ ኮድ

አሁን በአርዱዲኖ ኮድ እንጀምር።

ከአርዲኖ ጋር የአነፍናፊ ሞጁሉን እየተጠቀምን ሳለ የ Wire.h ቤተ -መጽሐፍትን አካተናል። “ሽቦ” ቤተ -መጽሐፍት በአነፍናፊው እና በአርዱዲኖ ቦርድ መካከል ያለውን የ i2c ግንኙነት የሚያመቻቹ ተግባሮችን ይ containsል።

ጠቅላላው የአሩዲኖ ኮድ ለተጠቃሚው ምቾት ከዚህ በታች ተሰጥቷል-

#ያካትቱ

// HMC5883 I2C አድራሻ 0x1E (30) ነው

#ገላጭ አዳሪ 0x1E

ባዶነት ማዋቀር ()

{

// የ I2C ግንኙነትን እንደ ማስተር ማስጀመር

Wire.begin ();

// የመጀመርያ ደረጃ ተከታታይ ግንኙነት ፣ የባውድ መጠን = 9600 ያዘጋጁ

Serial.begin (9600);

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// መመዝገቢያ ምዝገባን ይምረጡ ሀ

Wire.write (0x00);

// መደበኛ የመለኪያ ውቅረት ፣ የውሂብ ውፅዓት መጠን = 0.75Hz ያዘጋጁ

Wire.write (0x60);

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የሞድ ምዝገባን ይምረጡ

Wire.write (0x02);

// የማያቋርጥ መለኪያ ያዘጋጁ

Wire.write (0x00);

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

መዘግየት (300);

}

ባዶነት loop ()

{

ያልተፈረመ int ውሂብ [6];

// I2C ማስተላለፍን ይጀምሩ

Wire.begin ማስተላለፊያ (Addr);

// የውሂብ መመዝገቢያ ይምረጡ

Wire.write (0x03);

// I2C ማስተላለፍን ያቁሙ

Wire.endTransmission ();

// 6 ባይት ውሂብን ይጠይቁ

Wire.requestFrom (Addr, 6);

// 6 ባይት መረጃዎችን ያንብቡ

// xMag msb ፣ xMag lsb ፣ zMag msb ፣ zMag lsb ፣ yMag msb ፣ yMag lsb

ከሆነ (Wire.available () == 6)

{

ውሂብ [0] = Wire.read ();

ውሂብ [1] = Wire.read ();

ውሂብ [2] = Wire.read ();

ውሂብ [3] = Wire.read ();

ውሂብ [4] = Wire.read ();

ውሂብ [5] = Wire.read ();

}

መዘግየት (300);

// ውሂቡን ይለውጡ

int xMag = ((ውሂብ [0] * 256) + ውሂብ [1]);

int zMag = ((ውሂብ [2] * 256) + ውሂብ [3]);

int yMag = ((ውሂብ [4] * 256) + ውሂብ [5]);

// የውጤት መረጃን ወደ ተከታታይ ማሳያ

Serial.print ("መግነጢሳዊ መስክ በኤክስ-ዘንግ":);

Serial.println (xMag);

Serial.print ("መግነጢሳዊ መስክ በ Y-Axis:");

Serial.println (yMag);

Serial.print ("መግነጢሳዊ መስክ በዘ-አክሲዮን":);

Serial.println (zMag);

መዘግየት (300);

}

በሽቦ ቤተ -መጽሐፍት ውስጥ Wire.write () እና Wire.read () ትዕዛዞቹን ለመፃፍ እና የአነፍናፊውን ውጤት ለማንበብ ያገለግላሉ። የኮዱን በከፊል መከተል የአነፍናፊ ውፅዓት ንባብን ያሳያል።

// 6 ባይት መረጃን ያንብቡ // xMag msb ፣ xMag lsb ፣ zMag msb ፣ zMag lsb ፣ yMag msb ፣ yMag lsb ከሆነ (Wire.available () == 6) {data [0] = Wire.read (); ውሂብ [1] = Wire.read (); ውሂብ [2] = Wire.read (); ውሂብ [3] = Wire.read (); ውሂብ [4] = Wire.read (); ውሂብ [5] = Wire.read (); }

Serial.print () እና Serial.println () በአርዲኖ አይዲኢ ተከታታይ ሞኒተር ላይ የአነፍናፊውን ውጤት ለማሳየት ያገለግላል።

የአነፍናፊው ውጤት ከላይ በስዕሉ ላይ ይታያል።

ደረጃ 4: ማመልከቻዎች

ማመልከቻዎች
ማመልከቻዎች

HMC5883 እንደ ዝቅተኛ ወጭ ኮምፓስ እና ማግኔቶሜትሪ ላሉት መተግበሪያዎች በዲጂታል በይነገጽ ለዝቅተኛ መስክ መግነጢሳዊ ዳሰሳ የተነደፈ ወለል-ተራራ ፣ ባለብዙ ቺፕ ሞዱል ነው። የእሱ ከአንድ እስከ ሁለት ዲግሪ ከፍተኛ ደረጃ ትክክለኛነት እና ትክክለኛነት የእግረኞች አሰሳ እና የ LBS ትግበራዎችን ያስችላል።

የሚመከር: