Programa Aleatorio Leds

Hola, estoy buscando ayuda para hacer un programa al que no se por donde meterle mano. He de decir que tengo poco idea sobre esto.
Mi problema es que tengo que hacer un programa,el cual al pulsar un botón seleccione un número aleatorio entre 8 y 13 ( pins digitales de salida donde conectaré los led) y encienda el led del pin al que corresponda durante un tiempo de 600 delay y espere un tiempo de 300 por ejemplo para poder elegir otro. Os lo agradecería mucho, pues ya no se ni como intentarlo ya que mi conocimiento en esto es muy limitado. Saludos

Facil para el que lo conoce y dificil para quien no sabe nada de Arduino para lo que te recomiendo vayas a Tutorial y veas justamente la serie hecha por un forero que hay hecho muy buenos tutoriales en Youtube.
Busca en Documentación.

Si usas random(min, max) y pones

random(8,13); tienes el asunto mas que resuelto.

Mira este ejemplo

int randNumber;

void setup(){
  Serial.begin(9600);

  // Este es un truco que da buenos resultados
  // Si referencias el semillero de números random a la entrada 0
  // sin que haya nada conectado. El ruido hara que se generen 
  // diferentes semillas random en cada ciclo.
  randomSeed(analogRead(0));
}

void loop() {

  randNumber = random(8,13); // imprime por Monitor serie un número aleatorio entre 8 y 13
  Serial.println(randNumber);  
  digitalWrite(8, HIGH);
  delay(600);
  digitalWrite(8, LOW);
  delay(300);
}

Lo que hice fue generar los random entre 8 y 13 y luego prendo el pin 8 x 600mseg y luego lo apago x 300mseg y vuelvo a genear un random que muestro por puerto serie.
Pero siempre prendo el pin 8.
Te dejo a ti que lo hagas para todos.
Es muy facil, como pista el programa esta hecho (ESPERO QUE NADIE LE DIGA COMO RESOLVERLO?) solo tienes que reemplazar por randomNumber algo para que haga lo que quieres.

NOTA: Envié privado por favor leer.

surbyte:
Facil para el que lo conoce y dificil para quien no sabe nada de Arduino para lo que te recomiendo vayas a Tutorial y veas justamente la serie hecha por un forero que hay hecho muy buenos tutoriales en Youtube.
Busca en Documentación.

Si usas random(min, max) y pones

random(8,13); tienes el asunto mas que resuelto.

Mira este ejemplo

int randNumber;

void setup(){
 Serial.begin(9600);

// Este es un truco que da buenos resultados
 // Si referencias el semillero de números random a la entrada 0
 // sin que haya nada conectado. El ruido hara que se generen
 // diferentes semillas random en cada ciclo.
 randomSeed(analogRead(0));
}

void loop() {

randNumber = random(8,13); // imprime por Monitor serie un número aleatorio entre 8 y 13
 Serial.println(randNumber);  
 digitalWrite(8, HIGH);
 delay(600);
 digitalWrite(8, LOW);
 delay(300);
}





Lo que hice fue generar los random entre 8 y 13 y luego prendo el pin 8 x 600mseg y luego lo apago x 300mseg y vuelvo a genear un random que muestro por puerto serie.
Pero siempre prendo el pin 8.
Te dejo a ti que lo hagas para todos.
Es muy facil, como pista el programa esta hecho (**ESPERO QUE NADIE LE DIGA COMO RESOLVERLO?**) solo tienes que reemplazar por randomNumber algo para que haga lo que quieres.

NOTA: Envié privado por favor leer.

En primer lugar muchas gracias por responder. Estube buscando pero claro, si no entiendo nada tengo que empezar desde 0 como muy bien dices con los tutoriales del compañero. trasteando un poco consegui algo parecido a lo que queria, saca numeros aleatorios, pero de 2 en 2 o de 3 en 3, y siempre saca los mismo cada vez que reinicio el programa. Te pongo el codigo y por si quisieras verlo.

int estadoIni = 0;
int estadoFin = 0;
int estado = 0;
int startbutton = 51;
int lastButtonState = HIGH;
int rdm;

int tDelay = 50;
int tCambio = 0;

void setup() 
{
    Serial.begin(9600);
    pinMode(startbutton, INPUT_PULLUP);
    Serial.println ("Pulsa Para Comenzar"); 
    Serial.println (""); 
}

void loop() 
{
  estado = digitalRead(startbutton);
  if (estado != estadoFin) 
  {
    tCambio = millis();
  }
  
  if ((millis() - tCambio) > tDelay)
  {
    if (estado != estadoIni)
    {
      estadoIni = estado;
      if (estadoIni == LOW)
      {
        randomLed();
      }
    }
  }
  estadoFin = estado;
}
void randomLed()
{
  
  for (int i = 0 ; i <= 0 ; i++)
  {
    randomLed(300);
  }
  
    Serial.println(rdm);
}

void randomLed(int delayTime)
{
  rdm = random()%(8,14);
  rdm++;
  digitalWrite(rdm, HIGH);
  delay(delayTime);
  digitalWrite(rdm,LOW);
  Serial.println(rdm);
}

Con el codigo que me has hecho, ya se que el asunto en si tiene menos lio del que yo he montado, para que genere numeros aleatorios y no solo el 8 modifique en digitalWrite el 8 por randomNumber y los genera ya aleatoriamente. Mil gracias por la ayuda. Solo queda inplementar que se accione al pulsar el boton. Cuando haya conseguido el resultado lo compartire aqui en este post ¿o hay que compartirlo en otro? Saludos y nuevamente muchisimas gracias

Este, es el codigo que he conseguido finalmente. Lo que hace es que cada vez que el boton se pulsa elige un numero aleatorio.

int randNumber;

int estadoIni = 0;
int estadoFin = 0;
int estado = 0;
int startButton = 53;

int tDelay = 50;
int tCambio = 0;

void setup(){
  Serial.begin(9600);
  pinMode(startButton, INPUT_PULLUP);
  Serial.println("Pulsa el boton para comenzar");
  randomSeed(analogRead(0));
}

void loop() 
{
  estado = digitalRead(startButton);
  if (estado != estadoFin) 
  {
    tCambio = millis();
  }
  
  if ((millis() - tCambio) > tDelay)
  {
    if (estado != estadoIni)
    {
      estadoIni = estado;
      if (estadoIni == LOW)
      {
        Ale();
      }
    }
  }
  estadoFin = estado;
}

void Ale() 
{
  
  
  randNumber = random(8,13); // imprime por Monitor serie un número aleatorio entre 8 y 13
  Serial.println(randNumber); 
  digitalWrite(randNumber, HIGH);
  delay(300);
  digitalWrite(randNumber, LOW);
  delay(600);
}

ahora quiero hacer la otra variante, pulsar el boton una sola vez, y que apartir de ahi los numeros salgan segun el delay configurado, pero sin tener que presionar mas el boton. Voy a intentarlo y si hay dudas pregunto de nuevo. Mil gracias por ese gran empujon.

Bueno era fácil pero a veces no se ve. Y por eso puse ese cartel que Nadie te lo diga porque la idea es que TU lo resolvieras. Parece simple pero tu sabes que te costó y hay que aprender a entender los códigos.
Verás que si sigues el tutorial se te va a abrir la comprensión de este mundo y tardarás menos en hacer las cosas. Es muy recomendable como también consumirse todos los libros que tengas a mano.
para el pulsador o botón, muy simple. Mira ejemplos del IDE al respecto y recuerda que lo que preguntas ya fue respondido en este foro, asi que BUSCA primero y pregunta después.

Elaborar una aplicación que genere aleatoriamente un número en el rango de 1 a 100, a continuación debe pedir al usuario que ingrese un valor por el monitor serial, si el valor ingresado es mayor al valor generado muestra el mensaje Te exediste(el mensaje se muestra en pantalla), si es menor muestra el mensaje “Te falta”, y si coincide con el valor generado muestra el mensaje GANASTE.

Se debe considerar que se permiten 5 intentos que se muestran en 5 leds, los cuales se van apagando por cada intento restante.

Error haber revivido un hilo de más de 4 meses de inactividad.

Por favor crea uno nuevo con tu pregunta (en esta sección) y con mucho gusto te atenderemos.

Gracias.

Carlitos1991:
Hola, estoy buscando ayuda para hacer un programa al que no se por donde meterle mano. He de decir que tengo poco idea sobre esto.
Mi problema es que tengo que hacer un programa,el cual al pulsar un botón seleccione un número aleatorio entre 8 y 13 ( pins digitales de salida donde conectaré los led) y encienda el led del pin al que corresponda durante un tiempo de 600 delay y espere un tiempo de 300 por ejemplo para poder elegir otro. Os lo agradecería mucho, pues ya no se ni como intentarlo ya que mi conocimiento en esto es muy limitado. Saludos