সুচিপত্র:

Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 ধাপ
Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 ধাপ

ভিডিও: Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 ধাপ

ভিডিও: Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 ধাপ
ভিডিও: BeagleBone Black MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer 'C' Code Tutorial 2024, নভেম্বর
Anonim
Image
Image

MMA8452Q হল একটি স্মার্ট, লো-পাওয়ার, তিন-অক্ষ, ক্যাপাসিটিভ, 12 বিট রেজোলিউশনের মাইক্রো-মেশিন অ্যাকসিলরোমিটার। নমনীয় ব্যবহারকারী প্রোগ্রামযোগ্য বিকল্পগুলি অ্যাক্সিলরোমিটারে এম্বেডেড ফাংশনগুলির সাহায্যে সরবরাহ করা হয়, দুটি ইন্টারাপ্ট পিনের জন্য কনফিগারযোগ্য। এটিতে ব্যবহারকারীর select 2g/± 4g/± 8g এর পূর্ণ-স্কেল রয়েছে যা উচ্চ-পাস ফিল্টার ফিল্টারড ডেটার পাশাপাশি নন-ফিল্টারড ডেটা রিয়েল-টাইমে উপলব্ধ। এখানে Arduino ন্যানো সঙ্গে তার প্রদর্শন।

ধাপ 1: আপনার যা প্রয়োজন..

তুমি কি চাও..!!
তুমি কি চাও..!!

1. আরডুইনো ন্যানো

2. MMA8452Q

3. I²C কেবল

4. Arduino Nano এর জন্য I²C শিল্ড

ধাপ 2: সংযোগ:

সংযোগ
সংযোগ
সংযোগ
সংযোগ
সংযোগ
সংযোগ
সংযোগ
সংযোগ

আরডুইনো ন্যানোর জন্য একটি I2C ieldাল নিন এবং আলতো করে ন্যানোর পিনের উপরে চাপ দিন।

তারপর I2C তারের এক প্রান্তকে MMA8452Q সেন্সর এবং অন্য প্রান্তকে I2C ieldালের সাথে সংযুক্ত করুন।

উপরের ছবিতে কানেকশন দেখানো হয়েছে।

ধাপ 3: কোড:

কোড
কোড

MMMA8452Q এর জন্য arduino কোডটি আমাদের github repository- DCUBE স্টোর থেকে ডাউনলোড করা যাবে।

এখানে লিঙ্ক আছে।

Arduino বোর্ডের সাথে সেন্সরের I2c যোগাযোগের সুবিধার্থে আমরা লাইব্রেরি Wire.h অন্তর্ভুক্ত করি।

আপনি এখান থেকে কোডটি অনুলিপি করতে পারেন, এটি নিম্নরূপ দেওয়া হয়েছে:

// একটি স্বাধীন ইচ্ছা লাইসেন্স দিয়ে বিতরণ করা হয়।

// এটি যে কোন উপায়ে ব্যবহার করুন, মুনাফা বা বিনামূল্যে, যদি এটি তার সংশ্লিষ্ট কাজের লাইসেন্সের সাথে খাপ খায়।

// MMA8452Q

// এই কোডটি MMA8452Q_I2CS I2C মিনি মডিউলের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে।

#অন্তর্ভুক্ত

// MMA8452Q I2C ঠিকানা হল 0x1C (28)

#সংযোজনকারী 0x1C

অকার্যকর সেটআপ()

{

// মাস্টার হিসাবে I2C যোগাযোগ শুরু করুন

Wire.begin ();

// সিরিয়াল কমিউনিকেশন শুরু করুন, বড রেট = 9600 সেট করুন

Serial.begin (9600);

// I2C ট্রান্সমিশন শুরু করুন

Wire.beginTransmission (Addr);

// নিয়ন্ত্রণ নিবন্ধন নির্বাচন করুন

Wire.write (0x2A);

// চলমান ভাব

Wire.write (0x00);

// I2C ট্রান্সমিশন বন্ধ করুন

Wire.endTransmission ();

// I2C ট্রান্সমিশন শুরু করুন

Wire.beginTransmission (Addr);

// নিয়ন্ত্রণ নিবন্ধন নির্বাচন করুন

Wire.write (0x2A);

// সক্রিয় মোড

Wire.write (0x01);

// I2C ট্রান্সমিশন বন্ধ করুন

Wire.endTransmission ();

// I2C ট্রান্সমিশন শুরু করুন

Wire.beginTransmission (Addr);

// নিয়ন্ত্রণ নিবন্ধন নির্বাচন করুন

Wire.write (0x0E);

// রেঞ্জ +/- 2g এ সেট করুন

Wire.write (0x00);

// I2C ট্রান্সমিশন বন্ধ করুন

Wire.endTransmission ();

বিলম্ব (300);

}

অকার্যকর লুপ ()

{

স্বাক্ষরবিহীন int ডেটা [7];

// 7 বাইট ডেটার অনুরোধ করুন

Wire.requestFrom (Addr, 7);

// 7 বাইট ডেটা পড়ুন

// staus, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

যদি (Wire.available () == 7)

{

ডেটা [0] = ওয়্যার.রেড ();

ডেটা [1] = ওয়্যার.রেড ();

ডেটা [2] = ওয়্যার.রেড ();

ডেটা [3] = ওয়্যার.রেড ();

তথ্য [4] = Wire.read ();

তথ্য [5] = ওয়্যার.রেড ();

তথ্য [6] = ওয়্যার.রেড ();

}

// ডেটাকে 12-বিটে রূপান্তর করুন

int xAccl = ((data [1] * 256) + data [2]) / 16;

যদি (xAccl> 2047)

{

xAccl -= 4096;

}

int yAccl = ((data [3] * 256) + data [4]) / 16;

যদি (yAccl> 2047)

{

yAccl -= 4096;

}

int zAccl = ((data [5] * 256) + data [6]) / 16;

যদি (zAccl> 2047)

{

zAccl -= 4096;

}

// সিরিয়াল মনিটরে আউটপুট ডেটা

সিরিয়াল.প্রিন্ট ("এক্স-এক্সিসে এক্সিলারেশন:");

Serial.println (xAccl);

Serial.print ("Y-Axis- এ ত্বরণ:");

Serial.println (yAccl);

সিরিয়াল.প্রিন্ট ("Z-Axis- এ এক্সিলারেশন:");

Serial.println (zAccl);

বিলম্ব (500);

}

ধাপ 4: অ্যাপ্লিকেশন:

MMA8452Q এর বিভিন্ন অ্যাপ্লিকেশন রয়েছে যার মধ্যে রয়েছে ই-কম্পাস অ্যাপ্লিকেশন, স্ট্যাটিক ওরিয়েন্টেশন ডিটেকশন যা পোর্ট্রেট/ল্যান্ডস্কেপ, আপ/ডাউন, লেফট/রাইট, ব্যাক/ফ্রন্ট পজিশন আইডেন্টিফিকেশন, নোটবুক, ই-রিডার, এবং ল্যাপটপ টাম্বল এবং ফ্রিফল ডিটেকশন, রিয়েল-টাইম ভার্চুয়াল রিয়েলিটি এবং গেমিং থ্রিডি ইউজার পজিশন ফিডব্যাক, রিয়েল-টাইম অ্যাক্টিভিটি বিশ্লেষণ যেমন পেডোমিটার স্টেপ কাউন্টিং, এইচডিডি-র জন্য ফ্রিফল ড্রপ ডিটেকশন, ডেড-রিকোনিং জিপিএস ব্যাকআপ সহ আরও অনেক কিছু।

প্রস্তাবিত: