This is my first time using an Arduino board and I am super excited. I am trying to set up a stepper to constantly rotate when I hit the up button on my IR remote. I have it set up now to do a full rotation cw when I hit up and a full ccw rotation when I hit the down button. I need this to spin one direction when I hit up and the other when I hit down. This is for a toy that constanlty will be spinning
Here is the code I am using
#include "Stepper.h"
#include "IRremote.h"
/----- Variables, Pins -----/
#define STEPS 64 // 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()
{
Serial.begin(9600); //NEW TEST
Serial.println("IR Receiver Raw Data + Button Decode Test"); //NEW TEST
irrecv.enableIRIn(); // Start the receiver
}
//NEW
/-----( Declare User-written Functions )-----/
void translateIR() // takes action based on IR code received
// describing Car MP3 IR codes
{
switch(results.value)
{
case 0xFF906F:
Serial.println(" up ");
break;
case 0xFFE01F:
Serial.println(" DWN ");
break;
case 0xFFA25D:
Serial.println(" PWR ");
break;
case 0xFF629D:
Serial.println(" VOL+ ");
break;
case 0xFFE216:
Serial.println(" STOP ");
break;
case 0xFF22DD:
Serial.println(" BACK ");
break;
case 0xFF02FD:
Serial.println(" PLAY ");
break;
case 0xFFC23D:
Serial.println(" FF ");
break;
case 0xFFA857:
Serial.println(" VOL- ");
break;
case 0xFF6897:
Serial.println(" 0 ");
break;
case 0xFF9867:
Serial.println(" EQ ");
break;
case 0xFFB04F:
Serial.println(" ST ");
break;
case 0xFF30CF:
Serial.println(" 1 ");
break;
case 0xFF18E7:
Serial.println(" 2 ");
break;
case 0xFF7A85:
Serial.println(" 3 ");
break;
case 0xFF10EF:
Serial.println(" 4 ");
break;
case 0xFF38C7:
Serial.println(" 5 ");
break;
case 0xFF5AA5:
Serial.println(" 6 ");
break;
case 0xFF42BD:
Serial.println(" 7 ");
break;
case 0xFF4AB5:
Serial.println(" 8 ");
break;
case 0xFF52AD:
Serial.println(" 9 ");
break;
default:
Serial.println(" other button ");
}
delay(500);
} //END translateIR
//NEW
void loop()
{
if (irrecv.decode(&results)) // have we received an IR signal?
{
switch(results.value)
{
case 0xFF906F: // UP button pressed
small_stepper.setSpeed(500); //Max seems to be 700
Steps2Take = 2048; // Rotate CW
small_stepper.step(Steps2Take);
delay(2000);
break;
case 0xFFE01F: // 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 -- */