কিভাবে একটি Arduino বোর্ডে একটি LED তারের
আরডুইনো প্ল্যাটফর্মটি সারা বিশ্বে অত্যন্ত জনপ্রিয়। কিভাবে প্রোগ্রাম এবং হার্ডওয়্যার নিয়ন্ত্রণ করতে হয় তা শেখার প্রথম ধাপের জন্য এটি আদর্শ হাতিয়ার। আপনার দক্ষতা বাড়ার সাথে সাথে আপনি পেরিফেরাল বোর্ড যুক্ত করে আর্কিটেকচার বাড়াতে পারেন এবং আরও জটিল সিস্টেম তৈরি করতে পারেন যা আরও জটিল প্রোগ্রাম চালায়। Arduino Uno এবং Arduino Nano বোর্ড প্রাথমিক প্রশিক্ষণের জন্য উপযুক্ত। এই উদাহরণে আমরা LED এর সাথে Arduino এর সাথে সংযোগ করব।
Arduino Uno এবং Arduino Nano কি?
Arduino Uno বোর্ডের ভিত্তি হল ATmega328 মাইক্রোকন্ট্রোলার। এটিতে অতিরিক্ত উপাদান রয়েছে:
- একটি কোয়ার্টজ অনুরণনকারী;
- রিসেট বোতাম;
- ইউএসবি সংযোগকারী;
- ইন্টিগ্রেটেড ভোল্টেজ নিয়ন্ত্রক;
- পাওয়ার সংযোগকারী;
- মোড ইঙ্গিত জন্য বিভিন্ন LEDs;
- ইউএসবি চ্যানেলের জন্য যোগাযোগ চিপ;
- অন-চিপ প্রোগ্রামিংয়ের জন্য সংযোগকারী;
- আরো কয়েকটি সক্রিয় এবং নিষ্ক্রিয় উপাদান।
এই সব আপনি একটি সোল্ডারিং লোহা ব্যবহার না করে প্রথম পদক্ষেপ করতে এবং একটি সার্কিট বোর্ড তৈরির পদক্ষেপ এড়াতে অনুমতি দেয়। ইউনিটটি একটি বাহ্যিক 7...12V পাওয়ার সাপ্লাই বা একটি USB সংযোগকারীর মাধ্যমে চালিত হয়। স্কেচ লোড করার জন্য মডিউলটি পিসির সাথেও সংযুক্ত। বহিরাগত ডিভাইসগুলিকে পাওয়ার জন্য বোর্ডে একটি 3.3V ভোল্টেজের উৎস রয়েছে। অপারেশনের জন্য 6, 14টি সাধারণ উদ্দেশ্য ডিজিটাল আউটপুট উপলব্ধ। 5 V থেকে চালিত হলে ডিজিটাল আউটপুটের লোড ক্ষমতা 40 mA।এর মানে হল যে একটি LED এর সাথে সরাসরি সংযুক্ত হতে পারে a মাধ্যমে সীমিত প্রতিরোধক.
আরডুইনো ন্যানো বোর্ডটি Uno-এর সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ, কিন্তু আকারে ছোট এবং টেবিলে দেখানো কিছু পার্থক্য ও সরলীকরণ রয়েছে।
বোর্ড | নিয়ন্ত্রক | বাহ্যিক শক্তি জন্য সংযোগকারী | ইউএসবি যোগাযোগের জন্য মাইক্রোসার্কিট | ইউএসবি সংযোগকারী |
---|---|---|---|---|
Arduino Uno | ATmega328 | চেক আউট | ATmega8U2 | ইউএসবি এ-বি |
আরডুইনো ন্যানো | ATmega328 | না | FT232RL | মাইক্রো USB |
পার্থক্যগুলি মৌলিক নয় এবং এই পর্যালোচনার বিষয়ের জন্য গুরুত্বপূর্ণ নয়।
আরডুইনো বোর্ডের সাথে এলইডি সংযোগ করতে আপনার যা দরকার
LED সংযোগ করার দুটি উপায় আছে। প্রশিক্ষণের উদ্দেশ্যে আপনি যেকোনো একটি বেছে নিতে পারেন।
- বিল্ট-ইন LED ব্যবহার করুন. এই ক্ষেত্রে, পাওয়ার এবং প্রোগ্রামিং-এর জন্য USB-এর মাধ্যমে পিসির সাথে সংযোগ করার জন্য আপনার কেবল ছাড়া আর কিছুর প্রয়োজন নেই। বোর্ডকে পাওয়ার জন্য একটি বাহ্যিক ভোল্টেজ উত্স ব্যবহার করার কোন মানে নেই: বর্তমান খরচ কম।পিসিতে Arduino Uno সংযোগ করার জন্য একটি USB A-B কেবল।
- বাহ্যিক LEDs সংযোগ করুন. এখানে আপনার অতিরিক্ত প্রয়োজন হবে:
- LED নিজেই;
- 250-1000 ohms রেটিং সহ একটি 0.25W কারেন্ট লিমিটিং রেসিস্টর (বা তার বেশি) (LED এর উপর নির্ভর করে);
- বহিরাগত সার্কিট সংযোগ করার জন্য তার এবং একটি সোল্ডারিং লোহা।
এলইডিগুলি মাইক্রোকন্ট্রোলারের যেকোনো ডিজিটাল পিনের সাথে ক্যাথোডের সাথে সংযুক্ত থাকে, ব্যালাস্ট প্রতিরোধকের মাধ্যমে অ্যানোডের সাথে সাধারণ তারের সাথে। আপনার যদি প্রচুর পরিমাণে LED থাকে তবে আপনার অতিরিক্ত পাওয়ার সাপ্লাই প্রয়োজন হতে পারে।
এক টার্মিনালে একাধিক LED সংযোগ করা কি সম্ভব?
এটি একটি বহিরাগত LED বা LEDs এর গ্রুপ যে কোনো পিনের সাথে সংযোগ করার প্রয়োজন হতে পারে। মাইক্রোকন্ট্রোলারের একটি পিনের লোড ক্ষমতা, যেমন উপরে উল্লিখিত হয়েছে, ছোট। 15mA এর বর্তমান খরচ সহ এক বা দুটি LED সরাসরি এর সমান্তরালে সংযুক্ত করা যেতে পারে। আপনার পিনের টিকে থাকার ক্ষমতার ধারে বা তার বেশি লোড দিয়ে পরীক্ষা করা উচিত নয়। ট্রানজিস্টরের সুইচ ব্যবহার করা ভালো (ক্ষেত্র বা বাইপোলার)।
প্রতিরোধক R1 নির্বাচন করা আবশ্যক যাতে এটি মাধ্যমে বর্তমান আউটপুট বহন ক্ষমতা অতিক্রম না. সর্বোচ্চ অর্ধেক বা তার কম নেওয়া ভালো। সুতরাং, একটি মাঝারি বর্তমান সেট 10 mA, 5 ভোল্ট সাপ্লাই এ রেজিস্ট্যান্স হতে হবে 500 ওহম।.
প্রতিটি LED এর নিজস্ব ব্যালাস্ট প্রতিরোধক থাকা উচিত, এটি একটি সাধারণ প্রতিরোধকের সাথে প্রতিস্থাপন করা অবাঞ্ছিত। Rbal বেছে নেওয়া হয়েছে যাতে প্রতিটি LED তার অপারেটিং কারেন্টে সেট করা যায়। সুতরাং, একটি সরবরাহ ভোল্টেজের জন্য 5 ভোল্ট এবং একটি কারেন্ট 20 mA, প্রতিরোধের 250 ohms বা নিকটতম মান মান হওয়া উচিত।
এটা নিশ্চিত করতে হবে যে ট্রানজিস্টরের সংগ্রাহকের মাধ্যমে মোট কারেন্ট তার সর্বোচ্চ মান অতিক্রম না করে। সুতরাং একটি ট্রানজিস্টর KT3102-এর জন্য সর্বোচ্চ Ik 100 mA-তে সীমাবদ্ধ হওয়া উচিত। এর মানে হল যে 6টির বেশি LED এর সাথে একটি কারেন্টের সাথে সংযুক্ত করা যাবে না 15 mA. এটি যথেষ্ট না হলে, আপনাকে আরও শক্তিশালী সুইচ ব্যবহার করতে হবে। এই সার্কিটে একটি n-p-n ট্রানজিস্টর পছন্দ করার জন্য এটি একমাত্র সীমাবদ্ধতা। তাত্ত্বিকভাবে, আপনার ট্রায়োড লাভও বিবেচনা করা উচিত, তবে প্রদত্ত অবস্থার জন্য (ইনপুট কারেন্ট 10 এমএ, আউটপুট 100) এটি কমপক্ষে 10 হওয়া উচিত। এই h21e যেকোনো আধুনিক ট্রানজিস্টর দ্বারা উত্পাদিত হতে পারে।
এই সার্কিটটি শুধুমাত্র মাইক্রোকন্ট্রোলারের আউটপুট কারেন্ট বুস্ট করার জন্য উপযুক্ত নয়। এইভাবে আপনি একটি উচ্চ ভোল্টেজ (যেমন 12 ভোল্ট) দ্বারা চালিত বেশ শক্তিশালী অ্যাকচুয়েটর (রিলে, সোলেনয়েড, মোটর) সংযোগ করতে পারেন। গণনা করার সময়, আপনাকে অবশ্যই উপযুক্ত ভোল্টেজের মান নিতে হবে।
আপনিও ব্যবহার করতে পারেন MOSFET ট্রানজিস্টরকিন্তু Arduino আউটপুট প্রদান করতে পারে তার চেয়ে তাদের খোলার জন্য একটি উচ্চ ভোল্টেজের প্রয়োজন হতে পারে। এই ক্ষেত্রে আপনাকে অতিরিক্ত সার্কিট এবং উপাদান প্রদান করতে হবে। এটি এড়াতে আপনার তথাকথিত "ডিজিটাল" ফিল্ড ইফেক্ট ট্রানজিস্টর ব্যবহার করা উচিত - তাদের শুধুমাত্র 5টি প্রয়োজন 5 ভোল্ট খুলতে. কিন্তু তারা কম সাধারণ।
LEDs সফ্টওয়্যার নিয়ন্ত্রণ
মাইক্রোকন্ট্রোলারের আউটপুটে একটি LED সংযোগ করলে খুব বেশি কিছু হয় না।আপনাকে শিখতে হবে কিভাবে আরডুইনো থেকে প্রোগ্রাম্যাটিকভাবে LED নিয়ন্ত্রণ করতে হয়। আপনি আরডুইনো ভাষা দিয়ে এটি করতে পারেন যা C (C) এর উপর ভিত্তি করে। এই প্রোগ্রামিং ভাষা প্রাথমিক প্রশিক্ষণের জন্য সি-এর একটি অভিযোজন। এটি আয়ত্ত করার পরে, C++ এ স্থানান্তর করা কঠিন হবে না। স্কেচ লিখতে (এটি আরডুইনোর জন্য প্রোগ্রামগুলির নাম) এবং তাদের লাইভ ডিবাগ করতে, আপনাকে নিম্নলিখিতগুলি করতে হবে:
- ব্যক্তিগত কম্পিউটারে Arduino IDE পরিবেশ ইনস্টল করুন;
- আপনাকে USB যোগাযোগ চিপের জন্য ড্রাইভার ইনস্টল করতে হতে পারে;
- একটি USB-microUSB কেবল দিয়ে বোর্ডটিকে পিসিতে সংযুক্ত করুন।
আপনি সাধারণ প্রোগ্রাম এবং সার্কিট ডিবাগ করতে কম্পিউটার সিমুলেটর ব্যবহার করতে পারেন। উদাহরণস্বরূপ, প্রোটিয়াস (সংস্করণ 8 থেকে) আরডুইনো ইউনো এবং ন্যানো বোর্ডের সিমুলেশন সমর্থন করে। সিমুলেটরের সুবিধা হল যে সার্কিটটি ভুলভাবে একত্রিত হলে লোহা নিষ্ক্রিয় করা অসম্ভব।
স্কিম্যাটিক্স দুটি মডিউল নিয়ে গঠিত:
- সেটআপ - যখন প্রোগ্রামটি শুরু হয় এবং ভেরিয়েবল এবং আয়রনের মোডগুলি শুরু হয় তখন একবার কার্যকর করা হয়;
- লুপ - সেটআপের পর অসীম পর্যন্ত চক্রাকারে চলে।
জন্য এলইডি 14টি ফ্রি পিনের (পিন) মধ্যে যেকোনো একটি ব্যবহার করতে পারে, যেগুলোকে প্রায়ই ভুলভাবে পোর্ট বলা হয়। আসলে, একটি পোর্ট হল, সরলভাবে বলতে গেলে, পিনের একটি গ্রুপ। একটি পিন শুধুমাত্র একটি উপাদান.
পিন 13 এর জন্য নিয়ন্ত্রণের একটি উদাহরণ বিবেচনা করা হয় - একটি LED ইতিমধ্যেই বোর্ডে এটির সাথে সংযুক্ত রয়েছে (Uno বোর্ডে একটি রিপিটার এমপ্লিফায়ারের মাধ্যমে, ন্যানো বোর্ডের একটি প্রতিরোধকের মাধ্যমে)। পোর্ট পিনের সাথে কাজ করার জন্য এটি ইনপুট বা আউটপুট মোডে কনফিগার করা আবশ্যক। সেটআপের বডিতে এটি করা সুবিধাজনক, তবে বাধ্যতামূলক নয় - আউটপুটের গন্তব্য গতিশীলভাবে পরিবর্তন করা যেতে পারে। এর মানে হল যে প্রোগ্রামটি কার্যকর করার সময় পোর্ট ইনপুট বা আউটপুটের জন্য কাজ করতে পারে।
Arduino এর পিন 13 এর প্রারম্ভিকতা (ATmega 328 মাইক্রোকন্ট্রোলারের B পোর্ট B এর পিন PB5) এইরকম দেখাচ্ছে
অকার্যকর সেটআপ ()
{
পিনমোড (13, আউটপুট);
}
এই কমান্ডটি কার্যকর করার পরে বোর্ডের পিন 13 আউটপুট মোডে কাজ করবে এবং ডিফল্টভাবে এটির লজিক স্তর কম থাকবে। আপনি প্রোগ্রাম নির্বাহের সময় এটিতে শূন্য বা এক লিখতে পারেন। একজনের লেখা এইরকম দেখায়:
অকার্যকর লুপ ()
{
ডিজিটাল রাইট (13, উচ্চ);
}
এখন বোর্ডের পিন 13 একটি উচ্চ স্তরে সেট করা হবে, একটি যৌক্তিক, এবং এটি LED আলো জ্বালাতে ব্যবহার করা যেতে পারে।
LED বন্ধ করতে, আপনাকে অবশ্যই আউটপুট শূন্যতে সেট করতে হবে:
ডিজিটাল রাইট (13, কম);
এইভাবে আপনি পোর্ট রেজিস্টারের সংশ্লিষ্ট বিটে পর্যায়ক্রমে এক এবং শূন্য লিখে বাহ্যিক ডিভাইসগুলি নিয়ন্ত্রণ করতে পারেন।
এখন আপনি LED নিয়ন্ত্রণ করতে আরডুইনোতে প্রোগ্রামটিকে জটিল করতে পারেন এবং কীভাবে আলো-নিঃসরণকারী উপাদানটিকে ব্লিঙ্ক করতে হয় তা শিখতে পারেন:
অকার্যকর সেটআপ ()
{
পিনমোড (13, আউটপুট);
}
অকার্যকর লুপ ()
{
ডিজিটাল রাইট (13, উচ্চ);
বিলম্ব (1000);
ডিজিটাল রাইট (13, কম);
বিলম্ব (1000);
}
আদেশ বিলম্ব (1000) কমান্ড 1000 মিলিসেকেন্ড বা এক সেকেন্ডের বিলম্ব তৈরি করে। এই মান পরিবর্তন করে আপনি ফ্রিকোয়েন্সি বা LED এর ফ্ল্যাশিং ফ্রিকোয়েন্সি পরিবর্তন করতে পারেন। আপনি যদি বোর্ডের অন্য পিনের সাথে একটি বাহ্যিক LED সংযোগ করেন, তাহলে আপনাকে প্রোগ্রামে 13 এর পরিবর্তে নির্বাচিত পিনের সংখ্যাও উল্লেখ করতে হবে।
স্পষ্টতার জন্য আমরা ভিডিওগুলির একটি সিরিজ সুপারিশ করি৷
একবার আপনি আরডুইনোতে এলইডি সংযোগটি আয়ত্ত করার পরে এবং কীভাবে এটি নিয়ন্ত্রণ করতে হয় তা শিখে গেলে, আপনি পরবর্তী স্তরে যেতে পারেন এবং অন্যান্য, আরও জটিল প্রোগ্রাম লিখতে পারেন। উদাহরণস্বরূপ, আপনি শিখতে পারেন কিভাবে একটি বোতামের সাহায্যে দুই বা ততোধিক LED স্যুইচ করতে হয়, বাহ্যিক পটেনশিওমিটারের সাহায্যে ফ্ল্যাশিং ফ্রিকোয়েন্সি পরিবর্তন করতে হয়, PWM দিয়ে গ্লো এর উজ্জ্বলতা সামঞ্জস্য করতে হয়, আরজিবি-ইমিটারের রঙ পরিবর্তন করতে হয়। কাজের মাত্রা শুধুমাত্র কল্পনা দ্বারা সীমাবদ্ধ।