Problema con función Random aplicada a motores.

Hola, estoy haciendo un proyecto en el cual quiero controlar con el pwm del arduino 1 las velocidades de tres motores, eso ya lo he logrado, pero ahora quiero que estos motores varíen su velocidad cada un determinado lapso de tiempo de forma random o a elección, he buscado tutoriales en youtube, taringa,etc pero no me funciona el sketch. Si alguno me puede ayudar ya sea con la reescritura, o si conoce una página donde me explique bien como usar la función de random estaría muy agradecido.

He aqui el sketch. Saludos D.

int pinMotor1 = 9; int pinMotor2 = 10; int pinMotor3 = 11;

int pinPot1 = 0; int pinPot2 = 1; int pinPot3 = 2;

int vel1 = 0; int vel2 = 0; int vel3 = 0;

long randomNumber;

randomSeed( analogRead(A0) );

void setup(){ Serial.begin(9600)

Serial.println("Start a new sequence of Randome Number");

}

void loop(){ vel1 = map(analogRead(pinPot1), 0, 1023, 0, 255); analogWrite(pinMotor1, vel1);

vel2 = map(analogRead(pinPot2), 0, 1023, 0, 255); analogWrite(pinMotor2, vel2);

vel3 = map(analogRead(pinPot3), 0, 1023, 0, 255); analogWrite(pinMotor3, vel3);

randomNumber = random (255, 1023)

Serial.print("The Random Number is = ");

Serial.println(randomNumber, HIGH);

delay(200)

digitalWrite(randomNumber, LOW) }

Solo corregí tus errores y la mala ubicación de randomSeed. Debe ir en el setup segun el ejemplo del Foro Arduino

int pinMotor1 = 9;
int pinMotor2 = 10;
int pinMotor3 = 11;

int pinPot1 = 0;
int pinPot2 = 1;
int pinPot3 = 2;

int vel1 = 0;
int vel2 = 0;
int vel3 = 0;

long randomNumber;



void setup(){
   Serial.begin(9600);
   Serial.println("Start a new sequence of Randome Number");
   randomSeed( analogRead(A0));
}

void loop() {

  vel1 = map(analogRead(pinPot1), 0, 1023, 0, 255);
  analogWrite(pinMotor1, vel1);
 
  vel2 = map(analogRead(pinPot2), 0, 1023, 0, 255);
  analogWrite(pinMotor2, vel2);
 
  vel3 = map(analogRead(pinPot3), 0, 1023, 0, 255);
  analogWrite(pinMotor3, vel3);
 
  randomNumber = random (255, 1023);
 
  Serial.print("The Random Number is = ");
 
  Serial.println(randomNumber, HIGH);
 
  delay(200);
 
  digitalWrite(randomNumber, LOW);
}

Muchas lineas sin el ; eran otro error muy repetido.

Muchas gracias por responder, ahora no me salta error almenos, pero no se prenden solos los motores, me sigue funcionando el pwm normal con el potenciometro. Tenes alguna idea de que puede faltar saludos D.

Saludos
Que es lo que pretendes con estas lineas?

  Serial.println(randomNumber, HIGH);
  
  delay(200)
  
  digitalWrite(randomNumber, LOW)

Y no hay nada que escriba en los motores del valor random que utilizas.

Si, es que utilize la poca información que encontré en los tutoriales de youtube he intente aplicarlo al sketch de pwm normal que ya tenia para controlar los motores, vi uno de random con leds y ahí el : Serial.println(randomNumber, HIGH);

delay(200)

digitalWrite(randomNumber, LOW) era el intervalo de random, es decir cuanto tardaba de pasar de un led al otro. yo querría en una primera instancia poder controlarlo así, cada 1 minuto arranca un motor y pasa a otro aleatorio, y más adelante poder darle random a eso también y capaz que dure un motor x tiempo y el otro z, por así decirlo. Reitero que si saben donde puedo acceder a mejor información acerca de como usar emplear el random, libro o tutorial. saludos D.

Eso no puede usarse

digitalWrite(randomNumber, LOW);

randomNumber acá debería ser un pin de valores conocidos <= 13 si fuera un UNO, NANO.

Ok, tomando un poco de tu explicación de lo que quieres hacer, ya que es un poco confusa.

Explico lo que hace, enciende los motores uno a uno por un segundo, con la velocidad controlada por los potenciometros, luego comienza un ciclo de encendido, donde el tiempo de encendido varia desde 1 a 5 segundos, la velocidad es aleatoria y el motor a encender también.

int pinMotor[3] = {9,10,11};

int pinPot1 = 0;
int pinPot2 = 1;
int pinPot3 = 2;

int vel1 = 0;
int vel2 = 0;
int vel3 = 0;

int velR  = 0;
int motor = 0;
int espera = 0;
bool iniciado = false;
void setup(){
   Serial.begin(9600);
   Serial.println("Start a new sequence of Randome Number");
   randomSeed(analogRead(A0));
   for(int i = 0; i < 3; i++){
      pinMode(pinMotor[i], OUTPUT);
      digitalWrite(pinMotor[i], LOW);
   }
}
unsigned long tiempo;

void loop() {
  if(!iniciado){
    vel1 = map(analogRead(pinPot1), 0, 1023, 0, 255);       //  Activa el motor 1 por un segundo con el valor del potenciometro
    analogWrite(pinMotor[0], vel1);
    delay(1000);
    digitalWrite(pinMotor[0], LOW);                           //  Desactiva Motor 1
    vel2 = map(analogRead(pinPot2), 0, 1023, 0, 255);       //  Activa el motor 2 por un segundo con el valor del potenciometro
    analogWrite(pinMotor[1], vel2);
    delay(1000);
    digitalWrite(pinMotor[1], LOW);                           //  Desactiva Motor 2
    vel3 = map(analogRead(pinPot3), 0, 1023, 0, 255);       //  Activa el motor 3 por un segundo con el valor del potenciometro
    analogWrite(pinMotor[2], vel3);
    delay(1000);
    digitalWrite(pinMotor[2], LOW);                           //  Desactiva Motor 3
    iniciado = true;
    tiempo= millis();
  } else {                                  //  Comienzon de ciclo infinito 
    if(millis()-tiempo>1000){
      vel1    = random(0, 255);
      motor   = random(0,   2);
      espera  = random(1, 5) ;
      Serial.print("La velocidad aleatorio es:\t");Serial.println(vel1);
      Serial.print("El motor aleatorio es:\t");Serial.println(motor+1);
      Serial.print("El tiempo aleatorio es:\t");Serial.println(espera);
      analogWrite(pinMotor[motor], vel1);
      delay(espera*1000);
      digitalWrite(pinMotor[motor], LOW);    
      tiempo  = millis();
      for(int i=0; i < 50; i ++)Serial.print("-");
      Serial.println();
    }
  }
}

me funciono perfecto, muchas gracias, a partir de acá puedo seguir ampliando, muchísimas gracias denuevo a todos! :D

Ok edita el primer post y coloca SOLUCIONADO en el titulo.