top of page

Safari browser sometimes has issues displaying images...

I.e: *you have to click on the images to see them...

For a better browsing experience on Brainy-Bits

Please use Chrome, Edge or Firefox browser.

Writer's pictureBrainy-Bits

Control a Stepper Motor with an Arduino and IR Remote



OVERVIEW


Here’s a fun and easy way to control a Stepper motor at a distance using an IR Remote control.


The stepper we are using comes with its own driver board making it easy to connect to our UNO.


Since we don’t want to drive the motor directly from the UNO, we will be using an inexpensive little breadboard power supply that plugs right on our breadboard and power it with a 9V 1Amp power supply.


The IR sensor is connected to the UNO directly since it uses almost no power.

 

PARTS USED

Breadboard Power Supply


IR Remote with receiver


Stepper Motor


These are Amazon affiliate links...

They don't cost you anything and it helps me keep the lights on

if you buy something on Amazon. Thank you!

 

CONNECTIONS


We are using 4 pins to control the Stepper and 1 pin for the IR sensor.


Pin 8-11 are controlling the Stepper motor and pin 6 in Receiving the IR information.


We connect the 5V and Ground from to UNO to the sensor and as a precaution, use a breadboard power supply to power the Stepper motor since it can use more power and we don’t want to damage the power supply of the UNO.

 

THE CODE


We use 2 Libraries in our Sketch:  “IRremote” and “Stepper”.


The “Stepper” library is included by default with the Arduino Software install.


You will need to download the “IRremote” library and extract it to your Library folder.

The code below only recognize 2 values from the IR Remote control: UP and DOWN.


When UP is pressed on the remote the motor will make a full rotation clockwise.


DOWN will make a full rotation counter-clockwise.


As always you can have a look at the tutorial video for more information.


#include "Stepper.h"
#include "IRremote.h"

/*----- Variables, Pins -----*/
#define STEPS  32   // Number of steps per revolution of Internal shaft
int  Steps2Take;  // 2048 = 1 Revolution
int receiver = 6; // Signal Pin of IR receiver to Arduino Digital Pin 6

/*-----( Declare objects )-----*/
// Setup of proper sequencing for Motor Driver Pins
// In1, In2, In3, In4 in the sequence 1-3-2-4

Stepper small_stepper(STEPS, 8, 10, 9, 11);
IRrecv irrecv(receiver);    // create instance of 'irrecv'
decode_results results;     // create instance of 'decode_results'

void setup()
{ 
  irrecv.enableIRIn(); // Start the receiver
}

void loop()
{
if (irrecv.decode(&results)) // have we received an IR signal?

  {
    switch(results.value)

    {

      case 0xFF629D: // UP button pressed
                      small_stepper.setSpeed(500); //Max seems to be 700
                      Steps2Take  =  2048;  // Rotate CW
                      small_stepper.step(Steps2Take);
                      delay(2000); 
                      break;

      case 0xFFA857: // DOWN button pressed
                      small_stepper.setSpeed(500);
                      Steps2Take  =  -2048;  // Rotate CCW
                      small_stepper.step(Steps2Take);
                      delay(2000); 
                      break;
                      
    }
    
      irrecv.resume(); // receive the next value
  }  


}/* --end main loop -- */
 

TUTORIAL VIDEO


 

DOWNLOAD


Copy and paste the above code in the Arduino IDE to program your Arduino.


Used Libraries:

Download the IRremote created by Ken Shirriff here:  


Once downloaded, just extract the content of the zip files inside your “arduino/libraries” folder.


10,752 views0 comments

Comments


All my content is and will always be Free.

If you feel that my Videos / Tutorials are helping, and you would like to contribute...

 You can toss some coins in the Tip Jar via PayPal.

Select amount then click the “Donate” button.

bottom of page