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 -- */