আজকে আমরা তৈরী করব একটি আইআর রিমোট কন্ট্রোল্ড কালার চেঞ্জিং ল্যাম্প। এই এক্সপেরিমেন্টে আমরা একটি আইআর রিমোটের মাধ্যমে একটি RGB LED এর রঙ পরিবর্তন করব। এই এক্সপেরিমেন্টটি টিভি রিমোট দিয়ে সহজেই করা যাবে।
আমরা ইতোমধ্যেই জেনেছি
- রিমোট কন্ট্রোল কিভাবে কাজ করে।
- কিভাবে একটি রিমোট কন্ট্রোলকে আরডুইনোর সাথে ইন্টারফেস করা যায়।
- আইআর ট্রান্সমিটার ও রিসিভার পেয়ার কিভাবে একসাথে কাজ করে।
এগুলো ছাড়াও এই এক্সপেরিমেন্টের মাধ্যমে আমরা আরও জানতে পারব
- আইআর ট্রান্সমিটারের পাঠানো সিগন্যালকে আরডুইনোর মাধ্যমে ডিকোড করা যায়।
- কিভাবে একটি RGB LED এর তিনটি রঙ বিভিন্ন অনুপাতে মিশিয়ে নানা রঙয়ের আলো সৃষ্টি করা যায়।
- কিভাবে আইআর রিমোটের মাধ্যমে এলইডির রঙ পরিবর্তন করা যায়।
IR communication নিয়ে কিছু কথা
একটি IR communication সিস্টেমে দুটি প্রধান কম্পোনেন্ট থাকেঃ
- IR Transmitter
- IR Receiver
1. IR Transmitter
IR Transmitter হলো একটি ইনফ্রারেড এলইডি।
আপনারা আপনাদের ব্যবহৃত টিভি কিংবা এসির রিমোটের মাথাতেই এই এলইডি দেখতে পাবেন। এই আইআর এলইডিগুলোর ফ্রিকোয়েন্সি 38Khz। অর্থ্যাৎ, আপনি রিমোটের যেকোনো একটি বাটন একবার প্রেস করলেই এই এলইডি সেকেন্ডে ৩৮ হাজার বার অন-অফ হয়। ঠিক বাটন প্রেস করার মুহূর্তে যদি IR Transmitter এলইডির সাথে একটি অসিলোস্কোপ সংযুক্ত করা হয়, তাহলে নিচের ছবির মতো দেখা যাবে। এটি একটি মড্যুলেটেড সিগন্যাল।
2. IR Receiver
এটি একটি তিন পিনবিশিষ্ট কম্পোনেন্ট।
IR Transmitter এর পাঠানো মড্যুলেটেড সিগন্যালকে IR Receiver গ্রহণ করে। সিগন্যাল গ্রহণ করার পর আইআর রিসিভার সিগন্যালটিকে ডিমড্যুলেশনের মাধ্যমে একটি বাইনারি ওয়েভফর্ম তৈরী করে। এই ওয়েভফর্মটি দেখতে নিচের ছবির মতো। আইআর রিসিভারের আউটপুট পিনে এই ওয়েভফর্ম উৎপন্ন হবে।
আমাদের এক্সপেরিমেন্টে IR Receiver এর আউটপুট পিনকে আরডুইনোর একটি ডিজিটাল পিনে সংযুক্ত করা হবে। ট্রান্সমিটার হিসেবে কাজ করবে এসি বা টিভির রিমোট।
প্রয়োজনীয় যন্ত্রপাতি | পরিমাণ | প্রোডাক্ট লিংক |
Arduino UNO R3/Arduino Mega 2560 | 1 | লিংক |
IR Receiver shielded | 1 | লিংক |
LED – RGB Diffused Common Cathode | 1 | লিংক |
330 ohm resistor ¼ watt | 3 | লিংক |
Male to male jumper wire | 6 | লিংক |
Breadboard | 1 | লিংক |
Any IR Remote | 1 |
সার্কিট কানেকশন
নিচের কানেকশনগুলো সম্পন্ন করুন।
Arduino UNO/Mega | IR Receiver | RGB LED |
5V | VCC | |
GND | GND | GND |
2 | OUTPUT | |
3 | R pin Through 330 ohm resistor | |
5 | G pin Through 330 ohm resistor | |
6 | B pin Through 330 ohm resistor |
সার্কিট ডায়াগ্রাম
প্রোগ্রাম
লাইব্রেরি ইন্সটলেশনঃ
এই লিংক থেকে Arduino-IRremote লাইব্রেরিটি ডাউনলোড করুন এবং ইন্সটল করুন।
নিচের প্রোগ্রামটি আরডুইনোতে আপলোড করুন।
#include <IRremote.h> int RECV_PIN =2; int bluePin = 6; int greenPin = 5; int redPin = 3; IRrecv irrecv(RECV_PIN); decode_results results; void setup(){ Serial.begin(9600); irrecv.enableIRIn(); pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void loop(){ if (irrecv.decode(&results)){ int value = results.value; Serial.println(value); switch(value){ //set color red case 16: //Keypad button "1" delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 255); analogWrite(greenPin,0); analogWrite(bluePin, 0); } switch(value){ //set color green case 2064: //Keypad button "2" delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 0); analogWrite(greenPin,255); analogWrite(bluePin, 0); } switch(value){ //set color blue case 1040: //Keypad button "3" delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 255); } switch(value){ //set color cyan case 3088://Keypad button "4" delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 0); analogWrite(greenPin,255); analogWrite(bluePin,255); } switch(value){ //set color white case 528://Keypad button "5" delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 255); analogWrite(greenPin,255); analogWrite(bluePin,255); } switch(value){ //set color Yellow case 2576://Keypad button "6" delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 255); analogWrite(greenPin,255); analogWrite(bluePin,0); } switch(value){ //set color purple case 1552://Keypad button "7" delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 255); analogWrite(greenPin,0); analogWrite(bluePin,255); } switch(value){ //set color orange case 3600://Keypad button "8" delay(50); analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); delay(50); analogWrite(redPin, 250); analogWrite(greenPin,50); analogWrite(bluePin,0); } switch(value){ // case 25979: //Keypad button "off" //LED off case 2704: analogWrite(redPin, 0); analogWrite(greenPin,0); analogWrite(bluePin, 0); } irrecv.resume(); } }
লক্ষ্য করুনঃ
আমরা আমাদের এক্সপেরিমেন্টে Sony টিভির রিমোট ব্যবহার করেছিলাম। উপরের কোড আপলোড করার পর এই রিমোটে 1 প্রেস করলে রিমোটটি ‘16’ সংখ্যাটি পাঠায়। যা আরডুইনোর সিরিয়াল মনিটরে দেখা যায়।
এই কারনেই আমরা আমাদের প্রোগ্রামে 1 এর জন্য case 16:
লাইনটি লিখেছি। আমরা অন্যান্য বাটনগুলোও প্রেস করে সিরিয়াল মনিটরে ভ্যালুগুলো দেখেছি। এরপর সেই অনুযায়ী কেসগুলো ডিফাইন করেছি। আপনারা এক্সপেরিমেন্টটি করার সময় আগে সিরিয়াল মনিটরে দেখে নেবেন আপনাদের রিমোটগুলো একেকটি সুইচ প্রেস করলে কী ভ্যালু পাঠায়। সেই অনুযায়ী আপনাদেরকে কেসগুলো পরিবর্তন করতে হতে পারে।
পরীক্ষাঃ
কোড আপলোড করার পর এলইডি নিভে থাকবে।
আইআর রিমোটের সুইচগুলো 1 থেকে 8 পর্যন্ত প্রেস করে এলইডির রঙ পরিবর্তন করা যাবে।
চিত্র: লালের জন্য 1 প্রেস করুন
চিত্র: সবুজের জন্য 2 প্রেস করুন
চিত্র: নীলের জন্য 3 প্রেস করুন
চিত্র: সায়ানের জন্য 4 প্রেস করুন
চিত্র: সাদার জন্য 5 প্রেস করুন
চিত্র: হলুদের জন্য 6 প্রেস করুন
চিত্র: বেগুনীর জন্য 7 প্রেস করুন
চিত্র: কমলার জন্য 8 প্রেস করুন
রিমোটের ‘অফ’ বাটন প্রেস করে এলইডিকে অফ করে রাখা যাবে। সার্কিটটির জন্য ইচ্ছেমতো একটি এনক্লোজারও বানিয়ে নেওয়া যায়। এক্ষেত্রে অবশ্যই সার্কিটটিকে ব্যাটারি দিয়ে পাওয়ার দিতে হবে।
]]>