Busco introducir en un while el codigo que me arroja un modulo IR, con la libreria IR.
Me podrian decirme en que temas documentarme para poder utilizar un while para poder detener toda una secuencia? como un boton te paro
Me gustaria añadir el while, antes de la instruccion del switch
#include "IRremote.h"// libreria IR
#define BOTON_1 0xFF6897
#define BOTON_2 0xFF9867
#define BOTON_3 0xFFB04F
#define DERECHA 0xFFC23D
#define IZQUIERDA 0xFF22DD
int recibeIR= 11; // detecta control
int driverPUL=7; // pulsos
int driverDIR=6; // direccion
int v;
int LEDVERDE =2;
int LEDNARANJA=3;
int LEDAMARILLO=4;
IRrecv irrecv(recibeIR);
decode_results codigo;
void setup (){
Serial.begin(9600);
irrecv.enableIRIn(); //recibe info
pinMode(driverPUL,OUTPUT);
pinMode(driverDIR,OUTPUT);
pinMode(LEDVERDE,OUTPUT);
pinMode(LEDNARANJA,OUTPUT);
pinMode(LEDAMARILLO,OUTPUT);
}
void loop (){
if (irrecv.decode(&codigo)){
// while(codigo.value == BOTON_3){
v=codigo.value; // lectura
Serial.print("Boton: ");
Serial.println(codigo.value);
irrecv.resume();
}
switch(v){
// 5 VECES
case BOTON_1:
digitalWrite(LEDVERDE,HIGH);
for(int x=0;x<=2400;x++)
{
digitalWrite(driverDIR, HIGH); //derecha
digitalWrite(driverPUL,HIGH);
delayMicroseconds(600);
digitalWrite(driverPUL,LOW); // tren de pulsos para activarlo
delayMicroseconds(600);
}
digitalWrite(LEDVERDE,LOW);
break;
case BOTON_2:
digitalWrite(LEDNARANJA,HIGH);
for(int x=0;x<=600;x++)
{
digitalWrite(driverDIR, HIGH); //derecha
digitalWrite(driverPUL,HIGH);
delayMicroseconds(600);
digitalWrite(driverPUL,LOW); // tren de pulsos para activarlo
delayMicroseconds(600);
}
digitalWrite(LEDNARANJA,LOW);
break;
case BOTON_3:
digitalWrite(LEDAMARILLO,HIGH);
for(int x=0;x<=200;x++)
{
digitalWrite(driverDIR, LOW); //derecha
digitalWrite(driverPUL,HIGH);
delayMicroseconds (1000);
digitalWrite(driverPUL,LOW); // tren de pulsos para activarlo
delayMicroseconds(1000);
}
digitalWrite(LEDAMARILLO,LOW);
break;
case DERECHA:
digitalWrite(LEDAMARILLO,HIGH);
for(int x=0;x<=20;x++)
{
digitalWrite(driverDIR,HIGH); //derecha
digitalWrite(driverPUL,HIGH);
delay(10);
digitalWrite(driverPUL,LOW); // tren de pulsos para activarlo
delay(10);
}
digitalWrite(LEDAMARILLO,LOW);
break;
case IZQUIERDA:
digitalWrite(LEDVERDE,HIGH);
for(int x=0;x<=20;x++)
{
digitalWrite(driverDIR,LOW);//IZQUIERDA
digitalWrite(driverPUL,HIGH);
delay(10);
digitalWrite(driverPUL,LOW);
delay( 10);
}
digitalWrite(LEDVERDE,LOW);
break;
}
}