IR Remote Controlled Lamp (Color changing)

আজকে আমরা তৈরী করব একটি আইআর রিমোট কন্ট্রোল্ড কালার চেঞ্জিং ল্যাম্প। এই এক্সপেরিমেন্টে আমরা একটি আইআর রিমোটের মাধ্যমে একটি RGB LED এর রঙ পরিবর্তন করব। এই এক্সপেরিমেন্টটি টিভি রিমোট দিয়ে সহজেই করা যাবে।

আমরা ইতোমধ্যেই জেনেছি

  • রিমোট কন্ট্রোল কিভাবে কাজ করে।
  • কিভাবে একটি রিমোট কন্ট্রোলকে আরডুইনোর সাথে ইন্টারফেস করা যায়।
  • আইআর ট্রান্সমিটার ও রিসিভার পেয়ার কিভাবে একসাথে কাজ করে।

এগুলো ছাড়াও এই এক্সপেরিমেন্টের মাধ্যমে আমরা আরও জানতে পারব

  • আইআর ট্রান্সমিটারের পাঠানো সিগন্যালকে আরডুইনোর মাধ্যমে ডিকোড করা যায়।
  • কিভাবে একটি RGB LED এর তিনটি রঙ বিভিন্ন অনুপাতে মিশিয়ে নানা রঙয়ের আলো সৃষ্টি করা যায়।
  • কিভাবে আইআর রিমোটের মাধ্যমে এলইডির রঙ পরিবর্তন করা যায়।

IR communication নিয়ে কিছু কথা

একটি IR communication সিস্টেমে দুটি প্রধান কম্পোনেন্ট থাকেঃ

  1. IR Transmitter
  2. IR Receiver

1. IR Transmitter

IR Transmitter হলো একটি ইনফ্রারেড এলইডি।

IR Transmitter

আপনারা আপনাদের ব্যবহৃত টিভি কিংবা এসির রিমোটের মাথাতেই এই এলইডি দেখতে পাবেন। এই আইআর এলইডিগুলোর ফ্রিকোয়েন্সি 38Khz। অর্থ্যাৎ, আপনি রিমোটের যেকোনো একটি বাটন একবার প্রেস করলেই এই এলইডি সেকেন্ডে ৩৮ হাজার বার অন-অফ হয়। ঠিক বাটন প্রেস করার মুহূর্তে যদি IR Transmitter এলইডির সাথে একটি অসিলোস্কোপ সংযুক্ত করা হয়, তাহলে নিচের ছবির মতো দেখা যাবে। এটি একটি মড্যুলেটেড সিগন্যাল।

IR Transmitter কর্তৃক পাঠানো সিগন্যাল

2. IR Receiver

এটি একটি তিন পিনবিশিষ্ট কম্পোনেন্ট।

IR Receiver Shielded

IR receiver shileded- pinout

IR Transmitter এর পাঠানো মড্যুলেটেড সিগন্যালকে IR Receiver গ্রহণ করে। সিগন্যাল গ্রহণ করার পর আইআর রিসিভার সিগন্যালটিকে ডিমড্যুলেশনের মাধ্যমে একটি বাইনারি ওয়েভফর্ম তৈরী করে। এই ওয়েভফর্মটি দেখতে নিচের ছবির মতো। আইআর রিসিভারের আউটপুট পিনে এই ওয়েভফর্ম উৎপন্ন হবে।

IR Receiver Output

আমাদের এক্সপেরিমেন্টে 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’ সংখ্যাটি পাঠায়। যা আরডুইনোর সিরিয়াল মনিটরে দেখা যায়।

Com7

এই কারনেই আমরা আমাদের প্রোগ্রামে 1 এর জন্য case 16:

লাইনটি লিখেছি। আমরা অন্যান্য বাটনগুলোও প্রেস করে সিরিয়াল মনিটরে ভ্যালুগুলো দেখেছি। এরপর সেই অনুযায়ী কেসগুলো ডিফাইন করেছি। আপনারা এক্সপেরিমেন্টটি করার সময় আগে সিরিয়াল মনিটরে দেখে নেবেন আপনাদের রিমোটগুলো একেকটি সুইচ প্রেস করলে কী ভ্যালু পাঠায়। সেই অনুযায়ী আপনাদেরকে কেসগুলো পরিবর্তন করতে হতে পারে।

পরীক্ষাঃ

কোড আপলোড করার পর এলইডি নিভে থাকবে।

IR remote controlled lamp without light

আইআর রিমোটের সুইচগুলো 1 থেকে 8 পর্যন্ত প্রেস করে এলইডির রঙ পরিবর্তন করা যাবে।

IR remote controlled lamp with light

IR remote controlled lamp (Red light)

চিত্র: লালের জন্য 1 প্রেস করুন

IR remote controlled lamp green light)

চিত্র: সবুজের জন্য 2 প্রেস করুন

IR remote controlled lamp (blue light)

চিত্র: নীলের জন্য 3 প্রেস করুন

IR remote controlled lamp (blue light) 2

চিত্র: সায়ানের জন্য 4 প্রেস করুন

IR remote controlled lamp white light)

চিত্র: সাদার জন্য 5 প্রেস করুন

IR remote controlled lamp yellow light)

চিত্র: হলুদের জন্য 6 প্রেস করুন

IR remote controlled lamp purple light)

চিত্র: বেগুনীর জন্য 7 প্রেস করুন

IR remote controlled lamp orange light)

চিত্র: কমলার জন্য 8 প্রেস করুন

রিমোটের ‘অফ’ বাটন প্রেস করে এলইডিকে অফ করে রাখা যাবে। সার্কিটটির জন্য ইচ্ছেমতো একটি এনক্লোজারও বানিয়ে নেওয়া যায়। এক্ষেত্রে অবশ্যই সার্কিটটিকে ব্যাটারি দিয়ে পাওয়ার দিতে হবে।

IR remote controlled lamp

Rate this post
Share with your friends
Default image
TSBlog
Articles: 42

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.