Go Down

Topic: Programar Loop (Read 774 times) previous topic - next topic

Eduort

Hola, estoy haciendo un proyecto que es un brazo robot, al cual le quiero poner secuencias, hasta ahora lo que logre fue programar la secuencia y que al presionar el boton la haga una ves, pero el problema es que necesito que al oprimir el boton iniciar la secuencia y se siga repitiendo hasta que se oprima otro boton para que se detenga, sin embargo no he encontrado la forma de hacer esto, este es el codigo que tengo
Code: [Select]
if (Serial.available() > 0) {         
    data = Serial.read();
    }
   if ((data == 'A') || (data == 'a')) {
   pos1 = 135;
   servo1.write(pos1);         
   delay(2500);   
   pos2 = 90;
   servo2.write(pos2);         
   delay(2500); 
   pos3 = 90;
   servo3.write(pos3);         
   delay(2500);
   pos4 = 165;
   servo4.write(pos4);         
   delay(2500); 
   pos1 = 90;
   servo1.write(pos1);         
   delay(2500); 
   pos2 = 75;
   servo2.write(pos2);         
   delay(2500);   
   pos4 = 120;
   servo4.write(pos4);         
   delay(2500); 
   }

Agradeceria mucho si me pueden pasar un tutorial o decir como puedo hacer lo que busco, es todo y gracias de antemano.

tengo casi el mismo problema que tu,
quiero conseguir que un rele se pare del todo para que deje actuar al otro
ya que ambos siguen funcionando a la vez y me consumen los 5 voltios de la placa
ydejan de funcionar.
gracias

iceman_f5



Code: [Select]
if (Serial.available() > 0) {         
    data = Serial.read();
    }
   if ((data == 'A') || (data == 'a')) {
   pos1 = 135;
   servo1.write(pos1);         
   delay(2500);   
   pos2 = 90;
   servo2.write(pos2);         
   delay(2500); 
   pos3 = 90;
   servo3.write(pos3);         
   delay(2500);
   pos4 = 165;
   servo4.write(pos4);         
   delay(2500); 
   pos1 = 90;
   servo1.write(pos1);         
   delay(2500); 
   pos2 = 75;
   servo2.write(pos2);         
   delay(2500);   
   pos4 = 120;
   servo4.write(pos4);         
   delay(2500); 
   }
  else
  {
  delay(200);
  }





¿Quizá asi?

noter

Si he entendido bien tu cuestión, creo que la solución no es difícil:
usa una variable general o estática "activo" que te indique si la secuencia se está realizando o no.
byte activo=false;

loop(){
if (Serial.read== TECLA1) activo=true;
else if (Serial.read==TECLA2) activo=false;
if (activo){...... secuencia.........}

}

iceman_f5

Pues si, lo ha escrito noter hace lo que quieres.
Lo que escribí yo, hace más bien poco; solo un retardo en caso de no cumplirse que se haya pulsado 'A' o 'a'.

Go Up