Go Down

Topic: Detener bucle con IRremote (Read 341 times) previous topic - next topic

Ivan_Toymaker

Estimados

Me llamo Ivan (no vi si hay  una sección de presentación así que lo haré por acá) , este es mi primer posteo, hace algún tiempo comencé a leer de arduino y me pareció fantástico, todo un mundo nuevo, como ya había aprendido a programar en VB por mi cuenta se me hizo relativamente fácil tomar practica, me compre una placa arduino uno y con el tiempo me he hecho de varios accesorios, controles remotos, servos, matrices led y sensores ultrasonicos con todo esto pretendo armar una especie de robot

construyendo esto me topé con un problema, que es ¿ como detengo un bucle "do" usando la señal recibida desde un control remoto? (uso la librería IRRemote.h)

para explicar esto usare un ejemplo que hice para experimentar con un blink, consiste en que al recibir un dato especifico desde el control,  en este casi sera el botón con dirección izquierda, comience a parpadear el led 13, y al apretar hacia la derecha se detenga les dejo el código ojala me haya explicado bien, me entiendan y puedan  ayuden

Quote

#include <IRremote.h>

int RECV_PIN = 11;
int led = 13;
int key = 1; //solo una llave que no cambia para mantener constante el bucle

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  pinMode(led, OUTPUT);
  irrecv.enableIRIn();
}

void loop() {

  //0xff22dd boton izquierda
  //0xffc23d boton derecha

  if (irrecv.decode(&results)) {
    irrecv.resume();


    switch (results.value) {
    case 0xff22dd: // boton izquierda

      do {

        digitalWrite(led, HIGH);   
        delay(1000);               
        digitalWrite(led, LOW);   
        delay(1000);             

      }
      while (key==1);
      break;
    }
  }
}




Go Up