ዝርዝር ሁኔታ:

BMA250 ን እና አርዱዲኖ ናኖን በመጠቀም የፍጥነት መለኪያ 4 ደረጃዎች
BMA250 ን እና አርዱዲኖ ናኖን በመጠቀም የፍጥነት መለኪያ 4 ደረጃዎች

ቪዲዮ: BMA250 ን እና አርዱዲኖ ናኖን በመጠቀም የፍጥነት መለኪያ 4 ደረጃዎች

ቪዲዮ: BMA250 ን እና አርዱዲኖ ናኖን በመጠቀም የፍጥነት መለኪያ 4 ደረጃዎች
ቪዲዮ: የአርዱብሎክ መተግበሪያን በመጫን ላይ 2024, ሀምሌ
Anonim
Image
Image

BMA250 እስከ ± 16 ግ ድረስ ባለ ከፍተኛ ጥራት (13-ቢት) ልኬት ያለው ትንሽ ፣ ቀጭን ፣ እጅግ በጣም ዝቅተኛ ኃይል ፣ 3-ዘንግ የፍጥነት መለኪያ ነው። የዲጂታል ውፅዓት ውሂብ እንደ 16-ቢት ሁለትዎች ተሞልቶ በ I2C ዲጂታል በይነገጽ በኩል ተደራሽ ነው። በመጠምዘዝ ዳሰሳ አፕሊኬሽኖች ውስጥ የስበት የማይንቀሳቀስ ፍጥነትን ፣ እንዲሁም በእንቅስቃሴ ወይም በድንጋጤ ምክንያት የሚከሰተውን ተለዋዋጭ ፍጥነትን ይለካል። የእሱ ከፍተኛ ጥራት (3.9 mg/LSB) ከ 1.0 ° በታች የዝንባሌ ለውጦችን ለመለካት ያስችላል።

በዚህ መማሪያ ውስጥ BMA250 ን እና አርዱዲኖ ናኖን በመጠቀም በሶስቱም ቀጥ ያሉ መጥረቢያዎች ውስጥ ፍጥነቱን እንለካለን።

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

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

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

1. ቢኤምኤ 250

2. አርዱዲኖ ናኖ

3. I2C ኬብል

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

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

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

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

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

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

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

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

ደረጃ 3 የአርዲኖ ኮድ ለማፋጠን ልኬት

የአርዲኖ ኮድ ለፈጣን ልኬት
የአርዲኖ ኮድ ለፈጣን ልኬት
የአርዲኖ ኮድ ለፈጣን ልኬት
የአርዲኖ ኮድ ለፈጣን ልኬት

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

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

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

#ያካትቱ

// BMA250 I2C አድራሻ 0x18 (24) ነው

#መግለፅ Addr 0x18

ባዶነት ማዋቀር ()

{

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

Wire.begin ();

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

Serial.begin (9600);

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

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

// የክልል ምርጫ ምዝገባን ይምረጡ

Wire.write (0x0F);

// ክልል +/- 2g ያዘጋጁ

Wire.write (0x03);

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

Wire.endTransmission ();

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

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

// የመተላለፊያ ይዘት መመዝገቢያ ይምረጡ

Wire.write (0x10);

// የመተላለፊያ ይዘት ያዘጋጁ 7.81 Hz

Wire.write (0x08);

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

Wire.endTransmission (); መዘግየት (300);}

ባዶነት loop ()

{

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

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

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

// የውሂብ መመዝገቢያዎችን ይምረጡ (0x02 - 0x07)

Wire.write (0x02);

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

Wire.endTransmission ();

// 6 ባይት ይጠይቁ

Wire.requestFrom (Addr, 6);

// ስድስቱን ባይቶች ያንብቡ

// xAccl lsb ፣ xAccl msb ፣ yAccl lsb ፣ yAccl msb ፣ zAccl lsb ፣ zAccl msb

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

{

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

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

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

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

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

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

}

መዘግየት (300);

// ውሂቡን ወደ 10 ቢት ይለውጡ

ተንሳፋፊ xAccl = ((ውሂብ [1] * 256.0) + (ውሂብ [0] & 0xC0)) / 64;

ከሆነ (xAccl> 511)

{

xAccl -= 1024;

}

ተንሳፋፊ yAccl = ((ውሂብ [3] * 256.0) + (ውሂብ [2] & 0xC0)) / 64;

ከሆነ (yAccl> 511)

{

yAccl -= 1024;

}

ተንሳፋፊ zAccl = ((ውሂብ [5] * 256.0) + (ውሂብ [4] & 0xC0)) / 64;

ከሆነ (zAccl> 511)

{

zAccl -= 1024;

}

// የውጤት መረጃን ወደ ተከታታይ ሞኒተር

Serial.print ("በ X-Axis ውስጥ ማፋጠን");

Serial.println (xAccl);

Serial.print ("Y-Axis ውስጥ ማፋጠን");

Serial.println (yAccl);

Serial.print ("ዘ-አክሲዮን ውስጥ ማፋጠን");

Serial.println (zAccl);

}

በሽቦ ቤተ -መጽሐፍት ውስጥ Wire.write () እና Wire.read () ትዕዛዞቹን ለመፃፍ እና የአነፍናፊውን ውጤት ለማንበብ ያገለግላሉ። Serial.print () እና Serial.println () በአርዲኖ አይዲኢ ተከታታይ ማሳያ ላይ የአነፍናፊ ውፅዓት ለማሳየት ያገለግላሉ።

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

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

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

እንደ BMA250 ያሉ የፍጥነት መለኪያዎች በአብዛኛው መተግበሪያውን በጨዋታዎቹ ውስጥ ያገኛሉ እና የመገለጫ መቀየሪያን ያሳያሉ። ይህ አነፍናፊ ሞጁል ለሞባይል አፕሊኬሽኖች በተራቀቀ የኃይል አስተዳደር ስርዓት ውስጥም ይሠራል። BMA250 ብልህ በሆነ ቺፕ እንቅስቃሴ ከተቋረጠ ተቆጣጣሪ ጋር የተካተተ ባለሶስትዮሽ ዲጂታል የፍጥነት ዳሳሽ ነው።

የሚመከር: