সুচিপত্র:

ADXL345 Arduino Uno R3: 5 ধাপ ব্যবহার করে
ADXL345 Arduino Uno R3: 5 ধাপ ব্যবহার করে

ভিডিও: ADXL345 Arduino Uno R3: 5 ধাপ ব্যবহার করে

ভিডিও: ADXL345 Arduino Uno R3: 5 ধাপ ব্যবহার করে
ভিডিও: How To Interface ADXL335 Analog Accelerometer Sensor With Arduino 2024, নভেম্বর
Anonim
ADXL345 Arduino Uno R3 ব্যবহার করে
ADXL345 Arduino Uno R3 ব্যবহার করে

এই পাঠে, আমরা শিখব কিভাবে এক্সিলারেশন সেন্সর ADXL345 ব্যবহার করতে হয়।

ধাপ 1: উপাদান

- Arduino Uno বোর্ড * 1

- ইউএসবি কেবল * 1

- ADXL345 *1

- ব্রেডবোর্ড * ১

- জাম্পার তার

ধাপ 2: নীতি

ত্বরণের সময় উৎপন্ন শক্তি পরিমাপের জন্য একটি অ্যাকসিলরোমিটার ব্যবহার করা হয়। সবচেয়ে মৌলিক হল মাধ্যাকর্ষণের সাধারণভাবে পরিচিত ত্বরণ যা 1g।

মাধ্যাকর্ষণ দ্বারা সৃষ্ট ত্বরণ পরিমাপ করে, আপনি স্তরের পৃষ্ঠে ডিভাইসের কাত কোণ গণনা করতে পারেন। গতিশীল ত্বরণ বিশ্লেষণের মাধ্যমে, আপনি বলতে পারেন যে ডিভাইসটি কীভাবে চলছে। উদাহরণস্বরূপ, স্ব-ভারসাম্য বোর্ড বা হোভারবোর্ড কলম্যান ফিল্টার এবং অঙ্গবিন্যাস সংশোধনের জন্য ত্বরণ সেন্সর এবং জাইরোস্কোপ প্রয়োগ করে।

ADXL345

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

এটি টিল্ট-সেন্সিং অ্যাপ্লিকেশনগুলিতে মাধ্যাকর্ষণের স্থির ত্বরণ পরিমাপের জন্য উপযুক্ত, পাশাপাশি গতি বা শক থেকে সৃষ্ট গতিশীল ত্বরণ। এর উচ্চ রেজোলিউশন (4 মিলিগ্রাম/এলএসবি) 1.0 than এর কম প্রবণতা পরিবর্তন পরিমাপ সক্ষম করে। এবং চমৎকার সংবেদনশীলতা (3.9mg/LSB @2g) ± 16g পর্যন্ত উচ্চ নির্ভুলতা প্রদান করে।

ADXL345 কিভাবে কাজ করে

ADXL345 সামনের সেন্সিং কম্পোনেন্টের সাথে ত্বরণ সনাক্ত করে এবং তারপর ইলেকট্রিক সিগন্যাল সেন্সিং কম্পোনেন্ট ইলেকট্রিক সিগন্যালে রূপান্তর করে, যা এনালগ। পরবর্তী, মডিউলে সংযোজিত AD অ্যাডাপ্টার এনালগ সিগন্যালকে ডিজিটাল এক রূপান্তর করবে।

X_OUT, Y_OUT এবং Z_OUT হল যথাক্রমে X, Y, এবং Z অক্ষের মান। মডিউল মুখোমুখি রাখুন: Z_OUT সর্বাধিক +1g পৌঁছাতে পারে, X_OUT এর সর্বনিম্ন অক্ষ দিকের দিকে -1g, এবং Y_OUT এর সর্বনিম্ন দিক হল Ay দিকের দিকে -1g। অন্যদিকে, মডিউলটি উল্টে দিন: Z_OUT সর্বনিম্ন -1g, সর্বাধিক X_OUT অ্যাক্স দিকের দিকে +1g, এবং Y_OUT এর সর্বাধিক +1g এআই দিকের দিকে।, নিচে দেখানো হয়েছে. ADXL345 মডিউলটি ঘোরান এবং আপনি তিনটি মান পরিবর্তন দেখতে পাবেন।

যখন চ্যানেল A উচ্চ স্তর থেকে নিম্ন স্তরে পরিবর্তিত হয়, যদি চ্যানেল B উচ্চ স্তরের হয়, এটি ঘূর্ণমান এনকোডার ঘড়ির কাঁটার দিকে নির্দেশ করে (CW); যদি সেই মুহুর্তে চ্যানেল বি নিম্ন স্তরের হয়, তাহলে এর অর্থ ঘড়ির কাঁটার বিপরীতে (CCW) স্পিন। সুতরাং যদি আমরা চ্যানেল B এর মান পড়ি যখন চ্যানেল A নিম্ন স্তরের হয়, আমরা জানতে পারি যে কোন দিকে ঘূর্ণমান এনকোডার ঘুরছে।

নীতি: নীচের রোটারি এনকোডার মডিউলের পরিকল্পিত চিত্র দেখুন। এটি থেকে আমরা দেখতে পাই যে মডিউলের CLK নামে ঘূর্ণমান এনকোডারের পিন 3 হল চ্যানেল বি পিন 5, যা DT, চ্যানেল A। রেকর্ডার এর ঘূর্ণন দিক জানতে, শুধু CLK এর মান পড়ুন এবং ডিটি।

সার্কিটে একটি 3.3v ভোল্টেজ রেগুলেটর চিপ আছে, তাই আপনি 5V বা 3.3V দিয়ে মডিউলটি পাওয়ার করতে পারেন।

যেহেতু SDO GND এর সাথে সংযুক্ত হয়েছে, ADXL345 এর I2C ঠিকানা হল 0x53, লেখার জন্য 0xA6, পড়ার জন্য 0xA7

ADXL345 মডিউলের পিন ফাংশন।

ধাপ 3: পদ্ধতি

ধাপ 1. সার্কিট তৈরি করুন।

ধাপ ২:

Https://github.com/primerobotics/Arduino থেকে কোডটি ডাউনলোড করুন

ধাপ 3:

Arduino Uno বোর্ডে স্কেচ আপলোড করুন

কন্ট্রোল বোর্ডে কোড আপলোড করতে আপলোড আইকনে ক্লিক করুন।

যদি "আপলোড করা হয়েছে" উইন্ডোর নীচে প্রদর্শিত হয়, তার মানে স্কেচ সফলভাবে আপলোড করা হয়েছে।

আপলোড করার পরে, সিরিয়াল মনিটর খুলুন, যেখানে আপনি সনাক্ত করা ডেটা দেখতে পারেন। যখন মডিউলের ত্বরণ পরিবর্তন হয়, তখন উইন্ডোতে সেই অনুযায়ী চিত্র পরিবর্তন হবে।

ধাপ 4: কোড

কোড
কোড

// ADXL335

/********************************

ADXL335

দ্রষ্টব্য: vcc5v, কিন্তু ADXL335 বনাম 3.3V

সার্কিট:

5V: VCC

এনালগ 0: x- অক্ষ

এনালগ 1: y- অক্ষ

এনালগ 2: z- অক্ষ

জ্বালানোর পর

প্রোগ্রাম, সিরিয়াল মনিটর ডিবাগিং উইন্ডো খুলুন, যেখানে আপনি দেখতে পাচ্ছেন ডেটা প্রদর্শিত হচ্ছে। যখন ত্বরণ পরিবর্তিত হয়, সেই অনুযায়ী চিত্রটি পরিবর্তিত হবে।

*********************************

/ইমেইল:

// ওয়েবসাইট: www.primerobotics.in

const int xpin =

A0; // অ্যাকসিলরোমিটারের x- অক্ষ

const int ypin =

এ 1; // y- অক্ষ

const int zpin =

এ 2; // z- অক্ষ (শুধুমাত্র 3-অক্ষ মডেলগুলিতে)

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

{

// সিরিয়াল যোগাযোগ শুরু করুন:

Serial.begin (9600);

}

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

{

int x = analogRead (xpin); // xpin থেকে পড়া

বিলম্ব (1); //

int y = analogRead (ypin); // ইপিন থেকে পড়া

বিলম্ব (1);

int z = analogRead (zpin); // zpin থেকে পড়া

float zero_G = 338.0; // ADXL335 পাওয়ার সাপ্লাই

বনাম 3.3V: 3.3V/5V*1024 = 676/2 = 338

// সিরিয়াল.প্রিন্ট (এক্স);

// সিরিয়াল.প্রিন্ট ("" ");

// সিরিয়াল.প্রিন্ট (y);

// সিরিয়াল.প্রিন্ট ("" ");

// সিরিয়াল.প্রিন্ট (জেড);

// সিরিয়াল.প্রিন্ট ("\ন");

ভাসা

শূন্য_জিএক্স = 331.5; // এক্স অক্ষের শূন্য_জি আউটপুট: (x_max + x_min)/2

ভাসা

শূন্য_জি = 329.5; // y অক্ষের শূন্য_জি আউটপুট: (y_max + y_min)/2

float zero_Gz = 340.0; //

z অক্ষের শূন্য_জি আউটপুট: (z_max + z_min)/2

ভাসমান স্কেল =

67.6; // বনাম 3.3V দ্বারা বিদ্যুৎ সরবরাহ: 3.3v/5v *1024/3.3v *330mv/g = 67.6g

float scale_x =

65; // x অক্ষের স্কেল: x_max/3.3v*330mv/g

float scale_y =

68.5; // y অক্ষের স্কেল: y_max/3.3v*330mv/g

float scale_z =

68; // z অক্ষের স্কেল: z_max/3.3v*330mv/g

Serial.print = ((float) x

- শূন্য_জিএক্স)/স্কেল_এক্স); // সিরিয়াল মনিটরে x মান প্রিন্ট করুন

Serial.print ("\ t");

Serial.print = ((float) y

- শূন্য_জি)/স্কেল_ই); // সিরিয়াল মনিটরে y মান প্রিন্ট করুন

Serial.print ("\ t");

Serial.print = ((float) z

- শূন্য_জিজেড)/স্কেল_জেড); // সিরিয়াল মনিটরে z মান প্রিন্ট করুন

সিরিয়াল.প্রিন্ট ("\ n");

বিলম্ব (1000); // 1 সেকেন্ডের জন্য অপেক্ষা করুন

}

ধাপ 5: কোড বিশ্লেষণ

ADXL345 পরীক্ষার কোডটিতে 3 টি অংশ রয়েছে: প্রতিটি পোর্ট এবং ডিভাইস আরম্ভ করুন, সেন্সর থেকে পাঠানো ডেটা অর্জন এবং সঞ্চয় করুন এবং ডেটা রূপান্তর করুন।

প্রস্তাবিত: