Programming Issue

Hi I Make Stepper Motor Control Using IR Remote But My Problem Is:

  • How To Control Stepper Without Waiting Switch Case1 End? So If (Example. Switch Case1 Not End The IR Remote Doesn't Work)

Sorry For Bad English.

#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
   int ledpower = 3;
   int indicatorled = 10;
   int green = 12;

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
     pinMode(ledpower, OUTPUT);
     pinMode(indicatorled, OUTPUT);
     pinMode(green, OUTPUT);
}

void loop()
{
 digitalWrite(ledpower, HIGH);
if (irrecv.decode(&results)) // have we received an IR signal?

 {
   switch(results.value)

   {

     case 0x1FE8A75: // UP button pressed
                  digitalWrite(green, HIGH);
                  delay(2000);
                     break;

     case 0x1FE0AF5: // DOWN button pressed
                     small_stepper.setSpeed(250);
                     Steps2Take  =  -10;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0); 
                     break;
     case 0x1FEE817: // DOWN button pressed
                     digitalWrite(ledpower, LOW);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  512;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(7000); 
                     digitalWrite(indicatorled, LOW);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     digitalWrite(indicatorled, HIGH);
                     break;
     case 0x1FE18E7: // DOWN button pressed
                     digitalWrite(ledpower, HIGH);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -512;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(2000); 
                     break;
     case 0x1FE48B7: // DOWN button pressed
                     digitalWrite(indicatorled, LOW);
                     small_stepper.setSpeed(100);
                     Steps2Take  =  -200;  // Rotate CCW
                     small_stepper.step(Steps2Take);
                     delay(0);
                     digitalWrite(indicatorled, HIGH);
                     break;
                     
   }
   
     irrecv.resume(); // receive the next value
 }  


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

Compiles fine for me. What's wrong with it?

Programming Issue

You failed to post code properly, which indicates that you failed to read the stickies at the top of the forum - the ones you were supposed to read BEFORE you blundered in here.

You failed to tell us what the issue is.

You can't be helped.

The issue Is When Button Power Pressed (case 0x1FEE817) Executed And I need To Cancel It, Another Buttons Not Working Until (case 0x1FEE817) Ends So What Code Need To Changed? To Cancel Switch Without Waiting (case 0x1FEE817) Ends?

Break long 'steps' up in smaller pieces; read up on finite state machines.

What's the purpose of the delay(0)?

The many delay (0) are not useful, get rid of them. delay (2000) will keep you from doing anything for 2 seconds. Learning to use millis () would be better.