সুচিপত্র:

ADXL345 এবং Arduino Nano ব্যবহার করে ত্বরণের পরিমাপ: 4 টি ধাপ
ADXL345 এবং Arduino Nano ব্যবহার করে ত্বরণের পরিমাপ: 4 টি ধাপ

ভিডিও: ADXL345 এবং Arduino Nano ব্যবহার করে ত্বরণের পরিমাপ: 4 টি ধাপ

ভিডিও: ADXL345 এবং Arduino Nano ব্যবহার করে ত্বরণের পরিমাপ: 4 টি ধাপ
ভিডিও: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, নভেম্বর
Anonim
Image
Image

ADXL345 হল একটি ছোট, পাতলা, অতিবেগুনী শক্তি, 3-অক্ষের অ্যাকসিলরোমিটার যার উচ্চ রেজোলিউশন (13-বিট) পরিমাপ ± 16 গ্রাম পর্যন্ত। ডিজিটাল আউটপুট ডেটা 16-বিট দুইটি পরিপূরক হিসাবে ফরম্যাট করা হয় এবং I2 C ডিজিটাল ইন্টারফেসের মাধ্যমে অ্যাক্সেসযোগ্য। এটি টিল্ট-সেন্সিং অ্যাপ্লিকেশনগুলিতে মাধ্যাকর্ষণের স্থির ত্বরণ পরিমাপ করে, পাশাপাশি গতি বা শক থেকে সৃষ্ট গতিশীল ত্বরণ। এর উচ্চ রেজোলিউশন (3.9 মিগ্রা/এলএসবি) 1.0 than এর কম প্রবণতা পরিবর্তনের পরিমাপ সক্ষম করে।

এই টিউটোরিয়ালে আরডুইনো ন্যানো সহ ADXL345 সেন্সর মডিউলের ইন্টারফেসিং চিত্রিত করা হয়েছে। ত্বরণ মান পড়ার জন্য, আমরা একটি I2c অ্যাডাপ্টারের সাথে arduino ব্যবহার করেছি এই I2C অ্যাডাপ্টার সেন্সর মডিউলের সাথে সংযোগ সহজ এবং আরো নির্ভরযোগ্য করে তোলে।

পদক্ষেপ 1: হার্ডওয়্যার প্রয়োজন:

হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন

আমাদের লক্ষ্য পূরণের জন্য আমাদের যে উপকরণগুলির প্রয়োজন তা নিম্নলিখিত হার্ডওয়্যার উপাদানগুলি অন্তর্ভুক্ত করে:

1. ADXL345

2. Arduino Nano

3. I2C কেবল

4. Arduino Nano এর জন্য I2C শিল্ড

পদক্ষেপ 2: হার্ডওয়্যার সংযুক্তি:

হার্ডওয়্যার সংযুক্তি
হার্ডওয়্যার সংযুক্তি
হার্ডওয়্যার সংযুক্তি
হার্ডওয়্যার সংযুক্তি

হার্ডওয়্যার হুকআপ বিভাগটি মূলত সেন্সর এবং আরডুইনো ন্যানোর মধ্যে প্রয়োজনীয় তারের সংযোগ ব্যাখ্যা করে। কাঙ্ক্ষিত আউটপুটের জন্য যে কোনো সিস্টেমে কাজ করার সময় সঠিক সংযোগ নিশ্চিত করা মৌলিক প্রয়োজনীয়তা। সুতরাং, প্রয়োজনীয় সংযোগগুলি নিম্নরূপ:

ADXL345 I2C এর উপর কাজ করবে। সেন্সরের প্রতিটি ইন্টারফেসকে কিভাবে ওয়্যার আপ করতে হয় তা দেখানো হচ্ছে ওয়্যারিং ডায়াগ্রামের উদাহরণ।

বাক্সের বাইরে, বোর্ডটি একটি I2C ইন্টারফেসের জন্য কনফিগার করা হয়েছে, যেমন আপনি অন্যথায় অজ্ঞেয়বাদী হলে আমরা এই হুকআপটি ব্যবহার করার পরামর্শ দিই।

আপনার প্রয়োজন শুধু চারটি তারের! VCC, Gnd, SCL এবং SDA পিনের জন্য মাত্র চারটি সংযোগ প্রয়োজন এবং এগুলি I2C তারের সাহায্যে সংযুক্ত।

এই সংযোগগুলি উপরের ছবিতে প্রদর্শিত হয়েছে।

ধাপ 3: ত্বরণ পরিমাপের জন্য কোড:

ত্বরণ পরিমাপের জন্য কোড
ত্বরণ পরিমাপের জন্য কোড

এখন আরডুইনো কোড দিয়ে শুরু করা যাক।

Arduino এর সাথে সেন্সর মডিউল ব্যবহার করার সময়, আমরা Wire.h লাইব্রেরি অন্তর্ভুক্ত করি। "ওয়্যার" লাইব্রেরিতে ফাংশন রয়েছে যা সেন্সর এবং আরডুইনো বোর্ডের মধ্যে i2c যোগাযোগকে সহজতর করে।

ব্যবহারকারীর সুবিধার জন্য সম্পূর্ণ আরডুইনো কোড নিচে দেওয়া হল:

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

// ADXL345 I2C ঠিকানা হল 0x53 (83)

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

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

{

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

Wire.begin ();

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

Serial.begin (9600);

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

Wire.beginTransmission (Addr);

// ব্যান্ডউইথ রেট রেজিস্টার নির্বাচন করুন

Wire.write (0x2C);

// সাধারণ মোড, আউটপুট ডেটা রেট = 100 Hz

Wire.write (0x0A);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// পাওয়ার কন্ট্রোল রেজিস্টার নির্বাচন করুন

Wire.write (0x2D);

// অটো-ঘুম নিষ্ক্রিয়

Wire.write (0x08);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// ডাটা ফরম্যাট রেজিস্টার নির্বাচন করুন

Wire.write (0x31);

// স্ব-পরীক্ষা নিষ্ক্রিয়, 4-তারের ইন্টারফেস, সম্পূর্ণ রেজোলিউশন, পরিসীমা = +/- 2g

Wire.write (0x08);

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

Wire.endTransmission ();

বিলম্ব (300);

}

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

{

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

জন্য (int i = 0; i <6; i ++)

{

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

Wire.beginTransmission (Addr);

// ডাটা রেজিস্টার নির্বাচন করুন

Wire.write ((50 + i));

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

Wire.endTransmission ();

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

Wire.requestFrom (Addr, 1);

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

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

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

{

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

}

}

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

int xAccl = (((data [1] & 0x03) * 256) + data [0]);

যদি (xAccl> 511)

{

xAccl -= 1024;

}

int yAccl = (((data [3] & 0x03) * 256) + data [2]);

যদি (yAccl> 511)

{

yAccl -= 1024;

}

int zAccl = (((data [5] & 0x03) * 256) + data [4]);

যদি (zAccl> 511)

{

zAccl -= 1024;

}

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

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

Serial.println (xAccl);

সিরিয়াল.প্রিন্ট ("Y- অক্ষের মধ্যে ত্বরণ হল:");

Serial.println (yAccl);

Serial.print ("Z-Axis- এ অ্যাক্সিলারেশন হল:");

Serial.println (zAccl);

বিলম্ব (300);

}

ওয়্যার লাইব্রেরিতে Wire.write () এবং Wire.read () কমান্ড লিখতে এবং সেন্সর আউটপুট পড়তে ব্যবহৃত হয়।

Serial.print () এবং Serial.println () Arduino IDE এর সিরিয়াল মনিটরে সেন্সরের আউটপুট প্রদর্শন করতে ব্যবহৃত হয়।

সেন্সরের আউটপুট উপরের ছবিতে দেখানো হয়েছে।

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

অ্যাপ্লিকেশন
অ্যাপ্লিকেশন

ADXL345 হল একটি ছোট, পাতলা, অতিবেগুনী শক্তি, 3-অক্ষের অ্যাক্সিলারোমিটার যা হ্যান্ডসেট, মেডিকেল যন্ত্রপাতি ইত্যাদি কাজে লাগানো যেতে পারে।

প্রস্তাবিত: