সুচিপত্র:

Arduino সঙ্গে রঙ মিশুক: 9 ধাপ (ছবি সহ)
Arduino সঙ্গে রঙ মিশুক: 9 ধাপ (ছবি সহ)

ভিডিও: Arduino সঙ্গে রঙ মিশুক: 9 ধাপ (ছবি সহ)

ভিডিও: Arduino সঙ্গে রঙ মিশুক: 9 ধাপ (ছবি সহ)
ভিডিও: CS50 2013 - Week 9 2024, নভেম্বর
Anonim
Image
Image

লেখক দ্বারা আরো অনুসরণ করুন:

Arduino সঙ্গে রঙ গোলক
Arduino সঙ্গে রঙ গোলক
ডিজাইন প্রক্রিয়া সহ ডুডল বট
ডিজাইন প্রক্রিয়া সহ ডুডল বট
ডিজাইন প্রক্রিয়া সহ ডুডল বট
ডিজাইন প্রক্রিয়া সহ ডুডল বট
Arduino টাচ পিয়ানো
Arduino টাচ পিয়ানো
Arduino টাচ পিয়ানো
Arduino টাচ পিয়ানো

সম্পর্কে: সর্বদা শেখা….. tliguori330 সম্পর্কে আরও »

Arduino- এর সাথে কাজ এবং বেড়ে ওঠার জন্য একটি রঙ মিশ্রণকারী একটি দুর্দান্ত প্রকল্প। এই নির্দেশের শেষে আপনি 3 টি গুঁড়ি ঘুরিয়ে কল্পনাযোগ্য প্রায় প্রতিটি রঙ মিশ্রিত করতে এবং মিলাতে সক্ষম হবেন। দক্ষতার মাত্রা যথেষ্ট কম যে এমনকি একটি সম্পূর্ণ রুকি সফলভাবে এটি সম্পন্ন করতে পারে, তবে একজন অভিজ্ঞ পশুচিকিত্সকের জন্য উপভোগ্য হওয়ার জন্য যথেষ্ট আকর্ষণীয়। এই প্রকল্পের খরচ কোন কিছুর পরেই নয় এবং বেশিরভাগ Arduino কিট প্রয়োজনীয় উপকরণ নিয়ে আসে। এই কোডের মূলে রয়েছে কিছু তহবিল arduino ফাংশন যা arduino ব্যবহার করে যে কেউ বুঝতে চাইবে। আমরা analogRead () এবং analogWrite () ফাংশন সম্পর্কে গভীরভাবে যাব কারণ আমরা আরেকটি স্বাভাবিক ফাংশন হিসাবে মানচিত্র () নামে পরিচিত। এই লিঙ্কগুলি আপনাকে এই ফাংশনগুলির জন্য arduino রেফারেন্স পৃষ্ঠাগুলিতে নিয়ে আসে।

ধাপ 1: যন্ত্রাংশ এবং কম্পোনেট

যন্ত্রাংশ এবং কম্পোনেট
যন্ত্রাংশ এবং কম্পোনেট
যন্ত্রাংশ এবং কম্পোনেট
যন্ত্রাংশ এবং কম্পোনেট
যন্ত্রাংশ এবং কম্পোনেট
যন্ত্রাংশ এবং কম্পোনেট
যন্ত্রাংশ এবং কম্পোনেট
যন্ত্রাংশ এবং কম্পোনেট

আরডুইনো উনো

পোটেন্টিওমিটার (x3)

আরজিবি এলইডি

220 ওহম প্রতিরোধক (x3)

জাম্পার তার (x12)

রুটি বোর্ড

পদক্ষেপ 2: আপনার অগ্রগতির পরিকল্পনা করুন

আপনার অগ্রগতির পরিকল্পনা করুন
আপনার অগ্রগতির পরিকল্পনা করুন

আপনি কীভাবে আপনার প্রকল্পটি সম্পন্ন করবেন তা পরিকল্পনা করা খুব সহায়ক হতে পারে। কোডিং হল এক ধাপ থেকে পরবর্তী ধাপের যৌক্তিক অগ্রগতি। আমি একটি ফ্লো চার্ট বানিয়েছি যা আমার স্কেচ কিভাবে চালাতে চায় তা তুলে ধরে। সামগ্রিক লক্ষ্য হল একটি RGB LED এর তিনটি রঙের প্রতিটিতে 3 টি knob (potentiometers) নিয়ন্ত্রণ করা। এটি সম্পন্ন করার জন্য আমাদের ফ্লো চার্টের সাথে মিলে একটি স্কেচ তৈরি করতে হবে। আমরা চাইব ….

1) 3 টি ভিন্ন পোটেন্টিওমিটার পড়ুন এবং ভেরিয়েবলে তাদের মান সংরক্ষণ করুন।

2) আমরা সেই মানগুলিকে RGB LED এর পরিসরের সাথে মিলিয়ে রূপান্তর করব।

3) তারপর পরিশেষে আমরা সেই রূপান্তরিত মানগুলিকে RGB- এর প্রতিটি রঙে লিখব।

ধাপ 3: পটেন্টিওমিটার কিভাবে ব্যবহার করবেন

পোটেন্টিওমিটার কিভাবে ব্যবহার করবেন
পোটেন্টিওমিটার কিভাবে ব্যবহার করবেন
পোটেন্টিওমিটার কিভাবে ব্যবহার করবেন
পোটেন্টিওমিটার কিভাবে ব্যবহার করবেন

ইলেকট্রনিক্স কিটের অন্যতম মৌলিক উপাদান, পটেন্টিওমিটার বিভিন্ন প্রকল্পে ব্যবহার করা যেতে পারে। পটেন্টিওমিটার ব্যবহারকারীকে সার্কিটের প্রতিরোধ ক্ষমতা শারীরিকভাবে পরিবর্তন করার অনুমতি দিয়ে কাজ করে। একটি পটেন্টিওমিটারের সবচেয়ে কৃষি উদাহরণ হল একটি হালকা ডিমার। স্লাইডিং বা একটি গাঁট ঘুরানো সার্কিটের দৈর্ঘ্য পরিবর্তন করে। একটি দীর্ঘ পথ আরো প্রতিরোধের ফলাফল। বর্ধিত প্রতিরোধ বিপরীতভাবে বর্তমানকে কমিয়ে দেয় এবং আলো কমিয়ে দেয়। এগুলি বিভিন্ন আকৃতির এবং আকারের হতে পারে তবে বেশিরভাগের একই মৌলিক সেটআপ রয়েছে। একজন ছাত্র তার গিটার ঠিক করার জন্য সাহায্য চেয়েছিল এবং আমরা জানতে পারলাম যে এটির গাঁটগুলি ঠিক পটেন্টিওমিটারের মতো। সাধারণভাবে আপনি বাইরের পা 5 ভোল্ট এবং মাটিতে সংযুক্ত ছিলেন এবং মাঝের পা A0 এর মতো একটি এনালগ পিনে যায়

ধাপ 4: (3x) পটেন্টিওমিটারের জন্য ওয়্যারিং স্কিম্যাটিক

(3x) পোটেন্টিওমিটারের জন্য ওয়্যারিং স্কিম্যাটিক
(3x) পোটেন্টিওমিটারের জন্য ওয়্যারিং স্কিম্যাটিক
(3x) পোটেন্টিওমিটারের জন্য ওয়্যারিং স্কিম্যাটিক
(3x) পোটেন্টিওমিটারের জন্য ওয়্যারিং স্কিম্যাটিক
(3x) পোটেন্টিওমিটারের জন্য ওয়্যারিং স্কিম্যাটিক
(3x) পোটেন্টিওমিটারের জন্য ওয়্যারিং স্কিম্যাটিক

সবচেয়ে বাম পা 5v এবং ডান সবচেয়ে পা GND এর সাথে সংযুক্ত হবে। আপনি আসলে এই দুটি ধাপকে বিপরীত করতে পারেন এবং এটি প্রকল্পটিকে খুব বেশি ক্ষতি করবে না। যে সব পরিবর্তন হবে তা হল বাঁকে বাঁকানো সমস্ত পথ বন্ধ করার পরিবর্তে সম্পূর্ণ উজ্জ্বলতা হবে। মাঝের পাটি আরডুইনোতে একটি এনালগ পিনের সাথে সংযুক্ত থাকবে। যেহেতু আমাদের তিনটি গিঁট থাকবে, তাই আমরা যে কাজটি করেছি তা তিনগুণ করতে চাই। প্রতিটি গিঁট 5v এবং GND প্রয়োজন যাতে সেগুলি একটি রুটি বোর্ড ব্যবহার করে ভাগ করা যায়। রুটি বোর্ডে লাল ফালাটি 5 ভোল্টের সাথে সংযুক্ত এবং নীল ফালাটি মাটির সাথে সংযুক্ত। প্রতিটি knobs এর নিজস্ব এনালগ পিন প্রয়োজন যাতে তারা A0, A1, A2 এর সাথে সংযুক্ত থাকে।

ধাপ 5: AnalogRead () এবং ভেরিয়েবল ব্যবহার করে

আপনার সাথে পটেনশিওমিটার সঠিকভাবে সেট আপ আমরা সেই মানগুলি পড়ার জন্য প্রস্তুত। যখন আমরা এটি করতে চাই তখন আমরা analogRead () ফাংশন ব্যবহার করি। সঠিক বাক্য গঠন হল analogRead (পিন#); তাই আমাদের মধ্যম পটেনশিওমিটার পড়ার জন্য আমরা analogRead (A1); নুড থেকে আরডুইনোতে পাঠানো সংখ্যাগুলির সাথে কাজ করার জন্য, আমরা সেই সংখ্যাগুলিকে একটি ভেরিয়েবলে সংরক্ষণ করতে চাই। কোডের লাইন এই কাজটি সম্পন্ন করবে যখন আমরা পোটেন্টিওমিটার পড়ি এবং তার বর্তমান সংখ্যাটি পূর্ণসংখ্যা ভেরিয়েবল "val" এ সংরক্ষণ করি

int val = analogRead (A0);

ধাপ 6: 1 নবের সাথে সিরিয়াল মনিটর ব্যবহার করা

Image
Image

বর্তমানে আমরা knobs থেকে মান পেতে এবং একটি পরিবর্তনশীল তাদের সংরক্ষণ করতে সক্ষম, কিন্তু এটি সহায়ক হবে যদি আমরা এই মান দেখতে পারে। এটি করার জন্য আমাদের অন্তর্নির্মিত সিরিয়াল মনিটর ব্যবহার করতে হবে। নীচের কোডটি প্রথম স্কেচ যা আমরা আসলে Arduino IDE তে চালাব যা তাদের সাইটে ডাউনলোড করা যাবে। অকার্যকর সেটআপ () এ আমরা প্রতিটি মধ্য পায়ের সাথে সংযুক্ত এনালগ পিনগুলিকে একটি ইনপুট হিসাবে সক্রিয় করব এবং Serial.begin (9600) ব্যবহার করে সিরিয়াল মনিটর সক্রিয় করব; পরবর্তী আমরা শুধুমাত্র একটি knobs পড়ুন এবং এটি আগের মত একটি পরিবর্তনশীল সংরক্ষণ করুন। এখন পরিবর্তন হচ্ছে আমরা একটি লাইন যোগ করেছি যা ভেরিয়েবলে কোন সংখ্যাটি সংরক্ষণ করে তা প্রিন্ট করে। যদি আপনি স্কেচ কম্পাইল করে চালান তাহলে আপনি আপনার সিরিয়াল মনিটর খুলতে পারেন এবং স্ক্রিনে স্ক্রল করা সংখ্যা দেখতে পারেন। প্রতিবার কোড লুপ হয়ে গেলে আমরা আরেকটি সংখ্যা পড়ছি এবং মুদ্রণ করছি। যদি আপনি A0 এর সাথে সংযুক্ত গাঁটটি চালু করেন তবে আপনার 0-1023 থেকে মানগুলি দেখতে হবে। পরবর্তীতে লক্ষ্য হবে 3 টি পন্টিওমিটার পড়ার জন্য যা সংরক্ষণ এবং মুদ্রণের জন্য 2 টি আরও এনালগ রিড এবং 2 টি ভিন্ন ভেরিয়েবলের প্রয়োজন হবে।

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

পিনমোড (A0, INPUT); পিনমোড (এ 1, ইনপুট); পিনমোড (A2, INPUT); Serial.begin (9600); } অকার্যকর লুপ () {int val = analogRead (A0); Serial.println (val); }

ধাপ 7: RGB LED ব্যবহার করা

RGB LED ব্যবহার করে
RGB LED ব্যবহার করে
RGB LED ব্যবহার করে
RGB LED ব্যবহার করে
RGB LED ব্যবহার করে
RGB LED ব্যবহার করে

4 লেগড আরজিবি LED আমি আরডুইনোর জন্য আমার প্রিয় উপাদানগুলির মধ্যে একটি। আমি খুঁজে পাচ্ছি যে এটি 3 টি মৌলিক রঙের মিশ্রণ থেকে অন্তহীন রং তৈরি করতে সক্ষম। সেট আপ যে কোন নিয়মিত LED এর মত কিন্তু এখানে আমরা মূলত একটি লাল, নীল এবং সবুজ LED গুলি একসাথে সংযুক্ত করেছি। সংক্ষিপ্ত পাগুলি আরডুইনোতে PWM পিনের একটি দ্বারা নিয়ন্ত্রিত হবে। একটি সাধারণ অ্যানোড বা সাধারণ ক্যাথোড LED এর উপর নির্ভর করে দীর্ঘতম পাটি 5 ভোল্ট বা মাটিতে সংযুক্ত হবে। সমস্যা সমাধানের জন্য আপনাকে উভয় উপায় চেষ্টা করতে হবে। আমরা ইতিমধ্যেই 5v এবং GND কে ব্রেডবোর্ডের সাথে সংযুক্ত করব যাতে এটি পরিবর্তন করা সহজ হয়। উপরের চিত্রটি 3 টি প্রতিরোধক ব্যবহার করে দেখায়। আমি আসলে এই ধাপটি প্রায়ই এড়িয়ে যাই কারণ আমার কাছে ছিল না এবং LED আমার উপর আঘাত হানে।

রং তৈরির জন্য আমরা কতটা লাল, নীল বা সবুজ যোগ করতে পারি তা নিয়ন্ত্রণ করতে analogWrite () ফাংশন ব্যবহার করব। এই ফাংশনটি ব্যবহার করতে আপনাকে বলতে হবে কোন পিন# আমরা কথা বলব এবং 0-255 এর মধ্যে একটি নম্বর। 0 সম্পূর্ণরূপে বন্ধ এবং 255 একটি রঙের সর্বোচ্চ পরিমাণ। লাল পাকে পিন,, সবুজ থেকে পিন ১০ এবং নীল থেকে পিন ১১ এর সাথে সংযোগ করা যাক। কোন লেগটি কোন রঙ তা বের করতে কিছুটা পরীক্ষা এবং ত্রুটি লাগতে পারে। যদি আমি একটি বেগুনি রঙ করতে চাই তবে আমি অনেকটা লাল, সবুজ এবং নীল রঙের অর্ধেক শক্তি করতে পারতাম। আমি আপনাকে এই সংখ্যাগুলির সাথে টিঙ্কার করতে উত্সাহিত করি, এটি সত্যিই উত্তেজনাপূর্ণ। কিছু সাধারণ উদাহরণ উপরের ছবিতে রয়েছে

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

পিনমোড (9, আউটপুট); পিনমোড (10, আউটপুট); পিনমোড (11, আউটপুট); } অকার্যকর লুপ () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

ধাপ 8: RGB LED নিয়ন্ত্রণ করতে Potentiometers ব্যবহার করা (এক বাগ সহ)

RGB LED নিয়ন্ত্রণ করতে Potentiometers ব্যবহার করে (এক বাগ সহ)
RGB LED নিয়ন্ত্রণ করতে Potentiometers ব্যবহার করে (এক বাগ সহ)
RGB LED নিয়ন্ত্রণ করতে Potentiometers ব্যবহার করে (এক বাগ সহ)
RGB LED নিয়ন্ত্রণ করতে Potentiometers ব্যবহার করে (এক বাগ সহ)
RGB LED নিয়ন্ত্রণ করতে Potentiometers ব্যবহার করে (এক বাগ সহ)
RGB LED নিয়ন্ত্রণ করতে Potentiometers ব্যবহার করে (এক বাগ সহ)

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

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

পিনমোড (A0, INPUT); পিনমোড (এ 1, ইনপুট); পিনমোড (A2, INPUT); পিনমোড (9, আউটপুট); পিনমোড (10, আউটপুট); পিনমোড (11, আউটপুট); } অকার্যকর সেটআপ () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }

ধাপ 9: বোনাস: ম্যাপ () ফাংশন এবং ক্লিনার কোড

আপনি লক্ষ্য করতে পারেন যে আপনি একটি রঙের জন্য গাঁট বাঁকতে শুরু করলে এটি বৃদ্ধি পাবে এবং তারপর হঠাৎ করে নিচে নেমে যাবে। ক্রমবর্ধমান এই প্যাটার্ন এবং তারপর দ্রুত বন্ধ 4 বার পুনরাবৃত্তি হিসাবে আপনি গিঁট সব উপায় আপ। যদি আপনি মনে করেন আমরা বলেছিলাম যে পোটেন্টিওমিটার 0 থেকে 1023 এর মধ্যে মান পড়তে পারে। বাগ নামক মানচিত্র ()। আপনি এক ধাপে সংখ্যার একটি পরিসরকে অন্য পরিসরের সংখ্যায় রূপান্তর করতে পারেন। আমরা 0-1023 থেকে সংখ্যাগুলিকে 0-255 থেকে সংখ্যায় রূপান্তর করব। উদাহরণস্বরূপ, যদি গাঁটটি অর্ধেক পথে সেট করা হয় তবে এটি 512 সম্পর্কে পড়তে হবে। সেই সংখ্যাটি 126 তে পরিবর্তিত হবে যা LED এর অর্ধেক শক্তি। এই চূড়ান্ত স্কেচে আমি আমার সুবিধার জন্য পরিবর্তনশীল নাম সহ পিনের নাম দিয়েছি। আপনার কাছে এখন পরীক্ষা করার জন্য একটি সম্পূর্ণ রঙের মিশুক আছে !!!

// potentiometer পিনের পরিবর্তনশীল নাম

int redPot = A0; int greenPot = A1; int bluePot = A2 // RGB পিনের জন্য পরিবর্তনশীল নাম int redLED = 9; int greenLED = 10; int blueLED = 11; অকার্যকর সেটআপ () {পিনমোড (রেডপট, ইনপুট); pinMode (greenPOT, INPUT); পিনমোড (নীলপট, ইনপুট); pinMode (redLED, OUTPUT); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); সিরিয়াল, শুরু (9600); } void loop () {// potentiometers int redVal = analogRead (redPot) থেকে মান পড়ুন এবং সংরক্ষণ করুন; int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // RGB LED redVal = মানচিত্র (redVal, 0, 1023, 0, 255) এর জন্য মান 0-1023 থেকে 0-255 রূপান্তর করুন; greenVal = মানচিত্র (greenVal, 0, 1023, 0, 255); blueVal = মানচিত্র (blueVal, 0, 1023, 0, 255); // এই রূপান্তরিত মানগুলি RGB LED analogWrite (redLED, redVal) এর প্রতিটি রঙে লিখুন; anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // সিরিয়াল মনিটরের মান দেখান Serial.print ("লাল:"); Serial.print (redVal); সিরিয়াল.প্রিন্ট ("সবুজ:"); Serial.print (greenVal); সিরিয়াল.প্রিন্ট ("নীল:"); Serial.println (blueVal); }

প্রস্তাবিত: