Pages: [1]   Go Down
Author Topic: Programar Loop  (Read 672 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 47
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Code:
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?
Logged

Palencia, Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 502
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.........}

}
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 47
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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'.
Logged

Pages: [1]   Go Up
Jump to: