Welcome to Hackster!
Hackster is a community dedicated to learning hardware, from beginner to pro. Join us, it's free!
Ashutosh M Bhatt
Published © GPL3+

IR Remote Controlled LED Chaser Using Arduino

The project given here, demonstrates how to generate different chasing effect on different colour LEDs using IR remote (any remote).

BeginnerFull instructions provided1,942
IR Remote Controlled LED Chaser Using Arduino

Things used in this project

Hardware components

5 mm LED: Red
5 mm LED: Red
×1
5 mm LED: Green
5 mm LED: Green
×1
Thermopile IR Sensor, TS105-10L5.5mm
Thermopile IR Sensor, TS105-10L5.5mm
×1
Arduino UNO
Arduino UNO
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Breadboard, 270 Pin
Breadboard, 270 Pin

Story

Read more

Code

IR Remote controlled LED CHASER progra

C/C++
it can generate different LED chasing effect with help of remote
#include <IRremote.h>

int IRpin = 3;  				// pin for the IR sensor
int intr_pin = 2;
int del = 100;
IRrecv irrecv(IRpin);
decode_results results;
unsigned long int recv_code,prev_code;
void setup() 
{
 int i;
 Serial.begin(9600);
 Serial.println("IR remote control LED chaser");
 for(i=4;i<=13;i++)
   {
     pinMode(i,OUTPUT);
     digitalWrite(i,LOW);
   }
  irrecv.enableIRIn(); 				// Start the receiver 
  attachInterrupt(digitalPinToInterrupt(intr_pin), receive_code, CHANGE);
 }
void loop() 
{
   if(results.value==2210) 
        {
          effect1();
          irrecv.resume(); 
        }
    if(results.value==6308) 
        {
          effect1();
          irrecv.resume(); 
        }  
    if(results.value==2215) 
        {
          effect3();
          irrecv.resume(); 
        }  
   if(results.value==6312) 
        {
          effect4();
          irrecv.resume(); 
        } 
    if(results.value==2219) 
        {
          effect5();
          irrecv.resume(); 
        }   
    if((recv_code==6338) || (recv_code==2242))
         {
            Serial.println("blinking speed increase");
            if(del>50) del-=25;             
            irrecv.resume(); 
            while(!(irrecv.decode(&results)));  
            
         }
    if((recv_code==6292) || (recv_code==2196)) 
        {
           Serial.println("blinking speed decrease");
           if(del<200) del+=25;            
           irrecv.resume();   
           while(!(irrecv.decode(&results)));           
        } 
     delay(200);
      irrecv.resume();          
    }      
void receive_code()
  {
       if(irrecv.decode(&results)) 
         {   
           if(recv_code != results.value)
           { 
            Serial.print("received code ");
            Serial.println(results.value); 
            recv_code = results.value; 
           }               
         }        
  }   
void effect1()
  {
    int x; 
    for(x=3;x<13;x++) 
      {
        digitalWrite(x,HIGH);
        delay(del);
      } 
    delay(del);   
    for(x=3;x<13;x++) 
      {
        digitalWrite(x,LOW);
        delay(del);
      } 
    }    
void effect2()
  {
    int x;
    for(x=3;x<13;x++) 
      {
        digitalWrite(x,HIGH);
        delay(del);
        digitalWrite(x,LOW);
      } 
     delay(del);   
     for(x=12;x>3;x--) 
      {
        digitalWrite(x,HIGH);
        delay(del);
        digitalWrite(x,LOW);
      } 
    }   
void effect3()
  {
    int x;
    for(x=3;x<12;x++) 
      {
        digitalWrite(x,HIGH);
        digitalWrite(x+1,HIGH);
        delay(del);
        digitalWrite(x,LOW);
        digitalWrite(x+1,LOW);
      } 
     delay(del);
     for(x=12;x>4;x--) 
      {
        digitalWrite(x,HIGH);
        digitalWrite(x-1,HIGH);
        delay(del);
        digitalWrite(x,LOW);
        digitalWrite(x-1,LOW);
      }  
   }    
void effect4()
  {
    int x;       
    for(x=3;x<=8;x++) 
      {
        digitalWrite(x,HIGH);
        digitalWrite(15-x,HIGH);
        delay(del);
      } 
    delay(del);   
    for(x=8;x>=3;x--) 
      {
        digitalWrite(x,LOW);
        digitalWrite(15-x,LOW);
      }   
   }       
 void effect5()
  {
    int x;
    for(x=8;x>=3;x--) 
      {
        digitalWrite(x,HIGH);
        digitalWrite(15-x,HIGH);
        delay(del);
      } 
    delay(del);   
    for(x=3;x<=8;x++) 
      {
        digitalWrite(x,LOW);
        digitalWrite(15-x,LOW);
      }   
   }     

Credits

Ashutosh M Bhatt
5 projects • 39 followers
Contact

Comments

Please log in or sign up to comment.