সুচিপত্র:

Arduino এয়ার কন্ডিশনিং মডেল: 6 ধাপ
Arduino এয়ার কন্ডিশনিং মডেল: 6 ধাপ

ভিডিও: Arduino এয়ার কন্ডিশনিং মডেল: 6 ধাপ

ভিডিও: Arduino এয়ার কন্ডিশনিং মডেল: 6 ধাপ
ভিডিও: ৮ টি এয়ার কন্ডিশনার মডেল 2024, জুলাই
Anonim
Arduino এয়ার কন্ডিশনিং মডেল
Arduino এয়ার কন্ডিশনিং মডেল

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

একটি Arduino মাইক্রোকন্ট্রোলার কিট এবং MATLAB সংস্করণ 2016b এবং 2017b ব্যবহার করে, আমরা আপেক্ষিক সাফল্যের সাথে এই ফলাফলগুলি প্রদর্শন করতে সক্ষম হয়েছিলাম।

ধাপ 1: সরঞ্জাম

সরঞ্জাম
সরঞ্জাম

নিম্নলিখিত সঙ্গে মাইক্রোকন্ট্রোলার কিট:

-স্পারফুন রেড বোর্ড

-স্পারফুন ব্রেডবোর্ড

-এলসিডি বোর্ড

-পোটেন্টিওমিটার

-তাপমাত্রা সেন্সর

-সার্ভো

-USB/Arduino অ্যাডাপ্টার

-জাম্পার তার (25, সর্বনিম্ন)

ইউএসবি ইনপুট সহ ল্যাপটপ (উইন্ডোজ ১০)

3D মুদ্রিত বস্তু (alচ্ছিক)

পদক্ষেপ 2: মাইক্রোকন্ট্রোলার সেটআপ

মাইক্রোকন্ট্রোলার সেটআপ
মাইক্রোকন্ট্রোলার সেটআপ
মাইক্রোকন্ট্রোলার সেটআপ
মাইক্রোকন্ট্রোলার সেটআপ
মাইক্রোকন্ট্রোলার সেটআপ
মাইক্রোকন্ট্রোলার সেটআপ
মাইক্রোকন্ট্রোলার সেটআপ
মাইক্রোকন্ট্রোলার সেটআপ

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

প্রতিটি স্বতন্ত্র মডেলের ছবি মাইক্রোকন্ট্রোলার টুল কিটের ম্যানুয়াল বা https://learn.sparkfun.com/tutorials/tags/arduino?page=all- এ পাওয়া যাবে।

বোর্ডে টেম্পারেচার সেন্সর, পোটেন্টিওমিটার, সার্ভো কানেক্টর এবং এলসিডি সংযুক্ত করে শুরু করুন। এটা সুপারিশ করা হয় যে LCD এর আকার এবং তার জন্য তারের সংখ্যার প্রয়োজনীয়তার কারণে, এটি তার অর্ধেক রুটিবোর্ডের অন্য অর্ধেক টুকরোগুলির সাথে এবং পটেন্টিওমিটারের জন্য একটি এলাকায় থাকা উচিত সহজেই তার গিঁট ঘুরান।

রেফারেন্সের জন্য:

LCD: c1-16

Servo: i1-3 (GND + -)

টেম্প সেন্সর: i13-15 (- GND +)

পোটেন্টিওমিটার: g24-26 (- GND +)

পরবর্তী, মাইক্রোকন্ট্রোলার ইউনিটের প্রতিটি পিনের সাথে জাম্পার তারগুলি সংযুক্ত করা শুরু করুন; যদিও সামগ্রিক গ্র্যান্ড স্কিমে নির্বিচারে, নকশাটি এই গুরুত্বপূর্ণ সংযোগগুলির সাথে তৈরি করা হয়েছিল:

পোটেন্টিওমিটারকে এলসিডিতে সংযুক্ত করা হচ্ছে: f25 - e3

Servo GND তার: j1 - ডিজিটাল ইনপুট 9

টেম্প সেন্সর GND: j14 - এনালগ ইনপুট 0

LCD ইনপুট: e11-e15-ডিজিটাল ইনপুট 2-5

e4 - ডিজিটাল ইনপুট 7

e6 - ডিজিটাল ইনপুট 6

(দ্রষ্টব্য: যদি সফল হয়, LCD এর প্রান্তের উভয় লাইট জ্বলতে হবে এবং পটেন্টিওমিটার অ্যাডাপ্টার থেকে পাওয়ার দিলে তার উজ্জ্বলতা সামঞ্জস্য করতে সাহায্য করতে পারে।)

Ptionচ্ছিক: প্রয়োজনের অংশ হিসেবে একটি 3D মুদ্রিত বস্তু ব্যবহার করা হয়েছিল। আরও ভঙ্গুর অংশগুলির সম্ভাব্য ক্ষতি এড়াতে, একটি বর্ধিত কেস এলসিডির চারপাশে একটি হাতা হিসাবে রাখা হয়েছিল। LCD এর স্ক্রিনের পরিমাপ প্রায় 2-13/16 "x 1-1/16" x 1/4 "প্রমাণিত হয়, এবং এইভাবে শুধুমাত্র উচ্চতা উল্লেখযোগ্যভাবে পরিবর্তিত হয়।, যদিও অপ্রয়োজনীয়। এছাড়াও, সচেতন থাকুন যে পরিমাপ ভিন্ন হতে পারে।

ধাপ 3: MATLAB সেটআপ

MATLAB সেটআপ
MATLAB সেটআপ
MATLAB সেটআপ
MATLAB সেটআপ

MATLAB (2016a এবং পরবর্তী) এর আরও আপডেট সংস্করণ ইনস্টল করুন, ম্যাথওয়ার্কস ওয়েবসাইট https://www.mathworks.com/products/matlab.html?s_tid=srchtitle এ উপলব্ধ। একবার খোলার পরে, হোম ট্যাবে অ্যাড-অনগুলিতে যান এবং মাইক্রোকন্ট্রোলার কমান্ডগুলি অ্যাক্সেসযোগ্য হওয়ার জন্য "আরডুইনো হার্ডওয়্যারের জন্য ম্যাটল্যাব সাপোর্ট প্যাকেজ" ডাউনলোড করুন।

একবার সম্পন্ন হলে, একটি কম্পিউটার/ল্যাপটপের সাথে মাইক্রোকন্ট্রোলারের সংযোগ খুঁজে পেতে একটি পরীক্ষা করা যেতে পারে। টুল কিট থেকে তাদের ইউএসবি অ্যাডাপ্টারের সাথে সংযুক্ত করার পরে, "ফোপেন (সিরিয়াল ('নাডা')) কমান্ডটি সন্নিবেশ করান।"

একটি ত্রুটি বার্তা পপ-আপ হবে যা সংযোজককে "COM#" বলে উল্লেখ করে, যা একটি arduino বস্তু তৈরি করতে প্রয়োজন হবে যতক্ষণ এটি সর্বদা একই ইনপুট।

LCD এর Arduino লাইব্রেরির সাথে সরাসরি সংযোগ না থাকার কারণে, বার্তা প্রদর্শনের জন্য একটি নতুন লাইব্রেরি তৈরি করতে হবে। একটি সুপারিশ হল MATLAB হেল্প উইন্ডোতে পাওয়া LCD উদাহরণ থেকে একটি LCDAddon.m ফাইল তৈরি করা "Arduino LCD" অনুসন্ধান করার পর এবং এটি +arduinoioaddons ফোল্ডারে রাখার পরে, অথবা সংযুক্ত সংকুচিত ফোল্ডারটি ব্যবহার করুন এবং এর সমস্ত বিষয়বস্তু পূর্বোক্ত কপি করুন ফোল্ডার

যদি সফল হয়, তাহলে MATLAB এ একটি Arduino অবজেক্ট তৈরির কোডটি নিচে দেখানো হল।

a = arduino ('com#', 'uno', 'লাইব্রেরি', 'exampleLCD/LCDAddon');

ধাপ 4: ফাংশন

কার্যাবলী
কার্যাবলী
কার্যাবলী
কার্যাবলী

একটি MATLAB ফাংশন তৈরি করুন। ইনপুটগুলির জন্য, আমরা ভেরিয়েবল "eff" এবং "T_min" ব্যবহার করি; আউটপুটগুলির জন্য, যদিও সামগ্রিক নকশায় অপ্রয়োজনীয়, আমরা ফলাফল থেকে তথ্য ধারণের উপায় হিসাবে পরিবর্তনশীল "B" ব্যবহার করেছি। "Eff" ইনপুট সার্ভোর সর্বোচ্চ গতি পরিচালনার অনুমতি দেয় এবং "T_min" ইনপুট ন্যূনতম তাপমাত্রা নিয়ন্ত্রণ করে। মান "B" এভাবে একটি ম্যাট্রিক্স তৈরি করতে হবে যাতে সময়, তাপমাত্রা এবং ফ্যানের দক্ষতার জন্য তিনটি কলাম থাকে। এছাড়াও, বিস্তারিত একটি বোনাস হিসাবে, নীচে তালিকাভুক্ত কোডটিতে একটি if- স্টেটমেন্টও রয়েছে যাতে ফ্যানের গতি পঞ্চাশ শতাংশ কমিয়ে আনা হবে যখন এটি ন্যূনতম তাপমাত্রার কাছাকাছি চলে আসবে।

যদি সমস্ত ইনপুট এবং জাম্পার তারগুলি ঠিকভাবে স্থাপন করা হয় এবং আরডুইনো সংযোগের পোর্টটি ধরে নেওয়া হয় COM4 এবং ফাংশনের নাম "ফ্যানরিড", নিম্নলিখিত কোডটি যথেষ্ট হওয়া উচিত:

ফাংশন [B] = ফ্যানরিড (Tmin, eff)

পরিষ্কার a; পরিষ্কার lcd; a = arduino ('com4', 'uno', 'লাইব্রেরি', 'exampleLCD/LCDAddon');

t = 0; t_max = 15; সেকেন্ডে % সময়

lcd = addon (a, 'exampleLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

এলসিডি শুরু করুন (এলসিডি, 'সারি', 2, 'কলাম', 2);

যদি eff> = 1 || e <0

ত্রুটি ('ইফ 0 এবং 1 এর মধ্যে সেট না করা পর্যন্ত ফ্যান সক্রিয় হবে না।')

শেষ

টি = 1 এর জন্য: 10 % লুপ/অন্তর

পরিষ্কার গ; % পুনরাবৃত্তি ত্রুটি প্রতিরোধ

v = readVoltage (a, 'A0');

TempC = (v-0.5)*100; ভোল্টেজ রেঞ্জের জন্য % অনুমান 2.7-5.5 V

যদি TempC> Tmin যদি TempC হয়

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', eff/2); অর্ধেক গতিতে সার্ভো চালু করুন

spd = 50;

অন্য

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', eff); প্রদত্ত গতিতে সার্ভো চালু করুন

spd = 100;

শেষ

অন্য

c = ['Temp', num2str (TempC, 3), 'C Off'];

writePWMDutyCycle (a, 'D9', 0); ইতিমধ্যে চালু থাকলে % বন্ধ

spd = 0;

শেষ

printLCD (lcd, c);

বিরতি (3); প্রতি লুপে তিন সেকেন্ড শেষ হয়ে যায়

সময় (টি) = টি।*3;

tempplot (t) = TempC;

act (t) = spd;

সাবপ্লট (2, 1, 1)

প্লট (সময়, টেমপ্লট, 'বি-ও') % লাইন গ্রাফ

অক্ষ ([0 33 0 40])

xlabel ('সময় (সেকেন্ড)')

ylabel ('তাপমাত্রা (C)')

অপেক্ষা কর

প্লট ([0 33], [Tmin Tmin], 'r-')

অপেক্ষা কর

প্লট ([0 33], [Tmin+2 Tmin+2], 'g-')

সাবপ্লট (2, 1, 2)

বার (সময়, কাজ) % বার গ্রাফ

xlabel ('সময় (সেকেন্ড)')

ylabel ('দক্ষতা (%)')

শেষ

B = transpose ([time; tempplot; act]);

শেষ

এখন যেহেতু ফাংশনটি সম্পন্ন হয়েছে, এটি পরীক্ষার সময়।

ধাপ 5: পরীক্ষা

পরীক্ষামূলক
পরীক্ষামূলক
পরীক্ষামূলক
পরীক্ষামূলক

এখন কমান্ড উইন্ডোতে "function_name (input_value_1, input_value_2)" watchুকিয়ে ফাংশনটি পরীক্ষা করুন এবং দেখুন। নিশ্চিত হোন যে কোন Arduino বস্তু ইতিমধ্যে বিদ্যমান নেই; যদি তা হয় তবে এটি অপসারণ করতে "ক্লিয়ার এ" কমান্ডটি ব্যবহার করুন। যদি ত্রুটি ঘটে, পরীক্ষা করে দেখুন কোন সংযোগকারী ভুল জায়গায় আছে কিনা অথবা ভুল ডিজিটাল বা এনালগ ইনপুট ব্যবহার করা হয়েছে কিনা। ফলাফলগুলি পরিবর্তিত হবে বলে আশা করা হচ্ছে, যদিও এটি নির্দিষ্ট জাম্পার তারের এবং তাপমাত্রা সেন্সর স্থাপনের কারণে হতে পারে।

ফলাফলের প্রত্যাশাগুলি servo এর কর্মক্ষমতা এবং LCD- এর ডেটাতে পরিবর্তন আনতে হবে। প্রতিটি তিন সেকেন্ডের ব্যবধানে, পাঠ্যের একটি লাইন সেলসিয়াস তাপমাত্রা প্রদর্শন করতে হবে এবং ফ্যানটি সক্রিয় কিনা বা ফ্যানটি পূর্ণ গতিতে, অর্ধ গতিতে বা কোন গতিতে চলবে না। ডেটা সম্ভবত সামঞ্জস্যপূর্ণ হওয়া উচিত নয়, যদিও আরো বিভিন্ন ফলাফলের ইচ্ছা থাকলে, সার্কিট দ্বারা উত্পাদিত গড় তাপমাত্রার কাছাকাছি "Tmin" মান রাখুন।

ধাপ 6: উপসংহার

উপসংহার
উপসংহার

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

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

প্রস্তাবিত: