Void sin interrupciones

Hola compañeros. Estoy realizando un proyecto de arduino mega con un motor drive. Tengo varios ¨Void¨ que funcionan con el serial. Pero requiero tener activo dos en especial, en otras palabras que cuando le de el comando de activarse, queden activos hasta que se cambie de configuracion.

Los comandos son el ¨single¨ and ¨slug¨. Adjunto codigo para que sea entendible

#include <Wire.h>
#include <LiquidCrystal.h>     
#include <TimerOne.h>   
#include "CytronMotorDriver.h"

char user_input;
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// CONSTANT MOVEMENT SENSORS 
int calibrationTime = 30;        
long unsigned int lowIn;         
long unsigned int pause = 1000; 
boolean lockLow = true;
boolean takeLowTime;
int count = 0;    
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// MOVEMENT SENSOR 
const int pirPin = 2;  // Movement Sensor 1
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INT MOVEMENT SENSORS 
int pirPushCounter = 0;  
int pirState = 0;        
int lastPirState = 0;    
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// TIME 
volatile long int Time = 0;
volatile long int Time1 = 0;
volatile long int Time2 = 0;
volatile long int Time3 = 0;
volatile long int Time4 = 0;
volatile long int Time5 = 0;
volatile long int Time6 = 0;
volatile long int Time7 = 0;
volatile long int Time8 = 0;
volatile long int Time9 = 0;
volatile long int Time10 = 0;
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//MOTOR PARAMETERS
CytronMD motor1(PWM_DIR, 13, 12);
CytronMD motor2(PWM_DIR, 11, 10);
CytronMD motor3(PWM_DIR, 9, 8);
CytronMD motor4(PWM_DIR, 7, 6);
CytronMD motor5(PWM_DIR, 5, 4);

#define matrix ;
short usSpeed = 255;
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void setup() {

  {
    Serial.begin(9600);  
    //---------------------------------------------------------//
    //PIN MOVEMENT SENSORS
    pinMode(pirPin, INPUT); 
    //---------------------------------------------------------//
    digitalWrite(pirPin, LOW);
    //---------------------------------------------------------//
    //START CALIBRATION OF SENSORS 
    Serial.print("Calibrating Sensor ");  
    for (int i = 0; i < calibrationTime; i++) {
      Serial.print(".");
      delay(1000);
    }
    Serial.println(" Done");
    Serial.println("SENSOR ACTIVE");
    delay(10);
   //---------------------------------------------------------//
  }
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//MOTORS PARAMETERS

}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Timer(void) {
  Time++;
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void loop() {

    while (Serial.available()) {
    user_input = Serial.read();    

    if (user_input == '1') {
      Stop();
    } else if (user_input == '2') {
      Forward();
    } else if (user_input == '3') {
      Reverse();
    } else if (user_input == '+') {
      IncreaseSpeed();
    } else if (user_input == '-') {
      DecreaseSpeed();
    } else if (user_input == 'r') {
      Zero();
    } else if (user_input == 'a') {
      Slug();
    } else if (user_input == 's') {
      Single();
    } 
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// MOVEMENT SENSOR 1
pirState = digitalRead(pirPin);
  
  if(pirState == HIGH){    
    if(lockLow){  
      lockLow = false;                 
      pirPushCounter++;
      count++;
      Serial.print("Number of counts:  ");
      Serial.println(pirPushCounter);
      delay(5);
    }    
      takeLowTime = true;
    }
    /*{  
     Serial.print("idcont.val=");
     Serial.print(pirPushCounter);
     Serial.write(0xff);
     Serial.write(0xff);
     Serial.write(0xff);
    } */
    if(pirState == LOW){       
       if(takeLowTime){
        lowIn = millis();          
        takeLowTime = false;     
        }
       if(!lockLow && millis() - lowIn > pause){  
           lockLow = true;                        
           }
     }

  if (count == 0);{
  Time1++;
  delay(1000);
  Serial.println(Time1);
  } if (Time1 >= 20){
    Time1 = 0;
  }
}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Slug() { 
  Serial.println("SLUG");
  if (count > 0) {
    Serial.print("Accumulate Count: ");
    Serial.println(count);
  } if (count >= 5) {
    count = 0;
  }

  if (count == 1){
  motor1.setSpeed(0); 
  } else if (count == 2){
  motor2.setSpeed(0);
  } else if (count == 3){
  motor3.setSpeed(0);
  } else if (count == 4){
  motor4.setSpeed(0);
  } else if (count == 5){
  motor5.setSpeed(0);
  }

  if (Time1 >= 20){
  motor1.setSpeed(255);
  motor2.setSpeed(255);
  motor3.setSpeed(255);
  motor4.setSpeed(255);
  motor5.setSpeed(255);
  Serial.println("ON");
  Time1 = 0;
  }
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Single() {
  Serial.println("SINGLE");
  if (count > 0) {
    Serial.print("Sequential Count: ");
    Serial.println(count);
  } if (count >= 5) {
    count = 0;
  }
  if (count == 1){
  motor1.setSpeed(0); 
  } if (count == 2){
  motor2.setSpeed(0); 
  } if (count == 3){
  motor3.setSpeed(0);
  } if (count == 4){
  motor4.setSpeed(0); 
  } if (count == 5){
  motor5.setSpeed(0);
  }

  Time1 = 0;
  if (Time1 >= 20){
    motor1.setSpeed(255); 
    Serial.println("1");
    Time2 = 0;
    if (Time2 >= 5){
      motor2.setSpeed(255); 
      Serial.println("2");
    } Time3 = 0;
    if (Time3 >= 5){
      motor3.setSpeed(255); 
      Serial.println("3"); 
    } Time4 = 0;
    if (Time4 >= 5){
      motor4.setSpeed(255); 
      Serial.println("4");
    } Time5 = 0;
    if (Time5 >= 5){
      motor5.setSpeed(255);  
      Serial.println("5");
    }
  }
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Stop() {
  Serial.println("Stop");
  motor1.setSpeed(0);
  motor2.setSpeed(0);
  motor3.setSpeed(0);
  motor4.setSpeed(0);
  motor5.setSpeed(0);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Forward() {
  Serial.println("Forward");
  motor1.setSpeed(255);
  motor2.setSpeed(255);
  motor3.setSpeed(255);
  motor4.setSpeed(255);
  motor5.setSpeed(255);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Reverse() {
  Serial.println("Reverse");
  motor1.setSpeed(-255);
  motor2.setSpeed(-255);
  motor3.setSpeed(-255);
  motor4.setSpeed(-255);
  motor5.setSpeed(-255);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void IncreaseSpeed() {
  usSpeed = usSpeed + 10;
  if (usSpeed > 255) {
    usSpeed = 255;
  }
  Serial.print("Speed +: ");
  Serial.println(usSpeed);
  motor1.setSpeed(usSpeed);
  motor2.setSpeed(usSpeed);
  motor3.setSpeed(usSpeed);
  motor4.setSpeed(usSpeed);
  motor5.setSpeed(usSpeed);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void DecreaseSpeed() {
  usSpeed = usSpeed - 10;
  if (usSpeed < 0) {
    usSpeed = 0;
  }

  Serial.print("Speed -: ");
  Serial.println(usSpeed);
  motor1.setSpeed(usSpeed);
  motor2.setSpeed(usSpeed);
  motor3.setSpeed(usSpeed);
  motor4.setSpeed(usSpeed);
  motor5.setSpeed(usSpeed);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Zero() {
  pirPushCounter=0;
  Serial.print("idcont.val=");
  Serial.print(pirPushCounter);
  Serial.write(0xff);   
  Serial.write(0xff);
  Serial.write(0xff);
  user_input = 'x';
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Te refieres a algo tan simple como poner esto fuera del while?

if (user_input == 'a') {
      Slug();
    }

Pero el código ya lo hace en linea 100 a 105

        else if (user_input == 'a') {
            Slug();
        }
        else if (user_input == 's') {
            Single();
        }

void indica que una función no devuelve ningún valor (lo que en otros lenguajes llamarían "subrutinas")

Lo que tienes son varias funciones que funcionan con el puerto serie.

Como dice @DanX3 debes agregar

if (user_input == 'a') { 
  Slug();
} 
else if (user_input == 's') { 
  Single();
} 

por fuera del lazo while() en loop()

Hola amigo, me puedes ense;ar un ejemplo, si entendi, pero ocupo ver. Si porque ocupo que el usuario introduzca la opcion, pero que sea infinito hasta que el usuario escoja otra opcion

Hola, si tal vez no me explique mejor. Lo que requiero es que el void single y slug hagan un un bucle infinito al ser seleccionados. Y que se apague ese bucle hasta que el usuario lo diga.

Hola Dan, si lo que pasa es que la idea es que el usuario escoja entre SLUG y SINGLE y de ahi se cree un bucle infinito en la que se escogio.

Te repito

No es tan dificil de hacer lo que te dijimos...

#include <Wire.h>
#include <LiquidCrystal.h>     
#include <TimerOne.h>   
#include "CytronMotorDriver.h"

char user_input;
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// CONSTANT MOVEMENT SENSORS 
int calibrationTime = 30;        
long unsigned int lowIn;         
long unsigned int pause = 1000; 
boolean lockLow = true;
boolean takeLowTime;
int count = 0;    
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// MOVEMENT SENSOR 
const int pirPin = 2;  // Movement Sensor 1
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INT MOVEMENT SENSORS 
int pirPushCounter = 0;  
int pirState = 0;        
int lastPirState = 0;    
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// TIME 
volatile long int Time = 0;
volatile long int Time1 = 0;
volatile long int Time2 = 0;
volatile long int Time3 = 0;
volatile long int Time4 = 0;
volatile long int Time5 = 0;
volatile long int Time6 = 0;
volatile long int Time7 = 0;
volatile long int Time8 = 0;
volatile long int Time9 = 0;
volatile long int Time10 = 0;
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//MOTOR PARAMETERS
CytronMD motor1(PWM_DIR, 13, 12);
CytronMD motor2(PWM_DIR, 11, 10);
CytronMD motor3(PWM_DIR, 9, 8);
CytronMD motor4(PWM_DIR, 7, 6);
CytronMD motor5(PWM_DIR, 5, 4);

#define matrix ;
short usSpeed = 255;
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void setup() {

  {
    Serial.begin(9600);  
    //---------------------------------------------------------//
    //PIN MOVEMENT SENSORS
    pinMode(pirPin, INPUT); 
    //---------------------------------------------------------//
    digitalWrite(pirPin, LOW);
    //---------------------------------------------------------//
    //START CALIBRATION OF SENSORS 
    Serial.print("Calibrating Sensor ");  
    for (int i = 0; i < calibrationTime; i++) {
      Serial.print(".");
      delay(1000);
    }
    Serial.println(" Done");
    Serial.println("SENSOR ACTIVE");
    delay(10);
   //---------------------------------------------------------//
  }
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//MOTORS PARAMETERS

}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Timer(void) {
  Time++;
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void loop() {

    while (Serial.available()) {
    user_input = Serial.read();    

    if (user_input == '1') {
      Stop();
    } else if (user_input == '2') {
      Forward();
    } else if (user_input == '3') {
      Reverse();
    } else if (user_input == '+') {
      IncreaseSpeed();
    } else if (user_input == '-') {
      DecreaseSpeed();
    } else if (user_input == 'r') {
      Zero();
    } else if (user_input == 'a') {
      Slug();
    } else if (user_input == 's') {
      Single();
    } 
}


// ***** es solo agregar estas líneas  *****

if (user_input == 'a') { 
  Slug();
} 
else if (user_input == 's') { 
  Single();
}
// ***********


//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// MOVEMENT SENSOR 1
pirState = digitalRead(pirPin);
  
  if(pirState == HIGH){    
    if(lockLow){  
      lockLow = false;                 
      pirPushCounter++;
      count++;
      Serial.print("Number of counts:  ");
      Serial.println(pirPushCounter);
      delay(5);
    }    
      takeLowTime = true;
    }
    /*{  
     Serial.print("idcont.val=");
     Serial.print(pirPushCounter);
     Serial.write(0xff);
     Serial.write(0xff);
     Serial.write(0xff);
    } */
    if(pirState == LOW){       
       if(takeLowTime){
        lowIn = millis();          
        takeLowTime = false;     
        }
       if(!lockLow && millis() - lowIn > pause){  
           lockLow = true;                        
           }
     }

  if (count == 0);{
  Time1++;
  delay(1000);
  Serial.println(Time1);
  } if (Time1 >= 20){
    Time1 = 0;
  }
}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Slug() { 
  Serial.println("SLUG");
  if (count > 0) {
    Serial.print("Accumulate Count: ");
    Serial.println(count);
  } if (count >= 5) {
    count = 0;
  }

  if (count == 1){
  motor1.setSpeed(0); 
  } else if (count == 2){
  motor2.setSpeed(0);
  } else if (count == 3){
  motor3.setSpeed(0);
  } else if (count == 4){
  motor4.setSpeed(0);
  } else if (count == 5){
  motor5.setSpeed(0);
  }

  if (Time1 >= 20){
  motor1.setSpeed(255);
  motor2.setSpeed(255);
  motor3.setSpeed(255);
  motor4.setSpeed(255);
  motor5.setSpeed(255);
  Serial.println("ON");
  Time1 = 0;
  }
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Single() {
  Serial.println("SINGLE");
  if (count > 0) {
    Serial.print("Sequential Count: ");
    Serial.println(count);
  } if (count >= 5) {
    count = 0;
  }
  if (count == 1){
  motor1.setSpeed(0); 
  } if (count == 2){
  motor2.setSpeed(0); 
  } if (count == 3){
  motor3.setSpeed(0);
  } if (count == 4){
  motor4.setSpeed(0); 
  } if (count == 5){
  motor5.setSpeed(0);
  }

  Time1 = 0;
  if (Time1 >= 20){
    motor1.setSpeed(255); 
    Serial.println("1");
    Time2 = 0;
    if (Time2 >= 5){
      motor2.setSpeed(255); 
      Serial.println("2");
    } Time3 = 0;
    if (Time3 >= 5){
      motor3.setSpeed(255); 
      Serial.println("3"); 
    } Time4 = 0;
    if (Time4 >= 5){
      motor4.setSpeed(255); 
      Serial.println("4");
    } Time5 = 0;
    if (Time5 >= 5){
      motor5.setSpeed(255);  
      Serial.println("5");
    }
  }
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Stop() {
  Serial.println("Stop");
  motor1.setSpeed(0);
  motor2.setSpeed(0);
  motor3.setSpeed(0);
  motor4.setSpeed(0);
  motor5.setSpeed(0);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Forward() {
  Serial.println("Forward");
  motor1.setSpeed(255);
  motor2.setSpeed(255);
  motor3.setSpeed(255);
  motor4.setSpeed(255);
  motor5.setSpeed(255);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Reverse() {
  Serial.println("Reverse");
  motor1.setSpeed(-255);
  motor2.setSpeed(-255);
  motor3.setSpeed(-255);
  motor4.setSpeed(-255);
  motor5.setSpeed(-255);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void IncreaseSpeed() {
  usSpeed = usSpeed + 10;
  if (usSpeed > 255) {
    usSpeed = 255;
  }
  Serial.print("Speed +: ");
  Serial.println(usSpeed);
  motor1.setSpeed(usSpeed);
  motor2.setSpeed(usSpeed);
  motor3.setSpeed(usSpeed);
  motor4.setSpeed(usSpeed);
  motor5.setSpeed(usSpeed);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void DecreaseSpeed() {
  usSpeed = usSpeed - 10;
  if (usSpeed < 0) {
    usSpeed = 0;
  }

  Serial.print("Speed -: ");
  Serial.println(usSpeed);
  motor1.setSpeed(usSpeed);
  motor2.setSpeed(usSpeed);
  motor3.setSpeed(usSpeed);
  motor4.setSpeed(usSpeed);
  motor5.setSpeed(usSpeed);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void Zero() {
  pirPushCounter=0;
  Serial.print("idcont.val=");
  Serial.print(pirPushCounter);
  Serial.write(0xff);   
  Serial.write(0xff);
  Serial.write(0xff);
  user_input = 'x';
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Hola amigo, muchas gracias por tu ayuda, pero no. No me funciona, requiero que el void quede encendido sin ningun corte, tengo que estar introduciendo el valor en serial port para que me lea el void, intente con otro metodo que es SWITCH y tampoco me funciona. Adjunto codigo:

#include <Wire.h>
#include <LiquidCrystal.h>     
#include <TimerOne.h>   
#include "CytronMotorDriver.h"

char user_input;


//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


// Direction of Arduino Slave
const int slaveAddress = 9;


//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

// MOVEMENT SENSOR 
#define movement_pin1 2


bool item_detected = false;
int  item_counter = 0;
int count = 0;  

//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


// TIME 
volatile long int Time = 0;
volatile long int Time1 = 0;
volatile long int Time2 = 0;
volatile long int Time3 = 0;
volatile long int Time4 = 0;
volatile long int Time5 = 0;
volatile long int Time6 = 0;
volatile long int Time7 = 0;
volatile long int Time8 = 0;
volatile long int Time9 = 0;
volatile long int Time10 = 0;


//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


//MOTOR PARAMETERS
CytronMD motor1(PWM_DIR, 13, 12); 
CytronMD motor2(PWM_DIR, 11, 10);
CytronMD motor3(PWM_DIR, 9, 8);
CytronMD motor4(PWM_DIR, 7, 6);
CytronMD motor5(PWM_DIR, 5, 4);

short usSpeed = 200;


//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


void setup() {

  {

    Serial.begin(9600);  
    Wire.begin();

    //---------------------------------------------------------//
    
    //PIN MOVEMENT SENSORS
    pinMode(movement_pin1 , INPUT);

   //---------------------------------------------------------//

  }
}


//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


void Timer(void) {
  Time++;
}


//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


void loop() {


// MOVEMENT SENSOR 1
{
  int val = digitalRead(movement_pin1);

  if( (item_detected == false) && ( val == 0 )){

        item_detected = true;
        item_counter++;
        count++;
        Serial.print("Boxes: ");
        Serial.println(item_counter);
       // Serial.print("idcont.val=");
       // Serial.print(item_counter);
       // Serial.write(0xff);
       // Serial.write(0xff);
       // Serial.write(0xff);

  } else if( (item_detected == true) && ( val == 1 )){

        item_detected = false;

  }
}


if (Serial.available()){

user_input = Serial.read();

switch (user_input) {
  case '1':

      Serial.println("Stop");
      motor1.setSpeed(0);
      motor2.setSpeed(0);
      motor3.setSpeed(0);
      motor4.setSpeed(0);
      motor5.setSpeed(0);

    break;

  case '2':

      Serial.println("Forward");
      motor1.setSpeed(255);
      motor2.setSpeed(255);
      motor3.setSpeed(255);
      motor4.setSpeed(255);
      motor5.setSpeed(255);

    break;

  case '3':

      Serial.println("Reverse");
      motor1.setSpeed(-255);
      motor2.setSpeed(-255);
      motor3.setSpeed(-255);
      motor4.setSpeed(-255);
      motor5.setSpeed(-255);

    break;

  case '+':
    {
    
        usSpeed = usSpeed + 10;
        if (usSpeed > 255) {
          usSpeed = 255;
        }
        Serial.print("Speed +: ");
        Serial.println(usSpeed);
        motor1.setSpeed(usSpeed);
        motor2.setSpeed(usSpeed);
        motor3.setSpeed(usSpeed);
        motor4.setSpeed(usSpeed);
        motor5.setSpeed(usSpeed);

      break;
    
    } 
  case '-':
    {
    
      usSpeed = usSpeed - 10;
      if (usSpeed < 0) {
        usSpeed = 0;
      }

      Serial.print("Speed -: ");
      Serial.println(usSpeed);
      motor1.setSpeed(usSpeed);
      motor2.setSpeed(usSpeed);
      motor3.setSpeed(usSpeed);
      motor4.setSpeed(usSpeed);
      motor5.setSpeed(usSpeed);

    break;
  
    }
  case '6':
    {

      item_counter = 0;
      Serial.print("idcont.val=");
      Serial.print(item_counter);
      Serial.write(0xff);   
      Serial.write(0xff);
      Serial.write(0xff);
      user_input = 'x';

    break;
  
    }
  case '7':

    { 
      
      Serial.println("Slug");
      Serial.print("Slug Counter: ");
      Serial.println(count);

      if (count == 0){
        
      } else if (count == 1){

        motor1.setSpeed(0);
        Time = 0;
        
      } else if (count == 2){

        motor2.setSpeed(0);
        Time = 0;
        
      } else if (count == 3){

        motor3.setSpeed(0);
        Time = 0;

      } else if (count == 4){

        motor4.setSpeed(0); 
        Time = 0;

      } else if (count == 5){

        motor5.setSpeed(0);
        Time = 0;

      }

      if (Time >= 20){

        motor1.setSpeed(255);
        motor2.setSpeed(255);
        motor3.setSpeed(255);
        motor4.setSpeed(255);
        motor5.setSpeed(255);

        Time1 = 0;

      }
    }
    
      break;
    
    case '8':
    {
    
      Serial.println("Single");
\
      if (count > 0) {

        Serial.print("Single Count: ");
        Serial.println(count);

      } 

      if (count == 1){
        
        motor1.setSpeed(0); 

      } 

      if (count == 2){
        
        motor2.setSpeed(0); 
      
      }

      if (count == 3){
        
        motor3.setSpeed(0);
      
      }  
      
      if (count == 4){
      
        motor4.setSpeed(0); 
      
      }

      if (count == 5){
        
        motor5.setSpeed(0);
        Time1++;  

      }

      if (Time1 < 20) {

        motor1.setSpeed(255);
        Serial.println("1");
        delay(500);

      } if (Time2 < 5) {

        motor2.setSpeed(255);
        Serial.println("2");
        delay(500); 
        Time3 = 0;

      } if (Time3 < 5) {
        
        motor3.setSpeed(255);
        Serial.println("3");
        delay(500); 
        Time4 = 0;

      } if (Time4 < 5) {
        
        motor4.setSpeed(255);
        Serial.println("4");
        delay(500); 
        Time5 = 0;
      
      } if (Time5 < 5) {
        
        motor5.setSpeed(255);
        Serial.println("5");
        delay(500); 
      
      }
      break;
    }
    
  }
 }
}
    

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Eso (que fue tu consulta original) lo hace, el código está probado.

Saludos

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.